diff --git a/jest.config.js b/jest.config.js index ff39b9235..7c9d422aa 100644 --- a/jest.config.js +++ b/jest.config.js @@ -4,7 +4,7 @@ const config = require("@patternslib/dev/jest.config.js"); // config.setupFilesAfterEnv.push("./node_modules/@testing-library/jest-dom/extend-expect"); config.setupFilesAfterEnv.push(path.resolve(__dirname, "./src/setup-tests.js")); config.transformIgnorePatterns = [ - "/node_modules/(?!@patternslib/)(?!@plone/)(?!preact/)(?!screenfull/)(?!sinon/)(?!bootstrap/)(?!datatable/)(?!svelte/).+\\.[t|j]sx?$", + "/node_modules/(?!@patternslib/)(?!@plone/)(?!preact/)(?!screenfull/)(?!sinon/)(?!bootstrap/)(?!datatable/)(?!svelte/)(?!esm-env/).+\\.[t|j]sx?$", ]; // add svelte-jester diff --git a/package.json b/package.json index 70317605e..4469099b9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "@11ty/eleventy-upgrade-help": "3.0.2", "@patternslib/pat-code-editor": "4.0.1", "@patternslib/patternslib": "9.10.4", - "@plone/registry": "^2.5.4", + "@plone/registry": "^2.7.0", "backbone": "1.6.1", "backbone.paginator": "2.0.8", "bootstrap": "5.3.8", @@ -55,9 +55,9 @@ "npm-run-all2": "^8.0.4", "rimraf": "^6.0.1", "sinon": "^16.1.3", - "svelte": "^4.2.19", - "svelte-jester": "^3.0.0", - "svelte-loader": "^3.2.3", + "svelte": "^5.53.8", + "svelte-jester": "^5.0.0", + "svelte-loader": "^3.2.4", "svelte-scrollto": "^0.2.0", "svg-inline-loader": "^0.8.2" }, diff --git a/src/pat/contentbrowser/contentbrowser.js b/src/pat/contentbrowser/contentbrowser.js index a2938cc45..336b4ebf3 100644 --- a/src/pat/contentbrowser/contentbrowser.js +++ b/src/pat/contentbrowser/contentbrowser.js @@ -3,6 +3,7 @@ import Parser from "@patternslib/patternslib/src/core/parser"; import registry from "@patternslib/patternslib/src/core/registry"; import utils from "../../core/utils"; import plone_registry from "@plone/registry"; +import { mount } from "svelte"; // Contentbrowser pattern @@ -80,7 +81,7 @@ class Pattern extends BasePattern { contentBrowserEl.classList.add("content-browser-wrapper"); this.el.parentNode.insertBefore(contentBrowserEl, this.el); - this.component_content_browser = new ContentBrowserApp({ + this.component_content_browser = mount(ContentBrowserApp, { target: contentBrowserEl, props: { fieldId: nodeId, diff --git a/src/pat/contentbrowser/src/App.svelte b/src/pat/contentbrowser/src/App.svelte index 255003f94..ea4f2254f 100644 --- a/src/pat/contentbrowser/src/App.svelte +++ b/src/pat/contentbrowser/src/App.svelte @@ -1,6 +1,7 @@ diff --git a/src/pat/contentbrowser/src/ContentBrowser.svelte b/src/pat/contentbrowser/src/ContentBrowser.svelte index fb48fc6d1..1e4bcfe75 100644 --- a/src/pat/contentbrowser/src/ContentBrowser.svelte +++ b/src/pat/contentbrowser/src/ContentBrowser.svelte @@ -36,15 +36,15 @@ // initialize content browser store const contentItems = contentStore($config, pathCache); - let showUpload = false; - let previewItem = {}; - let keyboardNavInitialized = false; - let shiftKey = false; - let searchTerm = null; - let gridView = ($config.layout || "list") === "grid"; + let showUpload = $state(false); + let previewItem = $state({}); + let keyboardNavInitialized = $state(false); + let shiftKey = $state(false); + let searchTerm = $state(null); + let gridView = $state(($config.layout || "list") === "grid"); let defaultConfigMode = $config.mode; - let vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0); + let vw = $state(Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0)); function updatePreview({ data = null, uuid = null, action = "show" }) { if (data && action == "show") { @@ -334,16 +334,16 @@ closeBrowser(); } - function selectRecentlyUsed(event) { - addItem(event.detail.item); + function selectRecentlyUsed({ item }) { + addItem(item); } function itemId(item) { return item.path?.split("/").pop() || "- no id -"; } - async function selectFavorite(event) { - const path = event.detail.item.path; + async function selectFavorite({ item: favoriteItem }) { + const path = favoriteItem.path; const response = await request({ vocabularyUrl: $config.vocabularyUrl, attributes: $config.attributes, @@ -452,20 +452,16 @@ }, 300); } - $: { + $effect(() => { if ($showContentBrowser) { contentItems.get({ path: $currentPath }); } - } + }); - $: { + $effect(() => { $contentItems; scrollToRight(); - } - - $: { - $previewUids; - } + }); {#if $showContentBrowser} @@ -473,12 +469,12 @@