GIF94; MINI MO Shell - Tarih Gösterimli

MINI MINI MANI MO - TARİH GÖSTERİMLİ

Path : /var/www/wordpress/wp-content/plugins/oxygen/builder/dist/js/
File Upload :
Current File : /var/www/wordpress/wp-content/plugins/oxygen/builder/dist/js/manage-templates.195fc8b9.js.map

{"version":3,"file":"js/manage-templates.195fc8b9.js","mappings":"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","sources":["webpack://builder/./src/lib/canvas/flatten-properties.ts","webpack://builder/./src/types/copy-paste.ts","webpack://builder/./src/lib/copy-paste/copy-paste.ts","webpack://builder/./src/lib/copy-paste/utils.ts","webpack://builder/./src/lib/global-settings/global-settings.ts","webpack://builder/./src/lib/i18n/index.ts","webpack://builder/./src/lib/selectors/selectors.ts","webpack://builder/./src/oxygen/classes/lib/inheritance.ts","webpack://builder/./src/oxygen/classes/lib/utils.ts","webpack://builder/./src/oxygen/variables/lib/data.ts","webpack://builder/./src/subapps/manage-templates/ManageBreakdancePostTypes.vue","webpack://builder/./src/subapps/manage-templates/ManageTemplates.vue","webpack://builder/./src/subapps/manage-templates/TemplateRow.vue","webpack://builder/./src/components/Reusable/CustomInputs/ConditionInput/ConditionPreviewTooltip.vue","webpack://builder/./src/components/Reusable/CustomInputs/ConditionInput/ConditionPreviewTooltip.vue?3595","webpack://builder/./src/components/Reusable/CustomInputs/ConditionInput/ConditionPreviewTooltip.vue?2add","webpack://builder/./src/components/Reusable/CustomInputs/ConditionInput/ConditionPreviewTooltip.vue?d628","webpack://builder/./src/subapps/manage-templates/lib/quick-add-templates.ts","webpack://builder/./src/subapps/manage-templates/TemplateRow.vue?ba39","webpack://builder/./src/subapps/manage-templates/TemplateRow.vue?fcb1","webpack://builder/./src/subapps/manage-templates/TemplateRow.vue?e9a3","webpack://builder/./src/subapps/manage-templates/AddTemplateDropdown.vue","webpack://builder/./src/subapps/manage-templates/AddTemplateDropdown.vue?b0c1","webpack://builder/./src/subapps/manage-templates/AddTemplateDropdown.vue?137a","webpack://builder/./src/subapps/manage-templates/AddTemplateDropdown.vue?fa68","webpack://builder/./src/subapps/manage-templates/EmptyState.vue","webpack://builder/./src/subapps/manage-templates/EmptyState.vue?b9e8","webpack://builder/./src/subapps/manage-templates/EmptyState.vue?d29b","webpack://builder/./src/subapps/manage-templates/EmptyState.vue?60a9","webpack://builder/./src/subapps/manage-templates/ManageTemplates.vue?f496","webpack://builder/./src/subapps/manage-templates/ManageTemplates.vue?1153","webpack://builder/./src/subapps/manage-templates/ManageTemplates.vue?c1a6","webpack://builder/./src/subapps/manage-templates/ManageGlobalBlocks.vue","webpack://builder/./src/subapps/manage-templates/BlockRow.vue","webpack://builder/./src/subapps/manage-templates/BlockRow.vue?ca87","webpack://builder/./src/subapps/manage-templates/BlockRow.vue?3710","webpack://builder/./src/subapps/manage-templates/BlockRow.vue?5bc4","webpack://builder/./src/subapps/manage-templates/ManageGlobalBlocks.vue?9c69","webpack://builder/./src/subapps/manage-templates/ManageGlobalBlocks.vue?983b","webpack://builder/./src/subapps/manage-templates/ManageGlobalBlocks.vue?e595","webpack://builder/./src/subapps/manage-templates/ManageBreakdancePostTypes.vue?e995","webpack://builder/./src/subapps/manage-templates/ManageBreakdancePostTypes.vue?8098","webpack://builder/./src/subapps/manage-templates/ManageBreakdancePostTypes.vue?62ea","webpack://builder/./src/subapps/manage-templates/entry.ts","webpack://builder/./src/subapps/manage-templates/lib/api.ts","webpack://builder/./src/subapps/manage-templates/lib/utils.ts","webpack://builder/./src/subapps/manage-templates/types.ts","webpack://builder/webpack/bootstrap","webpack://builder/webpack/runtime/chunk loaded","webpack://builder/webpack/runtime/compat get default export","webpack://builder/webpack/runtime/define property getters","webpack://builder/webpack/runtime/global","webpack://builder/webpack/runtime/hasOwnProperty shorthand","webpack://builder/webpack/runtime/make namespace object","webpack://builder/webpack/runtime/node module decorator","webpack://builder/webpack/runtime/runtimeId","webpack://builder/webpack/runtime/jsonp chunk loading","webpack://builder/webpack/startup"],"sourcesContent":["import { PropertiesData } from \"@/types/tree\";\n\n/*\n * For a detailed view of the data structures look at the tests\n *\n * This function is also in PHP and they must both mirror each other's logic\n *\n * Logic:\n *\n * - Traverse the properties object recursively and find the \"breakpointId\" key. Then return its value\n * This way the returned properties will have \"flattened\" the breakpoint.\n * - If We're on the base breakpoint, also return any other value that isn't \"responsive\" (tied to a breakpoint)\n * - For non-base breakpoints, only return the values associated with that breakpoint\n * - If no values match the breakpoint, `undefined` is returned\n */\nexport function getFlattenedPropertiesByBreakpoint(\n  propertiesData: PropertiesData,\n  breakpointId: string,\n  allBreakpointIds: string[],\n  baseBreakpointId: string,\n  whitelistedPropertyPaths?: string[]\n): PropertiesData {\n  function _getFattenPropertiesByDefault(\n    properties: PropertiesData,\n    parentPath: string\n  ) {\n    if (isObjectExcludingArray(properties)) {\n      const accumulatorObj: Record<string, unknown> = {};\n\n      for (const propertyKey in properties) {\n        if (propertyKey === breakpointId) {\n          return properties[propertyKey];\n        }\n\n        // Don't include data for other breakpoints that aren't the one we're flattening\n        if (allBreakpointIds.includes(propertyKey)) continue;\n\n        const result = _getFattenPropertiesByDefault(\n          properties[propertyKey],\n          `${parentPath ? `${parentPath}.` : \"\"}${propertyKey}`\n        );\n\n        if (result !== undefined) {\n          accumulatorObj[propertyKey] = result;\n        }\n      }\n\n      // Was anything added to the accumulator?\n      return Object.keys(accumulatorObj).length ? accumulatorObj : undefined;\n    } else if (Array.isArray(properties)) {\n      const accumulatorArray: unknown[] = [];\n\n      properties.forEach(property => {\n        accumulatorArray.push(\n          _getFattenPropertiesByDefault(property, `${parentPath}[]`)\n        );\n      });\n\n      // for non-base breakpoints we can get an array of undefined. Remove it\n      // e.g: \"{tags: [1,2,3]}\" becomes \"{tags: [undefined, undefined, undefined]}\"\n      if (accumulatorArray.filter(value => value !== undefined).length === 0) {\n        return undefined;\n      }\n\n      // Was anything added to the array?\n      return accumulatorArray.length ? accumulatorArray : undefined;\n    }\n\n    const isCurrentPathWhitelisted =\n      parentPath &&\n      whitelistedPropertyPaths?.some(propertyPath =>\n        parentPath.startsWith(propertyPath)\n      );\n\n    // only return non-responsive values if we're on the base breakpoint\n    // A scalar (string, number, boolean, etc. But not an array or obj)\n    return breakpointId === baseBreakpointId || isCurrentPathWhitelisted\n      ? properties\n      : undefined;\n  }\n\n  return _getFattenPropertiesByDefault(propertiesData, \"\");\n}\n\nexport function isObjectExcludingArray(\n  value: unknown\n): /* todo: we are lying to typescript here, isn't there a better way to do this? the real problem is that properties data\nis an any */ value is Record<string, unknown> {\n  return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { Control } from \"./controls\";\nimport { TreeNodeV } from \"./tree\";\nimport * as t from \"io-ts\";\n\nexport type ClipboardStatus = {\n  secure: Window[\"isSecureContext\"];\n  permission: PermissionStatus | null;\n};\n\nconst ElementClipboardDataV = t.union([TreeNodeV, t.array(TreeNodeV)]);\n\nconst ControlSectionPropertiesDataClipboardDataV = t.type({\n  controlSectionShapeHash: t.string,\n  propertiesData: t.type({\n    propertiesData: t.unknown\n  })\n});\n\nexport const OxyClipboardDataV = t.type({\n  path: t.string,\n  data: t.unknown\n});\n\nexport const ClipboardDataV = t.partial({\n  element: ElementClipboardDataV,\n  controlSectionPropertiesData: ControlSectionPropertiesDataClipboardDataV,\n  oxy: OxyClipboardDataV\n});\n\nexport type OxyClipboardData = t.TypeOf<typeof OxyClipboardDataV>;\n\nexport type ClipboardData = t.TypeOf<typeof ClipboardDataV>;\n\nexport type ElementStudioClipboard = {\n  copiedControl: false | Control;\n};\n","import { exportNode, findNode } from \"@/lib/tree/tree\";\nimport { configStore, documentStore, uiStore } from \"@/store/store\";\nimport { TreeNode } from \"@/types/tree\";\nimport { fold, isRight } from \"fp-ts/lib/Either\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport {\n  findPlaceToAddNodes,\n  getDefaultTopLevelElementSlug,\n  getNestingRuleFromNode\n} from \"@/lib/tree/nesting\";\nimport { breakdanceUndo } from \"@/lib/undo/undo\";\nimport lodash from \"lodash\";\nimport defensiveCopy from \"@/util/defensive-copy\";\nimport fpJsonParseTypesafe from \"@/util/fp-json-parse-typesafe\";\nimport { fpJsonStringify } from \"@/util/fp-json-stringify\";\nimport { getBuilderElementNameBySlug } from \"@/lib/undo/snapshot-labels/document-store-property-change.utils\";\nimport { breakdanceStoreActions } from \"@/store/actions/store-actions\";\nimport { v4 as uuidV4 } from \"uuid\";\nimport { EasyEvent } from \"@/util/easy-event\";\nimport {\n  documentHasSelection,\n  fallbackWriteToClipboard,\n  getClipboardStatus\n} from \"@/lib/copy-paste/utils\";\nimport { readFromLocalStorage, writeToLocalStorage } from \"@/util/localstorage\";\nimport { ClipboardData, ClipboardDataV } from \"@/types/copy-paste\";\nimport { getClipboardDataForElementOrElements } from \"@/lib/copy-paste/element\";\nimport { pasteElements } from \"../design-library/design-library\";\nimport { isFutureLayerMode } from \"@/futurelayer/ui/ui\";\n\nconst clipboardEvents = new EasyEvent();\n\nexport function registerClipboardShortcuts() {\n  return {\n    register() {\n      clipboardEvents.on(\"copy\", onNativeEventReceived);\n      clipboardEvents.on(\"cut\", onNativeEventReceived);\n      clipboardEvents.on(\"paste\", onNativeEventReceived);\n    },\n    unbind() {\n      clipboardEvents.removeAll();\n    }\n  };\n}\n\nfunction onNativeEventReceived(event: ClipboardEvent) {\n  if (isFutureLayerMode()) {\n    return;\n  }\n\n  const iframeDoc = window.Breakdance.canvas.document;\n  const hasSelection =\n    documentHasSelection(iframeDoc) || documentHasSelection(document);\n\n  if (hasSelection) return;\n\n  event.preventDefault();\n\n  if (event.type === \"copy\" && uiStore.activeElementId) {\n    copyElement(uiStore.activeElementId);\n  } else if (event.type === \"cut\" && uiStore.activeElementId) {\n    cutElement(uiStore.activeElementId);\n  } else if (event.type === \"paste\") {\n    getElementToPasteAndPasteElement(uiStore.activeElementId, event);\n  }\n}\n\nasync function determinePastingMethod(event?: ClipboardEvent) {\n  const { secure, permission } = await getClipboardStatus();\n\n  // @ts-ignore\n  if (event && !window.safari) return \"event\"; // Safari behaves strangely on non-ssl websites.\n  if (!secure) return \"localstorage\";\n  if (permission === null || permission.state === \"denied\") {\n    return \"localstorage\";\n  }\n\n  return \"clipboard\";\n}\n\nexport async function writeToClipboard(text: string) {\n  try {\n    await navigator.clipboard.writeText(text);\n    console.debug(\"Writing to clipboard\");\n  } catch (err) {\n    fallbackWriteToClipboard(text);\n    console.debug(\"Fallback: Writing to clipboard\");\n  }\n\n  writeToLocalStorage(\"breakdance_clipboard\", text);\n}\n\nexport async function readFromClipboard(event?: ClipboardEvent) {\n  const eventText = event?.clipboardData?.getData(\"text\");\n  const method = await determinePastingMethod(event);\n  console.debug(`Reading clipboard from ${method}`);\n\n  // Accessing the clipboard from a native event requires no permission\n  if (method === \"event\") {\n    return eventText;\n  }\n\n  if (method === \"localstorage\") {\n    return readFromLocalStorage(\"breakdance_clipboard\");\n  }\n\n  return await navigator.clipboard.readText();\n}\n\nexport async function getDataFromClipboard(\n  event?: ClipboardEvent\n): Promise<ClipboardData | null> {\n  const clipboardJsonString = await readFromClipboard(event);\n\n  if (!clipboardJsonString) return null;\n\n  const maybeClipboardData = fpJsonParseTypesafe(\n    clipboardJsonString,\n    ClipboardDataV\n  );\n\n  return pipe(\n    maybeClipboardData,\n    fold(\n      () => null,\n      clipboardData => {\n        return clipboardData ?? null;\n      }\n    )\n  );\n}\n\nexport function copyElements(elementIds: TreeNode[\"id\"][]) {\n  const exportedElements: TreeNode[] = [];\n\n  elementIds.forEach(elementId => {\n    const elementToCopy = findNode(documentStore.document.tree, elementId);\n    if (elementToCopy) {\n      exportedElements.push(exportNode(elementToCopy));\n    }\n  });\n\n  const exportedElementsWithMetadata =\n    getClipboardDataForElementOrElements(exportedElements);\n\n  pipe(\n    exportedElementsWithMetadata,\n    fpJsonStringify,\n    fold(\n      e =>\n        console.error(\n          \"Failed to copy element\",\n          ...e.map(err => err.toString())\n        ),\n      exportedElementsAsJsonString => {\n        writeToClipboard(exportedElementsAsJsonString);\n      }\n    )\n  );\n}\n\nexport function copyElement(elementId: TreeNode[\"id\"]) {\n  const elementToCopy = findNode(documentStore.document.tree, elementId);\n  if (!elementToCopy) return;\n\n  const exportedElement = exportNode(elementToCopy);\n\n  const exportedElementWithMetadata =\n    getClipboardDataForElementOrElements(exportedElement);\n\n  pipe(\n    exportedElementWithMetadata,\n    fpJsonStringify,\n    fold(\n      e =>\n        console.error(\n          \"Failed to copy element\",\n          ...e.map(err => err.toString())\n        ),\n      exportedElementAsJsonString => {\n        writeToClipboard(exportedElementAsJsonString);\n      }\n    )\n  );\n}\n\nexport function cutElement(elementId: TreeNode[\"id\"]) {\n  copyElement(elementId);\n  documentStore.deleteElement({ nodeId: elementId });\n}\n\nexport async function getElementToPasteAndPasteElement(\n  elementIdToPasteNodesIntoOrNear: TreeNode[\"id\"] | null,\n  event?: ClipboardEvent\n) {\n  if (configStore.elementsLoadingState !== \"success\") return; // solves https://github.com/soflyy/breakdance/issues/5950\n\n  const elementToPaste = (await getDataFromClipboard(event))?.element;\n\n  if (!elementToPaste) return;\n\n  if (Array.isArray(elementToPaste)) {\n    pasteElements(elementToPaste, \"pasting\");\n    return;\n  } else {\n    pasteElement(elementIdToPasteNodesIntoOrNear, elementToPaste);\n  }\n}\n\nexport function pasteElement(\n  elementIdToPasteNodesIntoOrNear: TreeNode[\"id\"] | null,\n  elementToPaste: TreeNode\n) {\n  const placeToAdd = findPlaceToAddNodes(\n    documentStore.document.tree,\n    elementIdToPasteNodesIntoOrNear,\n    getNestingRuleFromNode(elementToPaste)\n  );\n\n  /**\n   * Snapshot bundling is required in order to merge the following\n   * mutations into a single snapshot:\n   *\n   * a) documentStore.addElementMutation(), documentStore.pasteCopiedElementMutation()\n   * b) mutations that are made by breakdanceStoreActions.run.onCreatedElement()\n   *\n   * Some mutations made by breakdanceStoreActions.onCreatedElement are async,\n   * meaning they won't be included into this specific transaction.\n   *\n   * The transactionKey is passed to breakdanceStoreActions.run.onCreatedElement(), so\n   * any transactions executed by the appropriate actions will use it in order to emerge\n   * changes made by those transactions into a single snapshot generated by this specific transaction.\n   *\n   * We don't know the node ID for the pasted element yet.\n   * Instead, a random number is included into the transactionKey\n   */\n  const uniqueId = uuidV4();\n  const transactionKey = `Paste:${uniqueId}`;\n\n  pipe(\n    placeToAdd,\n    fold(\n      () => {},\n      legalPlaceToAdd => {\n        if (legalPlaceToAdd === \"TOP_LEVEL\") {\n          breakdanceUndo.transaction(\n            () => {\n              const pointerForCreatedNodeId: { nodeId?: TreeNode[\"id\"] } = {\n                nodeId: undefined\n              };\n\n              documentStore.addElementMutation({\n                elementSlug: getDefaultTopLevelElementSlug(),\n                parentNodeId: documentStore.document.tree.root.id,\n                index: false,\n                pointer: pointerForCreatedNodeId\n              });\n\n              if (pointerForCreatedNodeId.nodeId !== undefined) {\n                documentStore.pasteCopiedElementMutation({\n                  element: elementToPaste,\n                  placeToAddId: pointerForCreatedNodeId.nodeId,\n                  placeToAddIndex: 0\n                });\n\n                breakdanceStoreActions.run.onCreatedElement({\n                  elementId: elementToPaste.id,\n                  transactionKey\n                });\n              }\n            },\n            `Paste copied ${getBuilderElementNameBySlug(\n              elementToPaste.data.type\n            )} into a new section`,\n            transactionKey\n          );\n        } else {\n          breakdanceUndo.transaction(\n            () => {\n              const pointerForCreatedNodeId: { nodeId?: TreeNode[\"id\"] } = {\n                nodeId: undefined\n              };\n\n              documentStore.pasteCopiedElementMutation({\n                element: elementToPaste,\n                placeToAddId: legalPlaceToAdd.place.id,\n                placeToAddIndex:\n                  legalPlaceToAdd.index ||\n                  legalPlaceToAdd.place.children.length,\n                pointer: pointerForCreatedNodeId\n              });\n\n              if (pointerForCreatedNodeId.nodeId) {\n                breakdanceStoreActions.run.onCreatedElement({\n                  elementId: pointerForCreatedNodeId.nodeId,\n                  transactionKey\n                });\n              }\n            },\n            `Paste copied ${getBuilderElementNameBySlug(\n              elementToPaste.data.type\n            )}`,\n            transactionKey\n          );\n        }\n      }\n    )\n  );\n}\n\nexport async function pasteElementProperties(\n  elementIdToPastePropertiesTo: TreeNode[\"id\"],\n  path: \"design\" | \"content\" | \"settings\" = \"design\"\n) {\n  const elementToCopyPropertiesFrom = (await getDataFromClipboard())?.element;\n\n  if (Array.isArray(elementToCopyPropertiesFrom)) return;\n  if (!elementToCopyPropertiesFrom) return;\n\n  const elementToPastePropertiesTo = findNode(\n    documentStore.document.tree,\n    elementIdToPastePropertiesTo\n  );\n\n  if (!elementToPastePropertiesTo) return;\n\n  const copiedProperties = lodash.get(\n    elementToCopyPropertiesFrom.data.properties,\n    path,\n    null\n  );\n  /*\n    Setting to undefined actually blows up VueSimpleDeepset\n    when you then try to set a control value that has previously been cleared\n    by this function. so we use null as a fallback\n    */\n  if (\n    elementToCopyPropertiesFrom.data.type ===\n    elementToPastePropertiesTo.data.type\n  ) {\n    documentStore.throttledPropertyChanged({\n      elementId: elementToPastePropertiesTo.id,\n      path: path,\n      value: defensiveCopy(copiedProperties),\n      meta: {\n        snapshotLabel: `Paste properties of ${getBuilderElementNameBySlug(\n          elementToCopyPropertiesFrom.data.type\n        )} to ${getBuilderElementNameBySlug(\n          elementToPastePropertiesTo.data.type\n        )}`\n      }\n    });\n  }\n}\n\nexport async function canPasteElement(\n  elementIdToPasteNodesIntoOrNear: TreeNode[\"id\"]\n) {\n  if (configStore.elementsLoadingState !== \"success\") return false; // solves https://github.com/soflyy/breakdance/issues/5950\n\n  const elementOrElementsToPaste = (await getDataFromClipboard())?.element;\n\n  /*\n  we return true here, because we assume it's an array of sections.\n  in breakdance, we don't allow you to copy anything other than an array of sections since the only way to \n  copy multiple elements to the clipboard is from the structure panel dropdown menu\n  except...\n   - editing a global block, you could copy non-sections\n   - editing a popup\n  so, that is a bug, but it's a bug that exists elsewhere in breakdance too - for example, you can't really copy/paste popups as far as i know\n  */\n  if (Array.isArray(elementOrElementsToPaste)) return true;\n\n  if (!elementOrElementsToPaste) return false;\n\n  const placeToAdd = findPlaceToAddNodes(\n    documentStore.document.tree,\n    elementIdToPasteNodesIntoOrNear,\n    getNestingRuleFromNode(elementOrElementsToPaste)\n  );\n\n  return isRight(placeToAdd);\n}\n\nexport async function canPasteElementProperties(\n  elementIdToPastePropertiesTo: TreeNode[\"id\"]\n) {\n  const elementOrElements = (await getDataFromClipboard())?.element;\n\n  if (Array.isArray(elementOrElements)) return false;\n\n  if (!elementOrElements) return false;\n\n  const elementToPasteTo = findNode(\n    documentStore.document.tree,\n    elementIdToPastePropertiesTo\n  );\n\n  return elementOrElements.data.type === elementToPasteTo?.data.type;\n}\n","import { ClipboardStatus } from \"@/types/copy-paste\";\n\ndeclare global {\n  // @see https://github.com/microsoft/TypeScript/issues/33923\n  interface PermissionDescriptor {\n    allowWithoutGesture: boolean;\n  }\n}\n\nexport async function maybeQueryClipboardPermission(): Promise<PermissionStatus | null> {\n  try {\n    return await navigator.permissions.query({\n      name: \"clipboard-read\" as PermissionName, // @see https://github.com/microsoft/TypeScript/issues/33923\n      allowWithoutGesture: false\n    });\n  } catch (e) {\n    return null;\n  }\n}\n\nexport async function getClipboardStatus(): Promise<ClipboardStatus> {\n  const permission = await maybeQueryClipboardPermission();\n\n  return {\n    secure: window.isSecureContext,\n    permission\n  };\n}\n\nexport function fallbackWriteToClipboard(text: string) {\n  const textArea = document.createElement(\"textarea\");\n  textArea.value = text;\n\n  // Avoid scrolling to bottom\n  textArea.style.top = \"0\";\n  textArea.style.left = \"0\";\n  textArea.style.position = \"fixed\";\n\n  textArea.classList.add(\"breakdance-offscreen-input\");\n\n  document.body.appendChild(textArea);\n  textArea.focus();\n  textArea.select();\n\n  let result: boolean;\n\n  try {\n    result = document.execCommand(\"copy\");\n  } catch (err) {\n    result = false;\n  }\n\n  document.body.removeChild(textArea);\n  return result;\n}\n\nfunction isHTMLInputElement(node: HTMLElement): node is HTMLInputElement {\n  return node?.nodeName === \"INPUT\";\n}\n\nfunction isTextField(node: HTMLElement) {\n  const nonTextInputs = [\n    \"button\",\n    \"checkbox\",\n    \"hidden\",\n    \"file\",\n    \"radio\",\n    \"image\",\n    \"range\",\n    \"reset\",\n    \"submit\",\n    \"number\",\n    \"email\",\n    \"time\"\n  ];\n\n  return (\n    (isHTMLInputElement(node) &&\n      node.type &&\n      !nonTextInputs.includes(node.type)) ||\n    node.nodeName === \"TEXTAREA\" ||\n    node.contentEditable === \"true\"\n  );\n}\n\nexport function documentHasTextSelection(doc: Document) {\n  const selection = doc?.defaultView?.getSelection();\n  const range = selection?.rangeCount ? selection.getRangeAt(0) : null;\n  return !!range && !range.collapsed;\n}\n\nexport function documentHasSelection(doc: Document) {\n  const activeEl = doc.activeElement as HTMLElement;\n\n  return (\n    activeEl &&\n    (isHTMLInputElement(activeEl) ||\n      isTextField(activeEl) ||\n      documentHasTextSelection(doc))\n  );\n}\n","import { makeWordPressAjaxRequest } from \"@/lib/wordpress/ajax\";\nimport { PropertiesDataV } from \"@/types/tree\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { fold } from \"fp-ts/lib/Either\";\nimport { _Error, logErrorsToUiStore } from \"@/lib/wordpress/data\";\nimport { globalStore } from \"@/store/store-accessor\";\nimport * as t from \"io-ts\";\nimport { fpJsonStringify } from \"@/util/fp-json-stringify\";\nimport { breakdanceUndo } from \"@/lib/undo/undo\";\n\nexport async function fetchGlobalSettings(): Promise<boolean> {\n  const maybeGlobalSettingsData = await makeWordPressAjaxRequest({\n    action: \"breakdance_load_global_settings\",\n    decoder: PropertiesDataV\n  });\n  return pipe(\n    maybeGlobalSettingsData,\n    fold(\n      errors => {\n        logErrorsToUiStore(\n          errors.map(err => {\n            return {\n              ...err,\n              customNotificationToShow: err.customNotificationToShow\n                ? err.customNotificationToShow.type === \"INTERNAL_SERVER_ERROR\"\n                  ? { ...err.customNotificationToShow, keepOpen: true }\n                  : err.customNotificationToShow\n                : undefined\n            };\n          })\n        );\n        return false;\n      },\n      loadedData => {\n        breakdanceUndo.ignore(() => {\n          globalStore.setGlobalSettings(loadedData.globalSettings);\n          globalStore.markCurrentGlobalSettingsAsUntouched();\n        });\n        return true;\n      }\n    )\n  );\n}\n\nexport async function saveGlobalSettingsToWordPress(): Promise<boolean> {\n  return pipe(\n    await makeWordPressAjaxRequest({\n      friendlyName: \"Saving global settings to WordPress\",\n      action: \"breakdance_save_global_settings\",\n      dataToPost: {\n        globalSettings: fpJsonStringify(globalStore.globalSettings)\n      },\n      decoder: t.unknown\n    }),\n    fold(\n      (errors: _Error[]) => {\n        logErrorsToUiStore(errors);\n        return false;\n      },\n      () => {\n        breakdanceUndo.ignore(() =>\n          globalStore.markCurrentGlobalSettingsAsUntouched()\n        );\n        return true;\n      }\n    )\n  );\n}\n","const wpI18n = window.wp.i18n;\n\nexport function __(text: string, domain = \"breakdance\") {\n  return wpI18n.__(text, domain);\n}\n\nexport function _x(text: string, context: string, domain = \"breakdance\") {\n  return wpI18n._x(text, context, domain);\n}\n\nexport function _nx(\n  single: string,\n  plural: string,\n  number: number,\n  context: string,\n  domain = \"breakdance\"\n) {\n  return wpI18n._nx(single, plural, number, context, domain);\n}\n\n// _doc is non-standard, but it allows us to easily pass explanations in vue templates for the extract tool\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function _doc(text: string, _explanation: string) {\n  return wpI18n.__(text, \"breakdance\");\n}\n\n// _xdoc combines _x and _doc - it uses context for translation and explanation for the extract tool\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function _xdoc(\n  text: string,\n  context: string,\n  _explanation: string,\n  domain = \"breakdance\"\n) {\n  return wpI18n._x(text, context, domain);\n}\n\nexport const sprintf = wpI18n.sprintf;\n\nexport function detectI18nLocale(): string | undefined {\n  if (typeof document === \"undefined\") return undefined;\n  const lang = document.documentElement.getAttribute(\"lang\");\n  if (!lang) return \"en\";\n  try {\n    return new Intl.Locale(lang).toString();\n  } catch {\n    return lang;\n  }\n}\n\nexport function i18nFormatList(items: string[]) {\n  if (!Array.isArray(items) || items.length === 0) return \"\";\n\n  const loc = detectI18nLocale();\n\n  const formatter = new Intl.ListFormat(loc, {\n    style: \"long\",\n    type: \"conjunction\"\n  });\n\n  return formatter.format(items);\n}\n","import { left, right, Either } from \"fp-ts/lib/Either\";\nimport { CSSSelector, CSSSelectorListV } from \"@/types/selectors\";\nimport { makeWordPressAjaxRequest } from \"@/lib/wordpress/ajax\";\nimport { pipe } from \"fp-ts/function\";\nimport { fold } from \"fp-ts/Either\";\nimport { _Error, logErrorsToUiStore } from \"@/lib/wordpress/data\";\nimport { globalStore } from \"@/store/store-accessor\";\nimport { fpJsonStringify } from \"@/util/fp-json-stringify\";\nimport * as t from \"io-ts\";\nimport { isUiPanelOpen } from \"@/lib/panels/panels\";\nimport { breakdanceUndo } from \"@/lib/undo/undo\";\nimport NotificationLogger from \"@/lib/notifications/notifications\";\nimport { __, _doc, sprintf } from \"@/lib/i18n\";\n\n/** https://stackoverflow.com/questions/448981/which-characters-are-valid-in-css-class-names-selectors */\nexport function isValidClassName(name: string) {\n  return /^-?[.]+[_a-zA-Z]+[_a-zA-Z0-9-]*$/.test(name);\n}\n\n/** https://stackoverflow.com/questions/34849001/check-if-css-selector-is-valid */\nexport function isValidSelectorName(name: string) {\n  try {\n    document.createDocumentFragment().querySelector(name);\n  } catch {\n    return false;\n  }\n  return true;\n}\n\nexport function addSelector(newSelector: CSSSelector) {\n  /* these errors should never appear - a check should happen before this point */\n  if (newSelector.type === \"class\") {\n    if (!isValidClassName(newSelector.name)) {\n      NotificationLogger.log.message(\n        sprintf(\n          _doc(\"%s is not a valid CSS class name.\", \"%s: CSS selector name\"),\n          newSelector.name\n        )\n      );\n      return;\n    }\n  } else {\n    if (!isValidSelectorName(newSelector.name)) {\n      NotificationLogger.log.message(\n        sprintf(\n          _doc(\"%s is not a valid CSS selector.\", \"%s: CSS selector name\"),\n          newSelector.name\n        )\n      );\n\n      return;\n    }\n  }\n\n  if (\n    globalStore.cssSelectors.find(\n      selector => selector.name === newSelector.name\n    )\n  ) {\n    NotificationLogger.log.message(\n      sprintf(\n        _doc(\"%s is already present.\", \"%s: CSS selector name\"),\n        newSelector.name\n      )\n    );\n    return;\n  }\n\n  breakdanceUndo.transaction(\n    () => globalStore.setSelectors([...globalStore.cssSelectors, newSelector]),\n    \"Add Selector\"\n  );\n}\n\nexport function addSelectorToStoreAndSaveSelectorsToWordPressIfSelectorsPanelIsClosed(\n  selector: CSSSelector\n) {\n  addSelector(selector);\n\n  // TODO not sure whether this check should exist here, it's inspired by SaveColorDialog.saveAsGlobal()'s logic\n  if (!isUiPanelOpen(\"selectors\")) {\n    saveSelectorsToWordPress();\n  }\n}\n\nexport function createCssSelectorObjectFromSelectorName(\n  selectorName: string\n): Either<string[], CSSSelector> {\n  if (!isValidSelectorName(selectorName)) {\n    return left([\n      sprintf(\n        _doc('\"%s\" is not a valid CSS selector.', \"%s: CSS selector name\"),\n        selectorName\n      )\n    ]);\n  }\n\n  const isClass = !!isValidClassName(selectorName);\n\n  return right({\n    name: selectorName,\n    type: isClass ? \"class\" : \"custom\",\n    properties: {}\n  });\n}\n\nexport async function refetchSelectorsFromServerToGlobalStore(): Promise<boolean> {\n  const selectorsFromServerOrErrors = await makeWordPressAjaxRequest({\n    action: \"breakdance_load_selectors\",\n    decoder: CSSSelectorListV\n  });\n\n  return pipe(\n    selectorsFromServerOrErrors,\n    fold(\n      errors => {\n        logErrorsToUiStore(\n          errors.map(err => {\n            return {\n              ...err,\n              customNotificationToShow: err.customNotificationToShow\n                ? err.customNotificationToShow.type === \"INTERNAL_SERVER_ERROR\"\n                  ? { ...err.customNotificationToShow, keepOpen: true }\n                  : err.customNotificationToShow\n                : undefined\n            };\n          })\n        );\n        return false;\n      },\n      loadedData => {\n        breakdanceUndo.ignore(() => {\n          globalStore.setSelectors(loadedData);\n          globalStore.markCurrentSelectorsAsUntouched();\n        });\n        return true;\n      }\n    )\n  );\n}\n\nexport async function saveSelectorsToWordPress(): Promise<boolean> {\n  return pipe(\n    await makeWordPressAjaxRequest({\n      friendlyName: __(\"Saving selectors to WordPress\"),\n      action: \"breakdance_save_selectors\",\n      dataToPost: {\n        selectors: fpJsonStringify(globalStore.cssSelectors)\n      },\n      decoder: t.unknown\n    }),\n    fold(\n      (errors: _Error[]) => {\n        logErrorsToUiStore(errors);\n        return false;\n      },\n      () => {\n        breakdanceUndo.ignore(() =>\n          globalStore.markCurrentSelectorsAsUntouched()\n        );\n        return true;\n      }\n    )\n  );\n}\n","import { configStore, globalStore } from \"@/store/store\";\nimport {\n  Control,\n  InheritancePosition,\n  OxygenInheritance,\n  OxygenInheritanceValue,\n  OxySelector\n} from \"@/oxygen/classes/lib/types\";\nimport { pipe } from \"fp-ts/function\";\nimport { GradientColorV } from \"@/types/colors\";\nimport { fold } from \"fp-ts/Either\";\n\nconst COMPOUND_PROPERTIES = {\n  \"layout.gap\": [\"layout.gap.column\", \"layout.gap.row\"]\n};\n\nfunction isValueEmpty(value: unknown) {\n  return value === \"\" || value === null || value === undefined;\n}\n\nfunction isUnitValue(\n  obj: unknown\n): obj is { unit: string; number: number; style: string } {\n  return (\n    typeof obj === \"object\" &&\n    obj !== null &&\n    \"unit\" in obj &&\n    \"number\" in obj &&\n    \"style\" in obj\n  );\n}\n\nfunction isNestedObject(value: unknown): value is Record<string, unknown> {\n  return typeof value === \"object\" && value !== null && !isUnitValue(value);\n}\n\nfunction getPosition(\n  currentIndex: number,\n  loopedIndex: number\n): InheritancePosition {\n  if (loopedIndex > currentIndex) return InheritancePosition.AFTER;\n  if (loopedIndex === currentIndex) return InheritancePosition.CURRENT;\n  return InheritancePosition.BEFORE;\n}\n\nfunction processNestedProperties(\n  property: string,\n  value: Record<string, unknown>,\n  selectorId: string,\n  inheritanceMap: OxygenInheritance,\n  position: OxygenInheritanceValue[\"position\"],\n  breakpoint: string,\n  currentBreakpointIndex: number,\n  breakpointIndex: number\n) {\n  for (const subProperty in value) {\n    const fullProperty = `${property}.${subProperty}`;\n    const subValue = value[subProperty];\n\n    if (isNestedObject(subValue)) {\n      for (const deepProperty in subValue) {\n        const deepFullProperty = Array.isArray(subValue)\n          ? `${fullProperty}[${deepProperty}]`\n          : `${fullProperty}.${deepProperty}`;\n\n        const deepValue = subValue[deepProperty];\n\n        if (isNestedObject(deepValue)) {\n          processNestedProperties(\n            deepFullProperty,\n            deepValue,\n            selectorId,\n            inheritanceMap,\n            position,\n            breakpoint,\n            currentBreakpointIndex,\n            breakpointIndex\n          );\n        } else if (!isValueEmpty(deepValue)) {\n          inheritanceMap[deepFullProperty] = {\n            value: deepValue,\n            position,\n            breakpoint,\n            from: selectorId,\n            fromBreakpoint: breakpointIndex < currentBreakpointIndex\n          };\n        }\n      }\n    } else if (!isValueEmpty(subValue)) {\n      inheritanceMap[fullProperty] = {\n        value: subValue,\n        position,\n        breakpoint,\n        from: selectorId,\n        fromBreakpoint: breakpointIndex < currentBreakpointIndex\n      };\n    }\n  }\n}\n\nfunction processBreakpointProperties(\n  breakpointProps: Record<string, unknown>,\n  selectorId: string,\n  inheritanceMap: OxygenInheritance,\n  position: OxygenInheritanceValue[\"position\"],\n  breakpoint: string,\n  currentBreakpointIndex: number,\n  breakpointIndex: number\n) {\n  for (const property in breakpointProps) {\n    const value = breakpointProps[property];\n\n    if (isNestedObject(value)) {\n      processNestedProperties(\n        property,\n        value,\n        selectorId,\n        inheritanceMap,\n        position,\n        breakpoint,\n        currentBreakpointIndex,\n        breakpointIndex\n      );\n    } else if (!isValueEmpty(value)) {\n      inheritanceMap[property] = {\n        value,\n        position,\n        breakpoint,\n        from: selectorId,\n        fromBreakpoint: breakpointIndex < currentBreakpointIndex\n      };\n    }\n  }\n}\nexport function getInheritanceMap(\n  elementSelectorsIds: string[], // unordered, does not follow css cascade order\n  currentSelectorId: string,\n  currentBreakpoint: string\n): OxygenInheritance {\n  const inheritanceMap: OxygenInheritance = {};\n  const allSelectors = globalStore.oxySelectors.flatMap(s => [\n    s,\n    ...(s.children || [])\n  ]);\n\n  const currentSelectors = elementSelectorsIds\n    .map(id => {\n      const selector = allSelectors.find(s => s.id === id);\n      if (!selector) return null;\n      return selector;\n    })\n    .filter(s => s !== null) as OxySelector[];\n\n  // Sort currentSelectors to respect the order from allSelectors\n  const sortedCurrentSelectors = [...currentSelectors].sort((a, b) => {\n    const aIndex = allSelectors.findIndex(s => s.id === a.id);\n    const bIndex = allSelectors.findIndex(s => s.id === b.id);\n    return aIndex - bIndex;\n  });\n\n  const currentSelectorIndex = sortedCurrentSelectors.findIndex(\n    s => s.id === currentSelectorId\n  );\n  const currentBreakpointIndex = configStore.breakpointIds.findIndex(\n    b => b === currentBreakpoint\n  );\n  const breakpointsUpToCurrent = configStore.breakpointIds.slice(\n    0,\n    currentBreakpointIndex + 1\n  );\n\n  for (let i = 0; i < sortedCurrentSelectors.length; i++) {\n    const selector = sortedCurrentSelectors[i];\n    const position = getPosition(currentSelectorIndex, i);\n\n    for (let j = 0; j < breakpointsUpToCurrent.length; j++) {\n      const breakpoint = breakpointsUpToCurrent[j];\n      const props = selector.properties?.[breakpoint];\n\n      if (props) {\n        processBreakpointProperties(\n          props,\n          selector.id,\n          inheritanceMap,\n          position,\n          breakpoint,\n          currentBreakpointIndex,\n          j\n        );\n      }\n    }\n  }\n\n  // Merge properties that are compound properties\n\n  for (const [property, subProperties] of Object.entries(COMPOUND_PROPERTIES)) {\n    if (subProperties.some(subProperty => subProperty in inheritanceMap)) {\n      inheritanceMap[property] = inheritanceMap[subProperties[0]];\n    }\n  }\n\n  return inheritanceMap;\n}\n\nexport function filterKeysByPrefix(\n  obj: OxygenInheritance | undefined,\n  prefix: string\n) {\n  if (!obj) return undefined;\n\n  return Object.entries(obj).reduce((acc, [key, value]) => {\n    if (key.startsWith(prefix)) {\n      acc[key.slice(prefix.length)] = value;\n    }\n    return acc;\n  }, {} as OxygenInheritance);\n}\n\nexport function controlValueToPlaceholder(\n  control: Control,\n  value: unknown\n): unknown {\n  if (control.type === \"select\") {\n    const foundItem = control.items?.find(function (item) {\n      if (typeof item === \"string\") {\n        return item === value;\n      }\n      return item.value === value;\n    });\n\n    if (typeof foundItem === \"string\") {\n      return foundItem;\n    }\n\n    return foundItem?.label;\n  }\n\n  if (control.type === \"unit\") {\n    return value;\n  }\n\n  if (control.type === \"font-family\") {\n    const foundVariable = configStore.fonts.find(font => font.slug === value);\n    return foundVariable?.label || \"\";\n  }\n\n  if (control.type === \"color\") {\n    return pipe(\n      value,\n      GradientColorV.decode,\n      fold(\n        () => value,\n        gradient => gradient.type\n      )\n    );\n  }\n\n  if (control.type === \"spacing\") {\n    return value as Record<string, unknown>;\n  }\n\n  if (typeof value === \"string\") {\n    return value;\n  }\n\n  if (typeof value === \"number\") {\n    return value.toString();\n  }\n\n  return \"\";\n}\n\nexport function shouldShowInheritanceAsPlaceholder(\n  inheritanceValue?: OxygenInheritanceValue\n): inheritanceValue is OxygenInheritanceValue {\n  if (\n    inheritanceValue?.value === null ||\n    inheritanceValue?.value === undefined\n  ) {\n    return false;\n  }\n  return isValueInheritted(inheritanceValue);\n}\n\nexport function isValueOverwritten(\n  inheritanceValue?: OxygenInheritanceValue\n): inheritanceValue is OxygenInheritanceValue {\n  return inheritanceValue?.position === InheritancePosition.AFTER;\n}\n\nexport function isValueInheritted(\n  inheritanceValue?: OxygenInheritanceValue\n): inheritanceValue is OxygenInheritanceValue {\n  const isBefore = inheritanceValue?.position === InheritancePosition.BEFORE;\n  return isBefore || isValueFromBreakpoint(inheritanceValue);\n}\n\nexport function isValueFromBreakpoint(\n  inheritanceValue?: OxygenInheritanceValue\n): inheritanceValue is OxygenInheritanceValue {\n  return (\n    !!inheritanceValue?.fromBreakpoint &&\n    inheritanceValue?.position === InheritancePosition.CURRENT\n  );\n}\n","import { OxySelector } from \"@/oxygen/classes/lib/types\";\n\n/*\n * Changes made here should be reflected in replaceAmpersandInSelector in the breakdance-oxygen/selectors.php file\n */\nexport function replaceAmpersandInSelector(selector: OxySelector) {\n  const replacement = getFullSelectorName(selector);\n\n  return {\n    ...selector,\n    children: selector.children?.map(child => {\n      // Implicitly add an ampersand to the beginning of the name\n      const name = child.name.includes(\"&\") ? child.name : `& ${child.name}`;\n\n      return {\n        ...child,\n        name: name.replace(/&/g, replacement)\n      };\n    })\n  };\n}\n\nexport function getFullSelectorName(selector: OxySelector): string {\n  if (selector.type === \"class\") {\n    return `.${selector.name}`;\n  }\n\n  return selector.name;\n}\n","import { makeWordPressAjaxRequest } from \"@/lib/wordpress/ajax\";\nimport { pipe } from \"fp-ts/function\";\nimport { fold, mapLeft, toUnion } from \"fp-ts/Either\";\nimport { _Error, logErrorsToUiStore } from \"@/lib/wordpress/data\";\nimport { globalStore } from \"@/store/store-accessor\";\nimport { fpJsonStringify } from \"@/util/fp-json-stringify\";\nimport * as t from \"io-ts\";\nimport { isUiPanelOpen } from \"@/lib/panels/panels\";\nimport { breakdanceUndo } from \"@/lib/undo/undo\";\nimport {\n  LoadedVariablesDataV,\n  Variable,\n  VariablesRevisionsList,\n  VariablesRevisionsListV\n} from \"@/oxygen/variables/lib/types\";\n\nexport function addVariable(newVariable: Variable) {\n  breakdanceUndo.transaction(() => {\n    // Find the index of the last item with the same collection\n    const variables = globalStore.variables;\n    let insertIndex = variables.length;\n\n    for (let i = variables.length - 1; i >= 0; i--) {\n      if (variables[i].collection === newVariable.collection) {\n        insertIndex = i + 1;\n        break;\n      }\n    }\n\n    const newVariables = [\n      ...variables.slice(0, insertIndex),\n      newVariable,\n      ...variables.slice(insertIndex)\n    ];\n\n    globalStore.setVariables(newVariables);\n  }, \"Add Variable\");\n}\n\nexport function addVariableToStoreAndSaveVariablesToWordPressIfVariablesPanelIsClosed(\n  variable: Variable\n) {\n  addVariable(variable);\n\n  if (!isUiPanelOpen(\"variables\")) {\n    saveVariablesToWordPress();\n  }\n}\n\nexport async function refetchVariablesFromServerToGlobalStore(): Promise<boolean> {\n  const variablesFromServerOrErrors = await makeWordPressAjaxRequest({\n    action: \"breakdance_load_variables\",\n    decoder: LoadedVariablesDataV\n  });\n\n  return pipe(\n    variablesFromServerOrErrors,\n    fold(\n      errors => {\n        logErrorsToUiStore(\n          errors.map(err => {\n            return {\n              ...err,\n              customNotificationToShow: err.customNotificationToShow\n                ? err.customNotificationToShow.type === \"INTERNAL_SERVER_ERROR\"\n                  ? { ...err.customNotificationToShow, keepOpen: true }\n                  : err.customNotificationToShow\n                : undefined\n            };\n          })\n        );\n        return false;\n      },\n      loadedData => {\n        breakdanceUndo.ignore(() => {\n          globalStore.setVariables(loadedData.variables);\n          globalStore.setVariablesCollections(loadedData.collections);\n          globalStore.markCurrentVariablesAsUntouched();\n        });\n        return true;\n      }\n    )\n  );\n}\n\nexport async function saveVariablesToWordPress(): Promise<boolean> {\n  return pipe(\n    await makeWordPressAjaxRequest({\n      friendlyName: \"Saving variables to WordPress\",\n      action: \"breakdance_save_variables\",\n      dataToPost: {\n        variables: fpJsonStringify({\n          variables: globalStore.variables,\n          collections: globalStore.variablesCollections\n        })\n      },\n      decoder: t.unknown\n    }),\n    fold(\n      (errors: _Error[]) => {\n        logErrorsToUiStore(errors);\n        return false;\n      },\n      () => {\n        breakdanceUndo.ignore(() =>\n          globalStore.markCurrentVariablesAsUntouched()\n        );\n        return true;\n      }\n    )\n  );\n}\n\nexport async function fetchRemoteVariablesRevisions(): Promise<VariablesRevisionsList | null> {\n  return pipe(\n    await makeWordPressAjaxRequest({\n      action: \"breakdance_retrieve_variables_revisions\",\n      decoder: VariablesRevisionsListV\n    }),\n    mapLeft(() => null),\n    toUnion\n  );\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{staticClass:\"breakdance-admin-wp\"},[_c('Notifications'),_c('div',{staticClass:\"manage-templates-app\"},[(_vm.isBlockPostType)?[_c('ManageGlobalBlocks')]:[_c('ManageTemplates',{attrs:{\"postType\":_vm.postType}})]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isLoadingData)?_c('Loading'):_vm._e(),_c('div',{staticClass:\"manage-templates\"},[_c('div',{staticClass:\"manage-templates__header\"},[_c('h1',{staticClass:\"manage-templates__title\"},[_vm._v(\" \"+_vm._s(_vm.showTrash ? _vm.sprintf( _vm._xdoc( \"Deleted %s\", \"Templates\", \"%s: Template type name (plural)\" ), _vm.templateNamePlural ) : _vm.templateNamePlural)+\" \")]),(!_vm.showTrash)?[(\n            _vm.postType === _vm.breakdanceHeaderPostType ||\n            _vm.postType === _vm.breakdanceFooterPostType ||\n            _vm.postType === 'breakdance_popup'\n          )?_c('v-btn',{staticClass:\"breakdance-wp-admin-templating-button\",attrs:{\"elevation\":\"0\",\"outlined\":\"\"},on:{\"click\":function($event){_vm.modalData = { type: 'add', data: _vm.blankTemplateWithValidSettings }}}},[(_vm.postType === _vm.breakdanceHeaderPostType)?_c('span',[_vm._v(_vm._s(_vm.__(\"Add Header\")))]):_vm._e(),(_vm.postType === _vm.breakdanceFooterPostType)?_c('span',[_vm._v(_vm._s(_vm.__(\"Add Footer\")))]):_vm._e(),(_vm.postType === 'breakdance_popup')?_c('span',[_vm._v(_vm._s(_vm.__(\"Add Popup\")))]):_vm._e()]):_vm._e(),(_vm.postType === _vm.breakdanceTemplatePostType)?_c('AddTemplateDropdown',{attrs:{\"templateName\":_vm.templateName,\"isWooCommerceActive\":_vm.isWooCommerceActive,\"templates\":_vm.templatesByStatus},on:{\"input\":_vm.saveTemplate,\"blankModal\":function($event){return _vm.handleTemplateCardModal(`add`, _vm.blankTemplateWithValidSettings)},\"modalWithSettings\":function($event){return _vm.handleTemplateCardModal(`add`, $event)}}}):_vm._e()]:_vm._e()],2),(\n        this.templatesByStatus.length > 0 ||\n        this.filteredTemplatesBySearch.length > 0 ||\n        _vm.trashLength > 0 ||\n        _vm.showTrash\n      )?_c('div',{staticClass:\"manage-templates__actions\"},[(!_vm.showTrash)?_c('div',{staticClass:\"manage-templates__search\"},[_c('SearchInput',{attrs:{\"placeholder\":_vm.searchInputPlaceholder},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1):_vm._e(),_c('div',{staticClass:\"manage-templates__secondary-actions\"},[(_vm.showTrash && this.templatesByStatus.length)?_c('v-btn',{staticClass:\"mr-4\",attrs:{\"text\":\"\",\"loading\":_vm.emptyingTrash},on:{\"click\":_vm.emptyTrash}},[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"TrashIcon\",\"size\":\"16\"}}),_vm._v(\" \"+_vm._s(_vm.__(\"Empty Trash\"))+\" \")],1):_vm._e(),(_vm.trashLength || _vm.showTrash)?_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showTrash = !_vm.showTrash}}},[(_vm.showTrash)?[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"ArrowLeftLongIcon\",\"size\":\"16\"}}),_vm._v(\" \"+_vm._s(_vm.__(\"Back\"))+\" \")]:[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"TrashIcon\",\"size\":\"16\"}}),_vm._v(\" \"+_vm._s(_vm.sprintf(_vm.__(\"Trash (%d)\"), _vm.trashLength))+\" \")]],2):_vm._e()],1)]):_vm._e()]),_c('EmptyState',{attrs:{\"value\":_vm.emptyStateData}}),(_vm.filteredTemplatesBySearch.length > 0)?_c('v-simple-table',{staticClass:\"manage-templates__table breakdance-table\",class:_vm.newTemplateAdded ? 'added' : ''},[_c('thead',[_c('tr',[_c('th',{attrs:{\"width\":\"35%\"}},[_vm._v(_vm._s(_vm.__(\"Template\")))]),_c('th',{attrs:{\"width\":\"25%\"}},[_vm._v(_vm._s(_vm.__(\"Applies to\")))]),_c('th',{attrs:{\"width\":\"15%\"}},[_vm._v(_vm._s(_vm.__(\"Conditions\")))]),(_vm.postType === 'breakdance_popup')?_c('th',{attrs:{\"width\":\"15%\"}},[_vm._v(\" \"+_vm._s(_vm.__(\"Triggers\"))+\" \")]):_vm._e(),(_vm.postType !== 'breakdance_popup')?_c('th',{attrs:{\"width\":\"15%\"}},[_vm._v(\" \"+_vm._s(_vm.__(\"Priority\"))+\" \")]):_vm._e(),_c('th',{attrs:{\"width\":\"10%\"}},[_vm._v(_vm._s(_vm.__(\"Active\")))])])]),_c('transition-group',{attrs:{\"tag\":\"tbody\",\"name\":\"fade\",\"mode\":\"in-out\"}},_vm._l((_vm.filteredTemplatesBySearch),function(template){return _c('TemplateRow',{key:template.id,class:!_vm.newTemplateAdded ? 'animation-disabled' : '',attrs:{\"value\":_vm.getTemplateWithValidSettings(template),\"templateTypeCategories\":_vm.templatesManagementData.templateTypeCategories,\"templateParents\":_vm.templateParentsWithoutTrashed},on:{\"input\":_vm.handleTemplateCardModal,\"update\":_vm.updateTemplate,\"duplicate\":_vm.duplicateTemplate,\"trash\":_vm.trashTemplate,\"delete\":_vm.deleteTemplate,\"restore\":_vm.restoreTemplate}})}),1)],1):_vm._e(),(_vm.modalData)?_c('EditTemplateModal',{attrs:{\"value\":_vm.modalData.data,\"templatesManagementData\":_vm.templatesManagementData,\"postType\":_vm.postType,\"templateParents\":_vm.templateParentsWithoutTrashed,\"templates\":_vm.templatesByStatus,\"mode\":_vm.modalData.type,\"skipWarning\":_vm.skipWarning,\"hasPermissionToManageFallbacks\":_vm.hasPermissionToManageFallbacks},on:{\"input\":function($event){return _vm.saveTemplate($event)},\"close\":function($event){_vm.modalData = false},\"skipWarning\":function($event){_vm.skipWarning = $event}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('td',[_c('div',{staticClass:\"manage-templates__title-row\"},[(_vm.mode === 'trash')?_c('span',{staticClass:\"manage-templates__title-link\"},[_vm._v(\" \"+_vm._s(_vm.value.title)+\" \"),_c('span',{staticClass:\"manage-templates__title-id\"},[_vm._v(\"#\"+_vm._s(_vm.value.id))])]):_c('a',{staticClass:\"manage-templates__title-link\",attrs:{\"target\":\"_top\",\"href\":_vm.value.editInBreakdanceLink}},[_vm._v(\" \"+_vm._s(_vm.value.title)+\" \"),_c('span',{staticClass:\"manage-templates__title-id\"},[_vm._v(\"#\"+_vm._s(_vm.value.id))])])]),_c('div',{staticClass:\"manage-templates__row-actions\"},[(_vm.mode === 'publish')?_c('a',{staticClass:\"manage-templates__btn-action\",attrs:{\"href\":_vm.value.editInBreakdanceLink,\"target\":\"_top\",\"title\":_vm.sprintf(\n            _vm._xdoc('Edit in %s', 'Template', '%s: Plugin name'),\n            _vm.$bdox('plugin_name')\n          )}},[_vm._v(\" \"+_vm._s(_vm.sprintf( _vm._xdoc(\"Edit in %s\", \"Template\", \"%s: Plugin name\"), _vm.$bdox(\"plugin_name\") ))+\" \")]):_vm._e(),(_vm.mode === 'publish')?_c('button',{staticClass:\"manage-templates__btn-action\",attrs:{\"title\":_vm.__('Settings')},on:{\"click\":_vm.openEditTemplateModal}},[_vm._v(\" \"+_vm._s(_vm.__(\"Settings\"))+\" \")]):_vm._e(),(_vm.mode === 'trash')?_c('button',{staticClass:\"manage-templates__btn-action\",attrs:{\"title\":_vm.__('Restore')},on:{\"click\":_vm.restoreTemplate}},[_vm._v(\" \"+_vm._s(_vm.__(\"Restore\"))+\" \")]):_vm._e(),(_vm.mode === 'publish')?_c('button',{staticClass:\"manage-templates__btn-action\",attrs:{\"title\":_vm.__('Duplicate')},on:{\"click\":_vm.duplicateTemplate}},[_vm._v(\" \"+_vm._s(_vm.__(\"Duplicate\"))+\" \")]):_vm._e(),_c('button',{staticClass:\"manage-templates__btn-action is-danger\",attrs:{\"title\":_vm.mode === 'publish' ? _vm.__('Trash') : _vm.__('Delete permanently')},on:{\"click\":_vm.deleteTemplate}},[_vm._v(\" \"+_vm._s(_vm.mode === \"publish\" ? _vm.__(\"Trash\") : _vm.__(\"Delete permanently\"))+\" \")])])]),_c('td',{staticClass:\"manage-template__applies-to\"},[(_vm.matchingQuickAddTemplate)?[_c('span',{staticClass:\"d-block\"},[_vm._v(_vm._s(_vm.matchingQuickAddTemplate.name))]),_c('ElementBadge',{staticClass:\"template-row-element-badge\",attrs:{\"value\":{\n          backgroundColor: _vm.matchingQuickAddTemplate.backgroundColor,\n          textColor: _vm.matchingQuickAddTemplate.textColor,\n          label: _vm.matchingQuickAddTemplate.category\n        }}})]:(_vm.appliesToLabel)?[_vm._v(_vm._s(_vm.appliesToLabel))]:_vm._e()],2),_c('td',[(_vm.value.settings.ruleGroups && _vm.value.settings.ruleGroups.length)?[_c('ConditionsPreviewTooltip',{attrs:{\"value\":_vm.value.settings.ruleGroups}})]:_vm._e()],2),(_vm.value.postType === 'breakdance_popup')?_c('td',{staticClass:\"manage-template__td_text\"},[_vm._v(\" \"+_vm._s(_vm.triggerLabels(_vm.value.settings.triggers))+\" \")]):_vm._e(),(_vm.value.postType !== 'breakdance_popup')?_c('td',{staticClass:\"manage-template__td_text\"},[(_vm.value.settings.priority !== undefined)?[_vm._v(\" \"+_vm._s(_vm.value.settings.priority)+\" \")]:_vm._e()],2):_vm._e(),_c('td',{staticClass:\"manage-template__td_text\"},[[_c('ToggleInput',{attrs:{\"value\":!_vm.value.settings.disabled},on:{\"input\":_vm.updateDisabled}})]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[[_c('v-tooltip',{staticClass:\"condition-preview-tooltip-element\",attrs:{\"bottom\":\"\",\"transition\":\"0\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_c('Icon',{attrs:{\"icon\":\"CodeBranchIcon\",\"size\":\"18\"}})],1)]}}])},[_c('span',[_c('div',{staticClass:\"condition-preview-tooltip-contanier\"},[_vm._l((_vm.value),function(group,index){return [_c('div',{staticClass:\"condition-preview-tooltip\"},[(index > 0)?_c('span',{staticClass:\"condition-preview-or-separator\"},[_c('span',[_vm._v(_vm._s(_vm.__(\"OR\")))])]):_vm._e(),_vm._l((group),function(rule,ruleIndex){return _c('ConditionPreviewRule',{key:ruleIndex,attrs:{\"rule\":rule,\"index\":ruleIndex}})})],2)]})],2)])])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport defensiveCopy from \"@/util/defensive-copy\";\nimport { RuleGroup } from \"@/types/conditions\";\nimport ConditionPreviewRule from \"@/components/Reusable/CustomInputs/ConditionInput/ConditionPreviewRule.vue\";\nimport Icon from \"@/components/UI/Icon.vue\";\n\n@Component({\n  components: { ConditionPreviewRule, Icon }\n})\nexport default class ConditionsPreview extends Vue {\n  @Prop()\n  value!: RuleGroup[] | undefined;\n\n  edit(value: unknown) {\n    this.$emit(\"input\", defensiveCopy(value));\n  }\n}\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConditionPreviewTooltip.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConditionPreviewTooltip.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConditionPreviewTooltip.vue?vue&type=template&id=2fd6ec9a&\"\nimport script from \"./ConditionPreviewTooltip.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConditionPreviewTooltip.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConditionPreviewTooltip.vue?vue&type=style&index=0&id=2fd6ec9a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import { QuickAddTemplate } from \"@/subapps/manage-templates/types\";\nimport color from \"@/sass/modules/color.module.scss\";\nimport { __ } from \"@/lib/i18n\";\n\nexport const QUICK_ADD_TEMPLATES: QuickAddTemplate[] = [\n  {\n    name: __(\"Single Product\", \"breakdance\"),\n    category: \"Woo\",\n    textColor: \"var(--brandWooCommerce)\",\n    backgroundColor: \"var(--brandWooCommerceBackground)\",\n    settings: {\n      type: \"product\",\n      ruleGroups: [],\n      priority: 20\n    }\n  },\n  {\n    name: __(\"Shop Page & All Product Archives\", \"breakdance\"),\n    category: \"Woo\",\n    textColor: \"var(--brandWooCommerce)\",\n    backgroundColor: \"var(--brandWooCommerceBackground)\",\n    settings: {\n      type: \"all-product-archives\",\n      ruleGroups: [],\n      priority: 10\n    }\n  },\n  {\n    name: __(\"Specific Product Archive\", \"breakdance\"),\n    category: \"Woo\",\n    textColor: \"var(--brandWooCommerce)\",\n    backgroundColor: \"var(--brandWooCommerceBackground)\",\n    settings: {\n      type: \"specific-product-archive\",\n      ruleGroups: [\n        [\n          {\n            ruleSlug: \"product-is-taxonomy\",\n            operand: \"is\",\n            value: []\n          }\n        ]\n      ],\n      priority: 20\n    },\n    openDialog: true\n  },\n  {\n    name: __(\"Single Post\", \"breakdance\"),\n    category: \"Blog\",\n    textColor: \"var(--brandWordPress)\",\n    backgroundColor: \"var(--brandWordPressBackground)\",\n    settings: {\n      type: \"post\",\n      ruleGroups: [],\n      priority: 20\n    }\n  },\n  {\n    name: __(\"Post Archive\", \"breakdance\"),\n    category: \"Blog\",\n    textColor: \"var(--brandWordPress)\",\n    backgroundColor: \"var(--brandWordPressBackground)\",\n    settings: {\n      type: \"post-archives\",\n      ruleGroups: [],\n      priority: 10\n    }\n  },\n  {\n    name: __(\"404 Not Found\", \"breakdance\"),\n    category: \"Other\",\n    textColor: color.green800_light,\n    backgroundColor: color.green100_light,\n    settings: {\n      type: \"404\",\n      ruleGroups: []\n    }\n  },\n  {\n    name: __(\"Search Results\", \"breakdance\"),\n    textColor: color.green800_light,\n    backgroundColor: color.green100_light,\n    category: \"Other\",\n    settings: {\n      type: \"search\",\n      ruleGroups: []\n    }\n  }\n];\n","\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport {\n  TemplateParents,\n  TemplateTypeCategories,\n  TemplateWithValidSettings\n} from \"./types\";\nimport ConditionsPreviewTooltip from \"@/components/Reusable/CustomInputs/ConditionInput/ConditionPreviewTooltip.vue\";\nimport {\n  deleteTemplateFromWordPress,\n  restoreTemplateFromWordPress\n} from \"./lib/api\";\nimport Icon from \"@/components/UI/Icon.vue\";\nimport { QUICK_ADD_TEMPLATES } from \"@/subapps/manage-templates/lib/quick-add-templates\";\nimport ElementBadge from \"@/components/ElementPropertiesPanel/ElementBadge.vue\";\nimport { Trigger } from \"@/types/conditions\";\nimport ToggleInput from \"@/components/Reusable/CustomInputs/ToggleInput.vue\";\nimport defensiveCopy from \"@/util/defensive-copy\";\nimport { _xdoc, sprintf } from \"@/lib/i18n\";\n\n@Component({\n  components: {\n    ToggleInput,\n    Icon,\n    ConditionsPreviewTooltip,\n    ElementBadge\n  }\n})\nexport default class TemplateRow extends Vue {\n  @Prop()\n  value!: TemplateWithValidSettings;\n\n  @Prop()\n  templateTypeCategories!: TemplateTypeCategories;\n\n  @Prop()\n  templateParents!: TemplateParents;\n\n  openEditTemplateModal() {\n    if (this.mode === \"trash\") {\n      return;\n    }\n\n    this.$emit(\"input\", \"edit\", this.value);\n  }\n\n  get mode() {\n    return this.value.status;\n  }\n\n  get appliesToLabel() {\n    const templateType = this.value.settings.type;\n    let templateTypeLabel = \"\";\n\n    this.templateTypeCategories.some(templateTypeCategory => {\n      const currentTemplateType = templateTypeCategory.types.find(\n        type => type.slug === templateType\n      );\n\n      if (currentTemplateType) {\n        templateTypeLabel = currentTemplateType.label;\n\n        return true;\n      }\n\n      return false;\n    });\n\n    return templateTypeLabel;\n  }\n\n  deleteInProgress = false;\n\n  async deleteTemplate() {\n    this.deleteInProgress = true;\n\n    const response = await deleteTemplateFromWordPress(\n      this.value.title,\n      this.value.id,\n      this.value.status\n    );\n\n    if (response) {\n      this.$emit(\n        this.value.status === \"publish\" ? \"trash\" : \"delete\",\n        response\n      );\n    }\n\n    this.deleteInProgress = false;\n  }\n\n  restoreInProgress = false;\n\n  async restoreTemplate() {\n    this.restoreInProgress = true;\n\n    const response = await restoreTemplateFromWordPress(\n      this.value.title,\n      this.value.id\n    );\n\n    if (response) this.$emit(\"restore\", response);\n\n    this.restoreInProgress = false;\n  }\n\n  duplicateTemplate() {\n    const duplicatedTemplate = defensiveCopy(this.value);\n\n    duplicatedTemplate.title = sprintf(\n      _xdoc('Copy of \"%s\"', \"Template\", \"%s: Original template title\"),\n      duplicatedTemplate.title\n    );\n    duplicatedTemplate.settings.disabled = true;\n\n    this.$emit(\"duplicate\", duplicatedTemplate);\n  }\n\n  get matchingQuickAddTemplate() {\n    if (window.Breakdance.builderMode === \"oxygen\") {\n      return undefined;\n    }\n    return QUICK_ADD_TEMPLATES.find(\n      quickAddTemplate =>\n        quickAddTemplate.settings.type === this.value.settings.type\n    );\n  }\n\n  triggerLabels(triggers: Trigger[]) {\n    return triggers\n      .map(trigger => {\n        return trigger.slug;\n      })\n      .join(\", \");\n  }\n\n  updateDisabled(enabled: boolean) {\n    const newTemplate = defensiveCopy(this.value);\n\n    newTemplate.settings.disabled = !enabled;\n\n    this.$emit(\"update\", newTemplate);\n  }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TemplateRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TemplateRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TemplateRow.vue?vue&type=template&id=3e004dcd&\"\nimport script from \"./TemplateRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./TemplateRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TemplateRow.vue?vue&type=style&index=0&id=3e004dcd&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.builderMode === 'breakdance')?_c('div',[_c('Dropdown',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"breakdance-wp-admin-templating-button\",attrs:{\"elevation\":\"0\",\"outlined\":\"\",\"loading\":_vm.quickAddInProgress}},on),[_vm._v(\" \"+_vm._s(_vm.__(\"Add Template\"))+\" \")])]}}],null,false,829709620),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',[_c('v-list',{attrs:{\"dense\":\"\",\"width\":\"350\"}},[_vm._l((_vm.quickAddTemplates),function(quickAddTemplate){return _c('v-list-item',{key:quickAddTemplate.name,on:{\"click\":function($event){return _vm.quickAdd(quickAddTemplate)}}},[_c('v-list-item-title',{staticClass:\"quick-add-item\"},[_vm._v(\" \"+_vm._s(quickAddTemplate.name)+\" \"),_c('ElementBadge',{attrs:{\"value\":{\n                backgroundColor: quickAddTemplate.backgroundColor,\n                textColor: quickAddTemplate.textColor,\n                label: quickAddTemplate.category\n              }}})],1)],1)}),_c('v-list-item',{staticClass:\"add-custom-template-wrapper\"},[_c('v-list-item-title',{staticClass:\"add-custom-template-wrapper-title\"},[_c('v-btn',{staticClass:\"breakdance-wp-admin-templating-button\",attrs:{\"outlined\":\"\"},on:{\"click\":function($event){return _vm.$emit('blankModal')}}},[_vm._v(_vm._s(_vm.__(\"Add Custom Template\")))])],1)],1)],2)],1)],1)],1):_c('div',[_c('v-btn',{staticClass:\"breakdance-wp-admin-templating-button\",attrs:{\"elevation\":\"0\",\"outlined\":\"\"},on:{\"click\":function($event){return _vm.$emit('blankModal')}}},[_vm._v(\" \"+_vm._s(_vm.__(\"Add Template\"))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport Dropdown from \"@/components/Reusable/Dropdown/Dropdown.vue\";\nimport { QuickAddTemplate, Template, TemplateWithValidSettings } from \"./types\";\nimport { saveTemplateToWordPress } from \"./lib/api\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { fold } from \"fp-ts/lib/Either\";\nimport NotificationLogger from \"@/lib/notifications/notifications\";\nimport { QUICK_ADD_TEMPLATES } from \"@/subapps/manage-templates/lib/quick-add-templates\";\nimport { checkIfTemplateSettingsAlreadyExistsAndConfirmToContinue } from \"@/subapps/manage-templates/lib/utils\";\nimport ElementBadge from \"@/components/ElementPropertiesPanel/ElementBadge.vue\";\nimport { getBreakdanceTemplatePostType } from \"@/lib/constants/post-types\";\nimport { sprintf, _x, _doc } from \"@/lib/i18n\";\n\n@Component({\n  components: { Dropdown, ElementBadge }\n})\nexport default class AddTemplateDropdown extends Vue {\n  @Prop()\n  templateName!: string;\n\n  @Prop()\n  isWooCommerceActive!: boolean;\n\n  @Prop()\n  templates!: Template[];\n\n  open = false;\n  quickAddInProgress = false;\n\n  get quickAddTemplates() {\n    return this.isWooCommerceActive\n      ? QUICK_ADD_TEMPLATES\n      : QUICK_ADD_TEMPLATES.filter(\n          template => template.category.toLowerCase() !== \"woocommerce\"\n        );\n  }\n\n  async quickAdd(quickAddTemplate: QuickAddTemplate) {\n    const templateToAdd: TemplateWithValidSettings = {\n      // -1 = new post in wp\n      id: -1,\n      title: quickAddTemplate.name,\n      editInBreakdanceLink: \"\",\n      postType: getBreakdanceTemplatePostType(),\n      settings: quickAddTemplate.settings,\n      status: \"publish\"\n    };\n\n    if (\n      !checkIfTemplateSettingsAlreadyExistsAndConfirmToContinue(\n        this.templates,\n        quickAddTemplate.settings,\n        \"template\"\n      )\n    ) {\n      return;\n    }\n\n    if (quickAddTemplate.openDialog) {\n      this.$emit(\"modalWithSettings\", templateToAdd);\n\n      return;\n    }\n\n    this.quickAddInProgress = true;\n\n    pipe(\n      await saveTemplateToWordPress(templateToAdd),\n      fold(\n        () => {\n          NotificationLogger.log.message(\n            sprintf(\n              _doc(\"The new %s couldn't be saved\", \"%s: Template type name\"),\n              this.templateName\n            )\n          );\n        },\n        savedTemplate => {\n          this.$emit(\"input\", savedTemplate);\n        }\n      )\n    );\n\n    this.quickAddInProgress = false;\n  }\n\n  get builderMode() {\n    return window.Breakdance.builderMode;\n  }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddTemplateDropdown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddTemplateDropdown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddTemplateDropdown.vue?vue&type=template&id=1a7a6918&\"\nimport script from \"./AddTemplateDropdown.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddTemplateDropdown.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddTemplateDropdown.vue?vue&type=style&index=0&id=1a7a6918&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.value.itemsByStatus === 0 || _vm.value.filteredItemsBySearch === 0)?_c('div',{staticClass:\"manage-templates__empty\"},[(_vm.value.templateName == 'Header')?_c('svg',{staticClass:\"manage-templates__empty-state-icon\",attrs:{\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M92.708 3.125H7.292a4.167 4.167 0 0 0-4.167 4.167v85.416a4.167 4.167 0 0 0 4.167 4.167h85.416a4.167 4.167 0 0 0 4.167-4.167V7.292a4.167 4.167 0 0 0-4.167-4.167ZM3.125 34.375h93.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"6.25\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})]):_vm._e(),(_vm.value.templateName == 'Footer')?_c('svg',{staticClass:\"manage-templates__empty-state-icon\",attrs:{\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M92.708 3.125H7.292a4.167 4.167 0 0 0-4.167 4.167v85.416a4.167 4.167 0 0 0 4.167 4.167h85.416a4.167 4.167 0 0 0 4.167-4.167V7.292a4.167 4.167 0 0 0-4.167-4.167ZM96.875 65.625H3.125\",\"stroke\":\"currentColor\",\"stroke-width\":\"6.25\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})]):_vm._e(),(\n      _vm.value.templateName == 'Template' ||\n      _vm.value.templateName == 'Unsupported template' ||\n      _vm.value.templateName == 'Global Block'\n    )?_c('svg',{staticClass:\"manage-templates__empty-state-icon\",attrs:{\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M92.708 3.125H7.292a4.167 4.167 0 0 0-4.167 4.167v85.416a4.167 4.167 0 0 0 4.167 4.167h85.416a4.167 4.167 0 0 0 4.167-4.167V7.292a4.167 4.167 0 0 0-4.167-4.167ZM50 3.125v93.75M50 34.375h46.875M96.875 65.625H50M50 50H3.125\",\"stroke\":\"currentColor\",\"stroke-width\":\"6.25\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})]):(_vm.value.itemsByStatus === 0)?_c('div',[_c('h4',[(_vm.value.showTrash)?[_vm._v(\" \"+_vm._s(_vm.sprintf( _vm._doc( \"You have no deleted %s.\", \"%s: template type name (plural)\" ), _vm.value.templateNamePlural.toLowerCase() ))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.sprintf( _vm._doc( \"You have no published %s.\", \"%s: template type name (plural)\" ), _vm.value.templateNamePlural.toLowerCase() ))+\" \")]],2)]):(_vm.value.filteredItemsBySearch === 0)?_c('div',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.sprintf( _vm._xdoc( \"No %s found.\", \"Templates\", \"%s: Template type name (plural)\" ), _vm.value.templateNamePlural.toLowerCase() ))+\" \")])]):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport { EmptyStateV } from \"./types\";\nimport { isBreakdanceDevelopmentEnvironment } from \"@/lib/dev/development-environment\";\n@Component({})\nexport default class EmptyState extends Vue {\n  @Prop()\n  value!: EmptyStateV;\n\n  get isBreakdanceDevelopmentEnvironment() {\n    return isBreakdanceDevelopmentEnvironment();\n  }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmptyState.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmptyState.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmptyState.vue?vue&type=template&id=066d1124&\"\nimport script from \"./EmptyState.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmptyState.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\nimport \"@/sass/globals.scss\";\n\nimport Vue from \"vue\";\nimport { Component, Prop, Watch } from \"vue-property-decorator\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport {\n  TemplatesManagementData,\n  SupportedPostType,\n  Template,\n  TemplateParents,\n  TemplateSettings,\n  TemplateSettingsV,\n  TemplateWithValidSettings,\n  EmptyStateV\n} from \"./types\";\nimport { fold } from \"fp-ts/lib/Either\";\n\nimport TemplateRow from \"./TemplateRow.vue\";\nimport AddTemplateDropdown from \"./AddTemplateDropdown.vue\";\nimport {\n  duplicateTemplateToWordPress,\n  emptyTrashForPostType,\n  getAllTemplatesAndNeededDataFromWordPress,\n  saveTemplateToWordPress\n} from \"./lib/api\";\nimport NotificationLogger from \"@/lib/notifications/notifications\";\nimport { configStore } from \"@/store/store-accessor\";\nimport EditTemplateModal from \"@/subapps/manage-templates/EditTemplateModal.vue\";\nimport Notifications from \"@/components/Notifications/Notifications.vue\";\nimport Loading from \"@/components/Reusable/Loading.vue\";\nimport {\n  changeTemplateStatus,\n  deleteAllTrash,\n  deleteTemplate,\n  saveNewTemplate\n} from \"@/subapps/manage-templates/lib/utils\";\nimport SearchInput from \"@/components/Reusable/CustomInputs/SearchInput.vue\";\nimport Icon from \"@/components/UI/Icon.vue\";\nimport EmptyState from \"@/subapps/manage-templates/EmptyState.vue\";\nimport { keyboardShortcuts } from \"@/lib/keyboard-shortcuts/keyboard-shortcuts\";\nimport { listenForNonceUpdates } from \"@/util/nonce-broadcast\";\nimport {\n  getBreakdanceFooterPostType,\n  getBreakdanceHeaderPostType,\n  getBreakdanceTemplatePostType\n} from \"@/lib/constants/post-types\";\nimport { sprintf, _doc, __ } from \"@/lib/i18n\";\n\n@Component({\n  components: {\n    Icon,\n    SearchInput,\n    Loading,\n    Notifications,\n    EditTemplateModal,\n    AddTemplateDropdown,\n    TemplateRow,\n    EmptyState\n  }\n})\nexport default class ManageTemplates extends Vue {\n  @Prop()\n  postType!: SupportedPostType;\n\n  modalData: { type: \"edit\" | \"add\"; data: Template } | false = false;\n\n  skipWarning = false;\n\n  templates: Template[] = [];\n  templatesManagementData: TemplatesManagementData = {\n    conditions: [],\n    dynamicFields: [],\n    templateTypeCategories: [],\n    popupTriggers: null\n  };\n\n  isWooCommerceActive = false;\n  search = \"\";\n  showTrash = false;\n\n  newTemplateAdded = false;\n\n  hasPermissionToManageFallbacks = false;\n\n  @Watch(\"newTemplateAdded\")\n  onTemplateAdded() {\n    setTimeout(() => (this.newTemplateAdded = false), 1000);\n  }\n\n  get breakdanceHeaderPostType() {\n    return getBreakdanceHeaderPostType();\n  }\n\n  get breakdanceFooterPostType() {\n    return getBreakdanceFooterPostType();\n  }\n\n  get breakdanceTemplatePostType() {\n    return getBreakdanceTemplatePostType();\n  }\n\n  get templatesForUi() {\n    return this.hasPermissionToManageFallbacks\n      ? this.templatesByStatus\n      : this.templatesByStatus.filter(t => !t.settings?.fallback);\n  }\n\n  get filteredTemplatesBySearch() {\n    return this.search\n      ? this.templatesForUi.filter(template => {\n          return (\n            template.title.toLowerCase().includes(this.search.toLowerCase()) ||\n            template.settings?.type?.includes(this.search.toLowerCase())\n          );\n        })\n      : this.templatesForUi;\n  }\n\n  get templatesByStatus() {\n    return this.templates.filter(template =>\n      this.showTrash\n        ? template.status === \"trash\"\n        : template.status === \"publish\"\n    );\n  }\n\n  get blankTemplateWithValidSettings(): TemplateWithValidSettings {\n    return {\n      id: -1,\n      title: \"\",\n      postType: this.postType,\n      editInBreakdanceLink: \"\",\n      settings: {},\n      status: \"publish\"\n    };\n  }\n\n  get trashLength() {\n    return this.templates.filter(template => template.status === \"trash\")\n      .length;\n  }\n\n  async duplicateTemplate(newTemplateWithOldId: TemplateWithValidSettings) {\n    pipe(\n      await duplicateTemplateToWordPress(newTemplateWithOldId),\n      fold(\n        () => {\n          NotificationLogger.log.message(\n            sprintf(\n              _doc('Duplicating template \"%s\" failed', \"%s: Template ID\"),\n              newTemplateWithOldId.id\n            )\n          );\n        },\n        newTemplate => {\n          this.saveTemplate(newTemplate);\n        }\n      )\n    );\n  }\n\n  async updateTemplate(updatedTemplate: TemplateWithValidSettings) {\n    pipe(\n      await saveTemplateToWordPress(updatedTemplate),\n      fold(\n        () => {\n          NotificationLogger.log.message(\n            sprintf(\n              _doc('Update for template \"%s\" failed', \"%s: Template ID\"),\n              updatedTemplate.id\n            )\n          );\n        },\n        newTemplate => {\n          this.templates = saveNewTemplate(newTemplate, this.templates);\n        }\n      )\n    );\n  }\n\n  saveTemplate(newTemplate: Template) {\n    this.templates = saveNewTemplate(newTemplate, this.templates);\n\n    this.newTemplateAdded = true;\n  }\n\n  deleteTemplate(idToDelete: number) {\n    this.templates = deleteTemplate(idToDelete, this.templates);\n  }\n\n  trashTemplate(idToDelete: number) {\n    this.templates = changeTemplateStatus(idToDelete, this.templates, \"trash\");\n  }\n\n  restoreTemplate(idToRestore: number) {\n    this.templates = changeTemplateStatus(\n      idToRestore,\n      this.templates,\n      \"publish\"\n    );\n  }\n\n  emptyingTrash = false;\n  async emptyTrash() {\n    this.emptyingTrash = true;\n\n    if (await emptyTrashForPostType(this.postType)) {\n      this.templates = deleteAllTrash(this.templates);\n      this.showTrash = false;\n    }\n\n    this.emptyingTrash = false;\n  }\n\n  get templateParentsWithoutTrashed(): TemplateParents {\n    return this.templates\n      .filter(template => template.status !== \"trash\")\n      .map(template => ({\n        text: template.title,\n        value: template.id\n      }));\n  }\n\n  get templateName() {\n    if (this.postType === getBreakdanceTemplatePostType())\n      return __(\"Template\");\n    if (this.postType === getBreakdanceFooterPostType()) return __(\"Footer\");\n    if (this.postType === getBreakdanceHeaderPostType()) return __(\"Header\");\n    if (this.postType === \"breakdance_popup\") return __(\"Popup\");\n\n    return __(\"Unsupported template\");\n  }\n\n  get templateNamePlural() {\n    if (this.postType === getBreakdanceTemplatePostType())\n      return __(\"Templates\");\n    if (this.postType === getBreakdanceFooterPostType()) return __(\"Footers\");\n    if (this.postType === getBreakdanceHeaderPostType()) return __(\"Headers\");\n    if (this.postType === \"breakdance_popup\") return __(\"Popups\");\n\n    return __(\"Unsupported templates\");\n  }\n\n  get emptyStateData(): EmptyStateV {\n    return {\n      itemsByStatus: this.templatesByStatus.length,\n      filteredItemsBySearch: this.filteredTemplatesBySearch.length,\n      // @ts-ignore\n      templateName: this.templateName,\n      // @ts-ignore\n      templateNamePlural: this.templateNamePlural,\n      showTrash: this.showTrash\n    };\n  }\n\n  get searchInputPlaceholder() {\n    const templateName = this.templateNamePlural.toLowerCase();\n    return sprintf(\n      _doc(\"Search for %s\", \"%s: Template type name (plural)\"),\n      templateName\n    );\n  }\n\n  isLoadingData = false;\n\n  broadcastChannel: BroadcastChannel | null = null;\n  beforeMount() {\n    this.broadcastChannel = listenForNonceUpdates();\n  }\n\n  async mounted() {\n    keyboardShortcuts.register(\"b r e a k d a n c e\", () => {\n      this.hasPermissionToManageFallbacks =\n        !this.hasPermissionToManageFallbacks;\n    });\n\n    this.isLoadingData = true;\n\n    pipe(\n      await getAllTemplatesAndNeededDataFromWordPress(this.postType),\n      fold(\n        () => {\n          NotificationLogger.log.message(__(\"Couldn't load templates data\"));\n        },\n        data => {\n          this.templates = data.templates;\n          this.templatesManagementData = data.templatesManagementData;\n          this.isWooCommerceActive = data.isWooCommerceActive;\n          configStore.setDynamicFields(\n            data.templatesManagementData.dynamicFields\n          );\n          // Necessary for ConditionPreviewRule to display the condition's label instead of the rule slug\n          configStore.setConditions(data.templatesManagementData.conditions);\n          configStore.setEnvironment(data.environment);\n        }\n      )\n    );\n\n    this.isLoadingData = false;\n  }\n\n  beforeDestroy() {\n    keyboardShortcuts.unbind(\"b r e a k d a n c e\");\n    if (this.broadcastChannel) {\n      this.broadcastChannel.close();\n    }\n  }\n\n  getTemplateWithValidSettings(template: Template): TemplateWithValidSettings {\n    return {\n      ...template,\n      settings: pipe(\n        template.settings,\n        TemplateSettingsV.decode,\n        fold(\n          () => {\n            return DEFAULT_TEMPLATE_SETTINGS;\n          },\n          (templateSettings: TemplateSettings) => {\n            return templateSettings;\n          }\n        )\n      )\n    };\n  }\n\n  handleTemplateCardModal(type: \"edit\" | \"add\", newTemplate: Template) {\n    this.modalData = { type: type, data: newTemplate };\n  }\n}\n\nconst DEFAULT_TEMPLATE_SETTINGS: TemplateSettings = {\n  type: \"none\",\n  ruleGroups: []\n};\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageTemplates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageTemplates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageTemplates.vue?vue&type=template&id=24313f0b&\"\nimport script from \"./ManageTemplates.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageTemplates.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isLoadingData)?_c('Loading'):_vm._e(),_c('div',{staticClass:\"manage-templates\"},[_c('div',{staticClass:\"manage-templates__header\"},[_c('h1',{staticClass:\"manage-templates__title\"},[_vm._v(\" \"+_vm._s(_vm.showTrash ? _vm.sprintf( _vm._xdoc( \"Deleted %s\", \"Global Blocks\", \"%s: Global blocks label\" ), _vm.$bdox(\"global_blocks\") ) : _vm.$bdox(\"global_blocks\"))+\" \")]),(!_vm.showTrash)?[_c('v-btn',{staticClass:\"breakdance-wp-admin-templating-button\",attrs:{\"elevation\":\"0\",\"outlined\":\"\"},on:{\"click\":function($event){_vm.modalData = { type: 'add', data: _vm.blankGlobalBlock }}}},[_vm._v(\" \"+_vm._s(_vm.sprintf( _vm._xdoc(\"Add %s\", \"Global Block\", \"%s: Global block label\"), _vm.$bdox(\"global_block\") ))+\" \")])]:_vm._e()],2),(\n        this.globalBlocksByStatus.length > 0 ||\n        this.filteredBlocksBySearch.length > 0 ||\n        _vm.trashLength > 0 ||\n        _vm.showTrash\n      )?_c('div',{staticClass:\"manage-templates__actions\"},[_c('div',{staticClass:\"manage-templates__search\"},[_c('SearchInput',{attrs:{\"placeholder\":_vm.__('Search blocks')},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),(_vm.trashLength || _vm.showTrash)?_c('div',{staticClass:\"manage-templates__secondary-actions\"},[(_vm.showTrash && this.globalBlocksByStatus.length)?_c('v-btn',{attrs:{\"text\":\"\",\"loading\":_vm.emptyingTrash},on:{\"click\":_vm.emptyTrash}},[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"TrashIcon\",\"size\":\"16\"}}),_vm._v(\" \"+_vm._s(_vm.__(\"Empty Trash\"))+\" \")],1):_vm._e(),(_vm.trashLength || _vm.showTrash)?_c('v-btn',{staticClass:\"mr-2\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showTrash = !_vm.showTrash}}},[(_vm.showTrash)?[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"ArrowLeftLongIcon\",\"size\":\"16\"}}),_vm._v(\" \"+_vm._s(_vm.__(\"Back\"))+\" \")]:[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"TrashIcon\",\"size\":\"16\"}}),_vm._v(\" \"+_vm._s(_vm.sprintf(_vm.__(\"Trash (%d)\"), _vm.trashLength))+\" \")]],2):_vm._e()],1):_vm._e()]):_vm._e()]),_c('EmptyState',{attrs:{\"value\":_vm.emptyStateData}}),(_vm.filteredBlocksBySearch.length > 0)?_c('v-simple-table',{staticClass:\"manage-templates__table breakdance-table\",class:_vm.newBlockAdded ? 'added' : ''},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.__(\"Template\")))]),_c('th',[_vm._v(_vm._s(_vm.__(\"Shortcode\")))])])]),_c('transition-group',{attrs:{\"tag\":\"tbody\",\"name\":\"fade\",\"mode\":\"out-in\"}},_vm._l((_vm.filteredBlocksBySearch),function(block){return _c('BlockRow',{key:block.id,class:!_vm.newBlockAdded ? 'animation-disabled' : '',attrs:{\"value\":block},on:{\"input\":function($event){_vm.modalData = { type: 'edit', data: $event }},\"trash\":_vm.trashBlock,\"delete\":_vm.deleteBlock,\"restore\":_vm.restoreBlock,\"save\":_vm.saveBlockToWordPress}})}),1)],1):_vm._e(),(_vm.modalData)?_c('EditGlobalBlockModal',{attrs:{\"value\":_vm.modalData.data,\"mode\":_vm.modalData.type,\"globalBlocks\":_vm.globalBlocksByStatus},on:{\"input\":function($event){return _vm.saveBlock($event)},\"close\":function($event){_vm.modalData = false}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('td',[_c('a',{staticClass:\"manage-templates__title-link\",attrs:{\"target\":\"_top\",\"href\":_vm.value.editInBreakdanceLink}},[_vm._v(\" \"+_vm._s(_vm.value.label)+\" \"),_c('span',{staticClass:\"manage-templates__title-id\"},[_vm._v(\"#\"+_vm._s(_vm.value.id))])]),_c('div',{staticClass:\"manage-templates__row-actions\"},[(_vm.mode === 'publish')?_c('a',{staticClass:\"manage-templates__btn-action\",attrs:{\"href\":_vm.value.editInBreakdanceLink,\"target\":\"_top\",\"title\":_vm.sprintf(_vm._doc('Edit in %s', '%s: Plugin name'), _vm.$bdox('plugin_name'))}},[_vm._v(\" \"+_vm._s(_vm.sprintf(_vm._doc(\"Edit in %s\", \"%s: Plugin name\"), _vm.$bdox(\"plugin_name\")))+\" \")]):_vm._e(),(_vm.mode === 'publish')?_c('button',{staticClass:\"manage-templates__btn-action\",on:{\"click\":_vm.openEditBlockModal}},[_vm._v(\" \"+_vm._s(_vm.__(\"Settings\"))+\" \")]):_vm._e(),(_vm.mode === 'publish')?_c('button',{staticClass:\"manage-templates__btn-action\",on:{\"click\":_vm.duplicateBlock}},[_vm._v(\" \"+_vm._s(_vm.__(\"Duplicate\"))+\" \")]):_vm._e(),(_vm.mode === 'trash')?_c('button',{staticClass:\"manage-templates__btn-action\",attrs:{\"title\":_vm.__('Restore')},on:{\"click\":_vm.restoreBlock}},[_vm._v(\" \"+_vm._s(_vm.__(\"Restore\"))+\" \")]):_vm._e(),_c('button',{staticClass:\"manage-templates__btn-action is-danger\",attrs:{\"title\":_vm.mode === 'publish' ? _vm.__('Trash') : _vm.__('Delete permanently')},on:{\"click\":_vm.deleteBlock}},[_vm._v(\" \"+_vm._s(_vm.mode === \"publish\" ? _vm.__(\"Trash\") : _vm.__(\"Delete permanently\"))+\" \")])])]),_c('td',[(_vm.builderMode === 'breakdance')?[_c('input',{staticClass:\"block-shortcode\",attrs:{\"type\":\"text\"},domProps:{\"value\":`[breakdance_block blockId=${_vm.value.id}]`},on:{\"click\":_vm.highlightValue}})]:_vm._e(),(_vm.builderMode === 'oxygen')?[_c('input',{staticClass:\"block-shortcode\",attrs:{\"type\":\"text\"},domProps:{\"value\":`[oxygen_component blockId=${_vm.value.id}]`},on:{\"click\":_vm.highlightValue}})]:_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport {\n  deleteTemplateFromWordPress,\n  restoreTemplateFromWordPress\n} from \"./lib/api\";\nimport Icon from \"@/components/UI/Icon.vue\";\nimport { GlobalBlock } from \"@/types/global-blocks\";\nimport defensiveCopy from \"@/util/defensive-copy\";\nimport { sprintf, _doc, _xdoc } from \"@/lib/i18n\";\n\n@Component({\n  components: { Icon }\n})\nexport default class BlockRow extends Vue {\n  @Prop()\n  value!: GlobalBlock;\n\n  openEditBlockModal() {\n    this.$emit(\"input\", this.value);\n  }\n\n  duplicateBlock() {\n    const duplicatedBlock = defensiveCopy(this.value);\n\n    // tell WP to save as a new block\n    duplicatedBlock.id = -1;\n    duplicatedBlock.label = sprintf(\n      _xdoc('Copy of \"%s\"', \"Global Block\", \"%s: Original block label\"),\n      duplicatedBlock.label\n    );\n\n    this.$emit(\"save\", duplicatedBlock);\n  }\n\n  deleteInProgress = false;\n\n  get builderMode() {\n    return window.Breakdance.builderMode;\n  }\n\n  async deleteBlock() {\n    this.deleteInProgress = true;\n\n    const response = await deleteTemplateFromWordPress(\n      this.value.label,\n      this.value.id,\n      this.value.status\n    );\n\n    if (response) {\n      this.$emit(\n        this.value.status === \"publish\" ? \"trash\" : \"delete\",\n        response\n      );\n    }\n\n    this.deleteInProgress = false;\n  }\n\n  restoreInProgress = false;\n\n  async restoreBlock() {\n    this.restoreInProgress = true;\n\n    const response = await restoreTemplateFromWordPress(\n      this.value.label,\n      this.value.id\n    );\n\n    if (response) this.$emit(\"restore\", response);\n\n    this.restoreInProgress = false;\n  }\n\n  get mode() {\n    return this.value.status;\n  }\n\n  highlightValue(e: Event) {\n    // @ts-ignore\n    const selectIt = () => e.target.select();\n\n    setTimeout(() => {\n      selectIt();\n    }, 100);\n  }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BlockRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BlockRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BlockRow.vue?vue&type=template&id=12b7197c&\"\nimport script from \"./BlockRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./BlockRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BlockRow.vue?vue&type=style&index=0&id=12b7197c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\nimport \"@/sass/globals.scss\";\n\nimport Vue from \"vue\";\nimport { Component, Watch } from \"vue-property-decorator\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { fold } from \"fp-ts/lib/Either\";\nimport NotificationLogger from \"@/lib/notifications/notifications\";\nimport EditGlobalBlockModal from \"@/subapps/manage-templates/EditGlobalBlockModal.vue\";\nimport BlockRow from \"@/subapps/manage-templates/BlockRow.vue\";\nimport Loading from \"@/components/Reusable/Loading.vue\";\nimport {\n  saveNewTemplate,\n  changeTemplateStatus,\n  deleteAllTrash,\n  deleteTemplate\n} from \"@/subapps/manage-templates/lib/utils\";\nimport SearchInput from \"@/components/Reusable/CustomInputs/SearchInput.vue\";\nimport Icon from \"@/components/UI/Icon.vue\";\nimport {\n  emptyTrashForPostType,\n  getAllGlobalBlocksFromWordPress\n} from \"@/subapps/manage-templates/lib/api\";\nimport { GlobalBlock } from \"@/types/global-blocks\";\nimport { EmptyStateV } from \"./types\";\nimport EmptyState from \"@/subapps/manage-templates/EmptyState.vue\";\nimport { listenForNonceUpdates } from \"@/util/nonce-broadcast\";\nimport { saveGlobalBlockToWordPress } from \"@/lib/global-blocks/global-blocks\";\nimport { getBreakdanceBlockPostType } from \"@/lib/constants/post-types\";\nimport { sprintf, __ } from \"@/lib/i18n\";\n\n@Component({\n  components: {\n    Icon,\n    SearchInput,\n    Loading,\n    BlockRow,\n    EditGlobalBlockModal,\n    EmptyState\n  }\n})\nexport default class ManageGlobalBlocks extends Vue {\n  modalData: { type: \"edit\" | \"add\"; data: GlobalBlock } | false = false;\n\n  globalBlocks: GlobalBlock[] = [];\n\n  showTrash = false;\n\n  newBlockAdded = false;\n\n  @Watch(\"newBlockAdded\")\n  onBlockAdded() {\n    setTimeout(() => (this.newBlockAdded = false), 1000);\n  }\n\n  get blankGlobalBlock(): GlobalBlock {\n    return {\n      label: \"\",\n      id: -1,\n      tree: false,\n      editInBreakdanceLink: \"\",\n      status: \"publish\"\n    };\n  }\n\n  async saveBlockToWordPress(newBlock: GlobalBlock) {\n    pipe(\n      await saveGlobalBlockToWordPress(newBlock),\n      fold(\n        () => {\n          NotificationLogger.log.message(\n            sprintf(__(\"%s was not saved\"), this.$bdox(\"global_block\"))\n          );\n        },\n        savedBlock => {\n          this.saveBlock(savedBlock);\n        }\n      )\n    );\n  }\n\n  saveBlock(newBlock: GlobalBlock) {\n    this.globalBlocks = saveNewTemplate(newBlock, this.globalBlocks);\n    this.newBlockAdded = true;\n    this.search = \"\";\n  }\n\n  deleteBlock(idToDelete: number) {\n    this.globalBlocks = deleteTemplate(idToDelete, this.globalBlocks);\n  }\n\n  trashBlock(idToDelete: number) {\n    this.globalBlocks = changeTemplateStatus(\n      idToDelete,\n      this.globalBlocks,\n      \"trash\"\n    );\n  }\n\n  restoreBlock(idToRestore: number) {\n    this.globalBlocks = changeTemplateStatus(\n      idToRestore,\n      this.globalBlocks,\n      \"publish\"\n    );\n  }\n\n  emptyingTrash = false;\n  async emptyTrash() {\n    this.emptyingTrash = true;\n\n    if (await emptyTrashForPostType(getBreakdanceBlockPostType())) {\n      this.globalBlocks = deleteAllTrash(this.globalBlocks);\n      this.showTrash = false;\n    }\n\n    this.emptyingTrash = false;\n  }\n\n  isLoadingData = false;\n  search = \"\";\n\n  get emptyStateData(): EmptyStateV {\n    return {\n      itemsByStatus: this.globalBlocksByStatus.length,\n      filteredItemsBySearch: this.filteredBlocksBySearch.length,\n      templateName: this.$bdox(\"global_block\") as \"Global Block\",\n      templateNamePlural: this.$bdox(\"global_blocks\") as \"Global Blocks\",\n      showTrash: this.showTrash\n    };\n  }\n\n  get filteredBlocksBySearch() {\n    return this.globalBlocksByStatus.filter(block => {\n      return block.label.toLowerCase().includes(this.search.toLowerCase());\n    });\n  }\n\n  get globalBlocksByStatus() {\n    return this.globalBlocks.filter(block =>\n      this.showTrash ? block.status === \"trash\" : block.status === \"publish\"\n    );\n  }\n\n  get trashLength() {\n    return this.globalBlocks.filter(block => block.status === \"trash\").length;\n  }\n\n  broadcastChannel: BroadcastChannel | null = null;\n  beforeMount() {\n    this.broadcastChannel = listenForNonceUpdates();\n  }\n\n  async mounted() {\n    this.isLoadingData = true;\n\n    pipe(\n      await getAllGlobalBlocksFromWordPress(),\n      fold(\n        () => {\n          NotificationLogger.log.message(__(\"Couldn't load blocks data\"));\n        },\n        blocks => {\n          this.globalBlocks = blocks;\n        }\n      )\n    );\n\n    this.isLoadingData = false;\n  }\n\n  beforeDestroy() {\n    if (this.broadcastChannel) {\n      this.broadcastChannel.close();\n    }\n  }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageGlobalBlocks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageGlobalBlocks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageGlobalBlocks.vue?vue&type=template&id=524b7f0a&\"\nimport script from \"./ManageGlobalBlocks.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageGlobalBlocks.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\nimport \"@/sass/globals.scss\";\n\nimport Vue from \"vue\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport { SupportedPostType } from \"./types\";\nimport Notifications from \"@/components/Notifications/Notifications.vue\";\nimport ManageTemplates from \"@/subapps/manage-templates/ManageTemplates.vue\";\nimport ManageGlobalBlocks from \"@/subapps/manage-templates/ManageGlobalBlocks.vue\";\nimport { initializeOrReinitializeCombokeys } from \"@/lib/keyboard-shortcuts/keyboard-shortcuts\";\nimport { configStore } from \"@/store/store-accessor\";\nimport { getBreakdanceBlockPostType } from \"@/lib/constants/post-types\";\n\n@Component({\n  components: {\n    ManageGlobalBlocks,\n    ManageTemplates,\n    Notifications\n  }\n})\nexport default class ManageBreakdancePostTypes extends Vue {\n  @Prop()\n  postType!: SupportedPostType;\n\n  addingTemplate = false;\n\n  mounted() {\n    initializeOrReinitializeCombokeys(document);\n\n    configStore.setSubscriptionMode(window.Breakdance.subscriptionMode);\n  }\n\n  get isBlockPostType() {\n    return (\n      this.postType === getBreakdanceBlockPostType() ||\n      this.postType === \"breakdance_acf_block\"\n    );\n  }\n}\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageBreakdancePostTypes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageBreakdancePostTypes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageBreakdancePostTypes.vue?vue&type=template&id=08cfdfe2&\"\nimport script from \"./ManageBreakdancePostTypes.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageBreakdancePostTypes.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ManageBreakdancePostTypes.vue?vue&type=style&index=0&id=08cfdfe2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport store from \"@/store/store\";\nimport vuetify from \"@/plugins/vuetify\";\nimport ManageBreakdancePostTypes from \"./ManageBreakdancePostTypes.vue\";\nimport permission from \"@/lib/permissions/directive\";\nimport {\n  BdoxTranslationPlugin,\n  getTranslations\n} from \"@/lib/bdox-translations/bdox-translations\";\nimport { i18nMixin } from \"@/util/mixins\";\n\nVue.directive(\"permission\", permission);\nVue.config.productionTip = false;\n\n// WP ensures this page is only accessible through the registered post types\nconst postType = new URLSearchParams(window.parent.location.search).get(\"page\");\n\nVue.use(BdoxTranslationPlugin, { getTranslations });\n\nVue.mixin(i18nMixin);\n\nnew Vue({\n  store,\n  // @ts-ignore\n  vuetify,\n  render: h =>\n    h(ManageBreakdancePostTypes, {\n      props: {\n        postType\n      }\n    })\n}).$mount(\"#manage-templates-wrapper\");\n","import { makeWordPressAjaxRequest } from \"@/lib/wordpress/ajax\";\nimport {\n  ManageTemplatesDataToLoadV,\n  SupportedPostType,\n  TemplateStatus,\n  TemplateWithValidSettings,\n  TemplateWithValidSettingsV\n} from \"../types\";\nimport * as t from \"io-ts\";\nimport { GlobalBlocksV } from \"@/types/global-blocks\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { fold } from \"fp-ts/lib/Either\";\nimport NotificationLogger from \"@/lib/notifications/notifications\";\nimport { fpJsonStringify } from \"@/util/fp-json-stringify\";\n\n/**\n * if template.id refers to a template that exists, it will be updated\n * if not, it will be created\n *\n * the template as it exists on the server after saving will be returned by this function\n */\nexport async function saveTemplateToWordPress(\n  template: TemplateWithValidSettings\n) {\n  return await makeWordPressAjaxRequest({\n    action: \"breakdance_manage_templates_save\",\n    dataToPost: {\n      id: template.id,\n      title: template.title,\n      postType: template.postType,\n      settings: fpJsonStringify(template.settings)\n    },\n    decoder: TemplateWithValidSettingsV,\n    resultKey: \"data\",\n    friendlyName: \"Save template\"\n  });\n}\n\nexport async function duplicateTemplateToWordPress(\n  template: TemplateWithValidSettings\n) {\n  return await makeWordPressAjaxRequest({\n    action: \"breakdance_manage_templates_duplicate\",\n    dataToPost: {\n      originalId: template.id,\n      title: template.title,\n      postType: template.postType,\n      settings: fpJsonStringify(template.settings)\n    },\n    decoder: TemplateWithValidSettingsV,\n    resultKey: \"data\",\n    friendlyName: \"Duplicate template\"\n  });\n}\n\nexport async function getAllTemplatesAndNeededDataFromWordPress(\n  postType: SupportedPostType\n) {\n  return await makeWordPressAjaxRequest({\n    action: \"breakdance_manage_templates_load_data\",\n    dataToPost: {\n      // eslint-disable-next-line @typescript-eslint/naming-convention\n      post_type: postType\n    },\n    decoder: ManageTemplatesDataToLoadV,\n    resultKey: \"data\",\n    friendlyName: \"Get templates data\"\n  });\n}\n\nexport async function getAllGlobalBlocksFromWordPress() {\n  return await makeWordPressAjaxRequest({\n    action: \"breakdance_manage_global_blocks\",\n    decoder: GlobalBlocksV,\n    resultKey: \"data\",\n    friendlyName: \"Get global blocks data\"\n  });\n}\n\nexport async function deleteTemplateFromWordPress(\n  title: string,\n  id: number,\n  status: TemplateStatus | undefined\n) {\n  if (\n    !confirm(\n      `${\n        status === \"publish\" ? \"Moving to trash\" : \"Permanently deleting\"\n      } \"${title}\". Are you sure?`\n    )\n  )\n    return undefined;\n\n  return pipe(\n    await makeWordPressAjaxRequest({\n      action: \"breakdance_manage_templates_delete\",\n      dataToPost: {\n        id,\n        trashOrDelete: status === \"trash\" ? \"delete\" : \"trash\"\n      },\n      decoder: t.literal(\"success\"),\n      resultKey: \"data\",\n      friendlyName: `Deleting \"${title}\"`\n    }),\n    fold(\n      () => {\n        NotificationLogger.log.message(`Failed to delete \"${title}\"`);\n        return undefined;\n      },\n      () => {\n        return id;\n      }\n    )\n  );\n}\n\nexport async function restoreTemplateFromWordPress(title: string, id: number) {\n  if (!confirm(`Restoring \"${title}\". Are you sure?`)) return undefined;\n\n  return pipe(\n    await makeWordPressAjaxRequest({\n      action: \"breakdance_manage_templates_restore\",\n      dataToPost: {\n        id\n      },\n      decoder: t.literal(\"success\"),\n      resultKey: \"data\",\n      friendlyName: `Restoring ${title}`\n    }),\n    fold(\n      () => {\n        NotificationLogger.log.message(`Failed to restore \"${title}\"`);\n        return undefined;\n      },\n      () => {\n        return id;\n      }\n    )\n  );\n}\n\nexport async function emptyTrashForPostType(postType: SupportedPostType) {\n  if (!confirm(\"Delete all trash permanently?\")) return false;\n\n  return pipe(\n    await makeWordPressAjaxRequest({\n      action: \"breakdance_manage_templates_empty_trash\",\n      dataToPost: {\n        postType: postType\n      },\n      decoder: t.literal(\"success\"),\n      resultKey: \"data\",\n      friendlyName: `Emptying trash for ${postType}`\n    }),\n    fold(\n      () => {\n        return false;\n      },\n      () => {\n        return true;\n      }\n    )\n  );\n}\n","import defensiveCopy from \"@/util/defensive-copy\";\nimport {\n  Template,\n  TemplateSettings,\n  TemplateStatus\n} from \"@/subapps/manage-templates/types\";\nimport isEqual from \"lodash/isEqual\";\n\ninterface WithIdAndStatus {\n  id: number;\n  status?: TemplateStatus;\n}\n\nexport function saveNewTemplate<T extends WithIdAndStatus>(\n  newTemplate: T,\n  templates: T[]\n) {\n  const templateIndex = templates.findIndex(t => t.id === newTemplate.id);\n\n  const newTemplates = defensiveCopy(templates);\n\n  if (templateIndex !== -1) {\n    newTemplates[templateIndex] = defensiveCopy(newTemplate);\n  } else {\n    newTemplates.unshift(defensiveCopy(newTemplate));\n  }\n\n  return newTemplates;\n}\n\nexport function deleteTemplate<T extends WithIdAndStatus>(\n  idToDelete: number,\n  templates: T[]\n) {\n  const templateIndex = templates.findIndex(\n    t => \"id\" in t && t.id === idToDelete\n  );\n\n  const newTemplates = defensiveCopy(templates);\n\n  if (templateIndex !== -1) {\n    newTemplates.splice(templateIndex, 1);\n  }\n\n  return newTemplates;\n}\n\nexport function changeTemplateStatus<T extends WithIdAndStatus>(\n  idToDelete: number,\n  templates: T[],\n  status: TemplateStatus\n) {\n  const templateIndex = templates.findIndex(\n    t => \"id\" in t && t.id === idToDelete\n  );\n\n  const newTemplates = defensiveCopy(templates);\n\n  if (templateIndex !== -1) {\n    newTemplates[templateIndex].status = status;\n  }\n\n  return newTemplates;\n}\n\nexport function deleteAllTrash<T extends WithIdAndStatus>(templates: T[]) {\n  return defensiveCopy(templates).filter(t => t.status !== \"trash\");\n}\n\nexport function checkIfTemplateSettingsAlreadyExistsAndConfirmToContinue(\n  templates: Template[],\n  templateSettings: TemplateSettings,\n  templateName: string\n) {\n  const templateSettingsAlreadyExists = templates.find(t =>\n    isEqual(t.settings, templateSettings)\n  );\n\n  return templateSettingsAlreadyExists\n    ? confirm(\n        `You already have a ${templateName} with the same settings called \"${templateSettingsAlreadyExists.title}\". Continue anyway?`\n      )\n    : true;\n}\n","import { ConditionV, RuleGroupV, TriggersV } from \"@/types/conditions\";\nimport { DynamicFieldV } from \"@/types/dynamic-data\";\nimport * as t from \"io-ts\";\nimport { EnvironmentV } from \"@/types/load\";\nimport {\n  BREAKDANCE_BLOCK_POST_TYPE,\n  BREAKDANCE_FOOTER_POST_TYPE,\n  BREAKDANCE_HEADER_POST_TYPE,\n  BREAKDANCE_TEMPLATE_POST_TYPE,\n  OXYGEN_BLOCK_POST_TYPE,\n  OXYGEN_FOOTER_POST_TYPE,\n  OXYGEN_HEADER_POST_TYPE,\n  OXYGEN_TEMPLATE_POST_TYPE\n} from \"@/lib/constants/post-types\";\n\nexport const TemplateTypeV = t.intersection([\n  t.type({\n    slug: t.string,\n    label: t.string\n  }),\n  t.partial({\n    defaultPriority: t.number\n  })\n]);\n\nexport const TemplateParentsV = t.array(\n  t.type({\n    text: t.string,\n    value: t.number\n  })\n);\n\nexport type TemplateParents = t.TypeOf<typeof TemplateParentsV>;\n\nexport const TemplateTypeCategoriesV = t.array(\n  t.type({\n    label: t.string,\n    types: t.array(TemplateTypeV)\n  })\n);\n\nexport type TemplateTypeCategories = t.TypeOf<typeof TemplateTypeCategoriesV>;\n\nexport const TemplateSettingsV = t.partial({\n  parentId: t.number,\n  type: t.string,\n  ruleGroups: t.array(RuleGroupV),\n  triggers: TriggersV,\n  priority: t.number,\n  disabled: t.boolean,\n  fallback: t.boolean,\n  onlyShowOnce: t.boolean,\n  avoidMultiple: t.boolean,\n  limitPageLoad: t.union([t.number, t.null]),\n  limitSession: t.union([t.number, t.null]),\n  limitForever: t.union([t.number, t.null])\n});\n\nexport type TemplateSettings = t.TypeOf<typeof TemplateSettingsV>;\n\nexport const SupportedPostTypeV = t.union([\n  t.literal(BREAKDANCE_TEMPLATE_POST_TYPE),\n  t.literal(OXYGEN_TEMPLATE_POST_TYPE),\n  t.literal(BREAKDANCE_HEADER_POST_TYPE),\n  t.literal(OXYGEN_HEADER_POST_TYPE),\n  t.literal(BREAKDANCE_FOOTER_POST_TYPE),\n  t.literal(OXYGEN_FOOTER_POST_TYPE),\n  t.literal(BREAKDANCE_BLOCK_POST_TYPE),\n  t.literal(OXYGEN_BLOCK_POST_TYPE),\n  t.literal(\"breakdance_popup\"),\n  t.literal(\"breakdance_acf_block\")\n]);\n\nexport type SupportedPostType = t.TypeOf<typeof SupportedPostTypeV>;\n\nexport const PartialTemplateV = t.type({\n  id: t.number,\n  title: t.string,\n  editInBreakdanceLink: t.string,\n  postType: SupportedPostTypeV,\n  status: t.union([t.literal(\"publish\"), t.literal(\"trash\"), t.undefined])\n});\n\nexport const TemplateV = t.intersection([\n  PartialTemplateV,\n  t.type({\n    settings: t.union([TemplateSettingsV, t.null])\n  })\n]);\n\nexport type Template = t.TypeOf<typeof TemplateV>;\n\nexport const TemplateWithValidSettingsV = t.intersection([\n  PartialTemplateV,\n  t.type({\n    settings: TemplateSettingsV\n  })\n]);\n\nexport type TemplateWithValidSettings = t.TypeOf<\n  typeof TemplateWithValidSettingsV\n>;\n\nconst PopupTriggersV = t.type({\n  text: t.string,\n  value: t.string,\n  proOnly: t.union([t.undefined, t.boolean])\n});\n\nexport type PopupTriggers = t.TypeOf<typeof PopupTriggersV>;\n\nexport const TemplatesManagementDataV = t.type({\n  conditions: t.array(ConditionV),\n  dynamicFields: t.array(DynamicFieldV),\n  templateTypeCategories: TemplateTypeCategoriesV,\n  popupTriggers: t.union([t.null, t.array(PopupTriggersV)])\n});\n\nexport type TemplatesManagementData = t.TypeOf<typeof TemplatesManagementDataV>;\n\nexport const ManageTemplatesDataToLoadV = t.type({\n  templates: t.array(TemplateV),\n  templatesManagementData: TemplatesManagementDataV,\n  isWooCommerceActive: t.boolean,\n  environment: EnvironmentV\n});\n\nexport type ManageTemplatesDataToLoad = t.TypeOf<\n  typeof ManageTemplatesDataToLoadV\n>;\n\nexport type QuickAddTemplate = {\n  name: string;\n  textColor: string;\n  backgroundColor: string;\n  category: string;\n  settings: TemplateSettings;\n  openDialog?: boolean;\n};\n\nexport type TemplateStatus = \"publish\" | \"trash\";\n\nexport type EmptyStateV = {\n  itemsByStatus: number;\n  filteredItemsBySearch: number;\n  templateName:\n    | \"Template\"\n    | \"Footer\"\n    | \"Header\"\n    | \"Unsupported template\"\n    | \"Popup\"\n    | \"Global Block\";\n  templateNamePlural:\n    | \"Templates\"\n    | \"Footers\"\n    | \"Headers\"\n    | \"Unsupported templates\"\n    | \"Popups\"\n    | \"Global Blocks\";\n  showTrash: boolean;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 93;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t93: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkbuilder\"] = globalThis[\"webpackChunkbuilder\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998,64], () => (__webpack_require__(57241)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["isObjectExcludingArray","value","Array","isArray","ElementClipboardDataV","t","TreeNodeV","ControlSectionPropertiesDataClipboardDataV","controlSectionShapeHash","propertiesData","OxyClipboardDataV","path","data","ClipboardDataV","element","controlSectionPropertiesData","oxy","EasyEvent","async","determinePastingMethod","event","secure","permission","getClipboardStatus","window","safari","state","writeToClipboard","text","navigator","clipboard","writeText","console","debug","err","fallbackWriteToClipboard","writeToLocalStorage","readFromClipboard","eventText","clipboardData","getData","method","readFromLocalStorage","readText","getDataFromClipboard","clipboardJsonString","maybeClipboardData","fpJsonParseTypesafe","pipe","fold","maybeQueryClipboardPermission","permissions","query","name","allowWithoutGesture","e","isSecureContext","textArea","document","createElement","result","style","top","left","position","classList","add","body","appendChild","focus","select","execCommand","removeChild","saveGlobalSettingsToWordPress","makeWordPressAjaxRequest","friendlyName","action","dataToPost","globalSettings","fpJsonStringify","globalStore","decoder","errors","logErrorsToUiStore","breakdanceUndo","wpI18n","wp","i18n","__","domain","_nx","single","plural","number","context","_doc","_explanation","_xdoc","_x","sprintf","isValidClassName","test","isValidSelectorName","createDocumentFragment","querySelector","addSelector","newSelector","type","NotificationLogger","selector","addSelectorToStoreAndSaveSelectorsToWordPressIfSelectorsPanelIsClosed","isUiPanelOpen","saveSelectorsToWordPress","selectors","isValueOverwritten","inheritanceValue","InheritancePosition","isValueInheritted","isBefore","isValueFromBreakpoint","fromBreakpoint","getFullSelectorName","addVariable","newVariable","variables","insertIndex","length","i","collection","newVariables","slice","addVariableToStoreAndSaveVariablesToWordPressIfVariablesPanelIsClosed","variable","saveVariablesToWordPress","collections","_c","_self","_setup","staticClass","_vm","attrs","postType","staticRenderFns","blankTemplateWithValidSettings","saveTemplate","handleTemplateCardModal","$event","templatesByStatus","model","search","expression","emptyTrash","on","showTrash","filteredTemplatesBySearch","_v","class","templatesManagementData","trashTemplate","deleteTemplate","restoreTemplate","templateParentsWithoutTrashed","modalData","skipWarning","_e","render","this","_setupProxy","mode","_s","title","id","editInBreakdanceLink","$bdox","openEditTemplateModal","duplicateTemplate","matchingQuickAddTemplate","backgroundColor","textColor","label","category","appliesToLabel","settings","ruleGroups","triggerLabels","triggers","undefined","priority","disabled","updateDisabled","scopedSlots","index","key","ruleIndex","ConditionsPreview","Vue","edit","$emit","defensiveCopy","__decorate","Prop","Component","components","ConditionPreviewRule","Icon","component","QUICK_ADD_TEMPLATES","ruleSlug","operand","openDialog","color","TemplateRow","constructor","deleteInProgress","restoreInProgress","status","templateType","templateTypeLabel","templateTypeCategories","some","templateTypeCategory","currentTemplateType","types","find","slug","response","deleteTemplateFromWordPress","restoreTemplateFromWordPress","duplicatedTemplate","Breakdance","builderMode","quickAddTemplate","map","trigger","join","enabled","newTemplate","ToggleInput","ConditionsPreviewTooltip","ElementBadge","$$v","AddTemplateDropdown","open","quickAddInProgress","quickAddTemplates","isWooCommerceActive","filter","template","toLowerCase","templateToAdd","getBreakdanceTemplatePostType","checkIfTemplateSettingsAlreadyExistsAndConfirmToContinue","templates","saveTemplateToWordPress","templateName","savedTemplate","Dropdown","itemsByStatus","filteredItemsBySearch","templateNamePlural","EmptyState","isBreakdanceDevelopmentEnvironment","ManageTemplates","conditions","dynamicFields","popupTriggers","newTemplateAdded","hasPermissionToManageFallbacks","emptyingTrash","isLoadingData","broadcastChannel","onTemplateAdded","setTimeout","breakdanceHeaderPostType","getBreakdanceHeaderPostType","breakdanceFooterPostType","getBreakdanceFooterPostType","breakdanceTemplatePostType","templatesForUi","fallback","includes","trashLength","newTemplateWithOldId","duplicateTemplateToWordPress","updatedTemplate","saveNewTemplate","idToDelete","changeTemplateStatus","idToRestore","emptyTrashForPostType","deleteAllTrash","emptyStateData","searchInputPlaceholder","beforeMount","listenForNonceUpdates","keyboardShortcuts","getAllTemplatesAndNeededDataFromWordPress","configStore","environment","beforeDestroy","close","getTemplateWithValidSettings","TemplateSettingsV","DEFAULT_TEMPLATE_SETTINGS","templateSettings","Watch","SearchInput","Loading","Notifications","EditTemplateModal","blankGlobalBlock","filteredBlocksBySearch","block","saveBlockToWordPress","openEditBlockModal","duplicateBlock","restoreBlock","deleteBlock","domProps","highlightValue","BlockRow","duplicatedBlock","selectIt","target","ManageGlobalBlocks","globalBlocks","newBlockAdded","onBlockAdded","tree","newBlock","saveGlobalBlockToWordPress","savedBlock","saveBlock","trashBlock","getBreakdanceBlockPostType","globalBlocksByStatus","getAllGlobalBlocksFromWordPress","blocks","EditGlobalBlockModal","ManageBreakdancePostTypes","addingTemplate","mounted","initializeOrReinitializeCombokeys","subscriptionMode","isBlockPostType","URLSearchParams","parent","location","get","BdoxTranslationPlugin","getTranslations","i18nMixin","store","vuetify","h","props","$mount","TemplateWithValidSettingsV","resultKey","originalId","post_type","ManageTemplatesDataToLoadV","GlobalBlocksV","confirm","trashOrDelete","templateIndex","findIndex","newTemplates","unshift","splice","templateSettingsAlreadyExists","isEqual","TemplateTypeV","defaultPriority","TemplateTypeCategoriesV","parentId","RuleGroupV","TriggersV","onlyShowOnce","avoidMultiple","limitPageLoad","limitSession","limitForever","SupportedPostTypeV","BREAKDANCE_TEMPLATE_POST_TYPE","OXYGEN_TEMPLATE_POST_TYPE","BREAKDANCE_HEADER_POST_TYPE","OXYGEN_HEADER_POST_TYPE","BREAKDANCE_FOOTER_POST_TYPE","OXYGEN_FOOTER_POST_TYPE","BREAKDANCE_BLOCK_POST_TYPE","OXYGEN_BLOCK_POST_TYPE","PartialTemplateV","TemplateV","PopupTriggersV","proOnly","TemplatesManagementDataV","ConditionV","DynamicFieldV","EnvironmentV","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","j","Object","keys","every","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}

OHA YOOO - Tarih: 2026-08-04 00:34:05