{"id":73529,"date":"2024-05-31T14:39:16","date_gmt":"2024-05-31T12:39:16","guid":{"rendered":"https:\/\/artipelag.se\/?post_type=activities&#038;p=73529"},"modified":"2024-12-10T11:18:17","modified_gmt":"2024-12-10T10:18:17","slug":"magical-violin-concert","status":"publish","type":"activities","link":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/","title":{"rendered":"Magical violin &amp; piano concert"},"content":{"rendered":"<div class=\"wp-block-single-activity-title-sub\">\n      <div class=\"acf-innerblocks-container\">\n<div class=\"max-w-screen-md mt-5 mt-5 mx-auto xl:mt-8 xl:mt-8 mt-5 mx-auto xl:mt-8 first:mt-0\">\n<h2 id=\"grammy-award-winning-violinist-johan-dalene-in-a-meeting-with-pianist-peter-friis-johansson\" class=\" wp-block-heading\">Grammy award winning violinist Johan Dalene in a meeting with pianist Peter Friis Johansson<\/h2>\n<\/div>\n<\/div>\n  <\/div>\n\n\n<div class=\"max-w-screen-md mt-5 mx-auto first:mt-0\"><div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  \n<p class=\"is-style-lead-text\">The young rising star Johan Dalene and pianist Peter Friis Johansson offer a diverse program from the violin repertoire<\/p>\n\n<\/div>\n<\/div>\n\n<figure class=\"wp-block-post-featured-image\"><img decoding=\"async\" width=\"1536\" height=\"832\" src=\"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"Johan Dalene med violin\" style=\"object-fit:cover;\" \/><\/figure>\n\n<div class=\"wp-block-single-activity-information\">\n    <div class=\"container\">\n      <div class=\"md:flex\">\n        <div class=\"shrink-0 md:w-1\/3\">\n                      <h2 class=\"mb-5 text-xl font-medium text-green-900 md:mr-5 lg:text-3xl\">\n              Information\n            <\/h2>\n                  <\/div>\n\n        <div class=\"w-full\">\n          <div class=\"max-w-screen-md\">\n                          <div class=\"border-b border-gray-300\">\n          <div\n        class=\"border-t border-gray-300\"\n                x-data=\"{ open: true }\"\n              >\n        <button\n          @click=\"open = !open\"\n          class=\"\n            w-full py-4\n            inline-flex items-center\n            font-medium tracking-tight text-md text-left\n            lg:text-lg xl:text-xl\n            focus:outline-none\n          \"\n        >\n          <span class=\"mr-4\">\n            Tickets\n          <\/span>\n          <span\n            class=\"ml-auto\"\n            aria-hidden=\"true\"\n            x-cloak\n            x-nojs-hidden\n          >\n            <span x-show=\"!open\" aria-label=\"Open\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\/>\n<\/svg>            <\/span>\n            <span x-show=\"open\" aria-label=\"Close\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/>\n  <path d=\"M19 13H5v-2h14v2z\"\/>\n<\/svg>            <\/span>\n          <\/span>\n        <\/button>\n\n        <div\n          class=\"pr-5\"\n          x-show=\"open\"\n          x-cloak\n        >\n          <div class=\"mb-4\">\n            <div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  <p>Regular: 395 SEK<br \/>\nSenior (65+): 345 SEK<br \/>\nArt.Pass members: 295 SEK<\/p>\n<p><script async type=\"text\/javascript\" src=\"https:\/\/book.artipelag.se\/en\/widget?token=b6c7ef1d-0388-41b1-b815-3a2ce9456d0d\"><\/script><span id=\"b6c7ef1d-0388-41b1-b815-3a2ce9456d0d\"><\/span><\/p>\n<hr class=\"my-4 border-transparent\">\n<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n          <div\n        class=\"border-t border-gray-300\"\n                x-data=\"{ open: false }\"\n              >\n        <button\n          @click=\"open = !open\"\n          class=\"\n            w-full py-4\n            inline-flex items-center\n            font-medium tracking-tight text-md text-left\n            lg:text-lg xl:text-xl\n            focus:outline-none\n          \"\n        >\n          <span class=\"mr-4\">\n            Date &#038; Time\n          <\/span>\n          <span\n            class=\"ml-auto\"\n            aria-hidden=\"true\"\n            x-cloak\n            x-nojs-hidden\n          >\n            <span x-show=\"!open\" aria-label=\"Open\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\/>\n<\/svg>            <\/span>\n            <span x-show=\"open\" aria-label=\"Close\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/>\n  <path d=\"M19 13H5v-2h14v2z\"\/>\n<\/svg>            <\/span>\n          <\/span>\n        <\/button>\n\n        <div\n          class=\"pr-5\"\n          x-show=\"open\"\n          x-cloak\n        >\n          <div class=\"mb-4\">\n            <div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  <p>August 11, 7:30 PM<\/p>\n<p>The concert is approximately 1.15 hour<\/p>\n<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n          <div\n        class=\"border-t border-gray-300\"\n                x-data=\"{ open: false }\"\n              >\n        <button\n          @click=\"open = !open\"\n          class=\"\n            w-full py-4\n            inline-flex items-center\n            font-medium tracking-tight text-md text-left\n            lg:text-lg xl:text-xl\n            focus:outline-none\n          \"\n        >\n          <span class=\"mr-4\">\n            Location\n          <\/span>\n          <span\n            class=\"ml-auto\"\n            aria-hidden=\"true\"\n            x-cloak\n            x-nojs-hidden\n          >\n            <span x-show=\"!open\" aria-label=\"Open\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\/>\n<\/svg>            <\/span>\n            <span x-show=\"open\" aria-label=\"Close\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/>\n  <path d=\"M19 13H5v-2h14v2z\"\/>\n<\/svg>            <\/span>\n          <\/span>\n        <\/button>\n\n        <div\n          class=\"pr-5\"\n          x-show=\"open\"\n          x-cloak\n        >\n          <div class=\"mb-4\">\n            <div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  <p>Konsthallen<\/p>\n<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <\/div>\n                      <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n\n<div class=\"wp-block-single-activity-body-content\">\n  <div class=\"container\">\n    <div class=\"md:flex\">\n      <div class=\"shrink-0 md:w-1\/3\">\n                  <h2 class=\"mb-5 text-xl font-medium text-green-900 md:mr-5 lg:text-3xl\">\n            About the concert\n          <\/h2>\n              <\/div>\n\n      <div class=\"w-full\">\n        <div class=\"max-w-screen-md\">\n                                    <div x-data=\"{\n  active: false,\n  folded: false,\n  scrollPosition: 0,\n  toggle() {\n    if (this.folded) {\n      this.scrollPosition = window.pageYOffset || document.documentElement.scrollTop;\n    } else {\n      const y = this.scrollPosition;\n      setTimeout(function() {\n        window.scrollTo(0, y);\n      }, 0);\n    }\n    this.folded = ! this.folded;\n  }\n}\">\n  <div\n        class=\"relative\"\n    :class=\"folded ? 'overflow-hidden h-[50vh]' : ''\"\n    x-ref=\"text\"\n    x-init=\"$nextTick(() => {\n      const height = $refs.text.offsetHeight;\n      const isMobile = window.innerWidth <= 768;\n      active = isMobile &#038;&#038; height > window.innerHeight;\n\n      if (active) {\n        folded = true;\n      } else {\n        folded = false;\n        $refs.toggle.remove();\n        $refs.overlay.remove();\n      }\n    })&#8221;\n  >\n    <div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  <div class=\"acf-innerblocks-container\">\n<div class=\"max-w-screen-md mt-5 mx-auto first:mt-0\"><div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  \n<p>Violinist Johan Dalene has taken the international music scene by storm! At just 23 years old, he is one of the world&#8217;s most sought-after violinists. He has performed solo with many of the world&#8217;s most prominent symphony orchestras. He recently received a Grammy Award in Sweden for the best classical record of 2022. He is now making a rare appearance with us at Artipelag ahead of his next recording. Together with pianist Peter Friis Johansson, he presents a diverse program from the violin repertoire.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n    <div\n      x-ref=\"overlay\"\n      x-show=\"folded\"\n      class=\"\n        w-full h-32\n        absolute bottom-0 hidden\n        bg-gradient-to-t from-white\n        pointer-events-none\n      \"\n      :class=\"{ 'block': active, 'hidden': ! active}\"\n    >\n    <\/div>\n  <\/div>\n\n  <div\n    x-ref=\"toggle\"\n    :class=\"{ 'block': active, 'hidden': ! active}\"\n    class=\"mt-4 hidden\"\n    x-cloak\n  >\n    <button\n      @click=\"toggle()\"\n            type=\"button\"\n      class=\"\n        w-full py-3 px-5 border border-gray-300\n        text-sm font-medium text-green-600 rounded-sm\n      \"\n      x-text=\"folded ? 'Show more' : 'Show less'\"\n    >\n      Show more\n    <\/button>\n  <\/div>\n<\/div>\n                              <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n<div class=\"wp-block-single-activity-information\">\n    <div class=\"container\">\n      <div class=\"md:flex\">\n        <div class=\"shrink-0 md:w-1\/3\">\n                      <h2 class=\"mb-5 text-xl font-medium text-green-900 md:mr-5 lg:text-3xl\">\n              Participants\n            <\/h2>\n                  <\/div>\n\n        <div class=\"w-full\">\n          <div class=\"max-w-screen-md\">\n                          <div class=\"border-b border-gray-300\">\n          <div\n        class=\"border-t border-gray-300\"\n                x-data=\"{ open: false }\"\n              >\n        <button\n          @click=\"open = !open\"\n          class=\"\n            w-full py-4\n            inline-flex items-center\n            font-medium tracking-tight text-md text-left\n            lg:text-lg xl:text-xl\n            focus:outline-none\n          \"\n        >\n          <span class=\"mr-4\">\n            Johan Dalene\n          <\/span>\n          <span\n            class=\"ml-auto\"\n            aria-hidden=\"true\"\n            x-cloak\n            x-nojs-hidden\n          >\n            <span x-show=\"!open\" aria-label=\"Open\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\/>\n<\/svg>            <\/span>\n            <span x-show=\"open\" aria-label=\"Close\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/>\n  <path d=\"M19 13H5v-2h14v2z\"\/>\n<\/svg>            <\/span>\n          <\/span>\n        <\/button>\n\n        <div\n          class=\"pr-5\"\n          x-show=\"open\"\n          x-cloak\n        >\n          <div class=\"mb-4\">\n            <div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  <div class=\"flex flex-grow flex-col max-w-full\">\n<div class=\"min-h-[20px] text-message flex flex-col items-start whitespace-pre-wrap break-words [.text-message+&amp;]:mt-5 juice:w-full juice:items-end overflow-x-auto gap-2\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"a6248203-7f13-484f-9d26-9986351d8fd2\">\n<div class=\"flex w-full flex-col gap-1 juice:empty:hidden juice:first:pt-[3px]\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"mt-1 flex gap-3 empty:hidden juice:-ml-3\">\n<div class=\"items-center justify-start rounded-xl p-1 flex\">\n<div class=\"flex items-center\">Swedish-Norwegian violinist Johan Dalene won the prestigious Carl Nielsen Competition in 2019. At just 23 years of age, he has the entire world as his stage. He has received accolades like Gramophone&#8217;s Young Artist of the Year 2022. Highlights include his debut at the BBC Proms and performances with acclaimed orchestras such as the Leipzig Gewandhaus Orchestra and the San Francisco Symphony.<\/div>\n<\/div>\n<\/div>\n<div class=\"flex\"><\/div>\n<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n          <div\n        class=\"border-t border-gray-300\"\n                x-data=\"{ open: false }\"\n              >\n        <button\n          @click=\"open = !open\"\n          class=\"\n            w-full py-4\n            inline-flex items-center\n            font-medium tracking-tight text-md text-left\n            lg:text-lg xl:text-xl\n            focus:outline-none\n          \"\n        >\n          <span class=\"mr-4\">\n            Peter Friis Johansson\n          <\/span>\n          <span\n            class=\"ml-auto\"\n            aria-hidden=\"true\"\n            x-cloak\n            x-nojs-hidden\n          >\n            <span x-show=\"!open\" aria-label=\"Open\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/><path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\/>\n<\/svg>            <\/span>\n            <span x-show=\"open\" aria-label=\"Close\">\n              <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n  <path d=\"M0 0h24v24H0z\" fill=\"none\"\/>\n  <path d=\"M19 13H5v-2h14v2z\"\/>\n<\/svg>            <\/span>\n          <\/span>\n        <\/button>\n\n        <div\n          class=\"pr-5\"\n          x-show=\"open\"\n          x-cloak\n        >\n          <div class=\"mb-4\">\n            <div\n  class=\"prose sm:prose-lg lg:prose-xl\"\n  x-data=\"\"\n  x-init=\"$nextTick(function () {\n    const videoEmbeds = document.querySelectorAll('.wp-block-embed.is-type-video');\n    videoEmbeds.forEach(function (embed) {\n      if (!embed.classList.contains('wp-embed-aspect-16-9') || !embed.classList.contains('wp-has-aspect-ratio')) {\n        embed.classList.add('wp-embed-aspect-16-9', 'wp-has-aspect-ratio');\n      }\n    });\n  })\"\n>\n  <p>Peter Friis Johansson is one of Scandinavia&#8217;s most sought-after pianists, known for his acclaimed performances on the world&#8217;s most prestigious stages and his victories in international competitions. He is also active as a chamber musician, collaborates on projects with other art forms, and explores modern piano recitals through his solo project &#8220;The Final Frontier&#8221;. In addition to his career as a pianist, Peter is also engaged as a teacher and entrepreneur and the founder of Fairplay Chamber Music, one of Sweden&#8217;s largest chamber music festivals.<\/p>\n<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <\/div>\n                      <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n\n<div class=\"wp-block-single-activity-images\">\n    <div class=\"container\">\n      <div class=\"md:flex\">\n        <div class=\"shrink-0 md:w-1\/3\">\n                      <h2 class=\"mb-5 text-xl font-medium text-green-900 md:mr-5 lg:text-3xl\">\n              Gallery\n            <\/h2>\n                  <\/div>\n\n        <div class=\"w-full\">\n          <div class=\"max-w-screen-md\">\n            <div\n    class=\"not-prose\"\n    x-data=\"{\n      currentImageIndex: 0,\n      items: [{&quot;type&quot;:&quot;image&quot;,&quot;src&quot;:&quot;https:\\\/\\\/artipelag.se\\\/app\\\/uploads\\\/2024\\\/04\\\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif&quot;,&quot;desc&quot;:&quot;Johan Dalene Foto: Mats Becker&quot;,&quot;thumb&quot;:&quot;https:\\\/\\\/artipelag.se\\\/app\\\/uploads\\\/2024\\\/04\\\/toppbild-aktiviteter.johandalene-fotomatsbecker-800x433.jpg&quot;},{&quot;type&quot;:&quot;image&quot;,&quot;src&quot;:&quot;https:\\\/\\\/artipelag.se\\\/app\\\/uploads\\\/2024\\\/04\\\/toppbild-aktiviteter.peterfriis-foto-sebastianornemark.avif&quot;,&quot;desc&quot;:&quot;Peter Friis-Foto Sebastian \\u00d6rnemark&quot;,&quot;thumb&quot;:&quot;https:\\\/\\\/artipelag.se\\\/app\\\/uploads\\\/2024\\\/04\\\/toppbild-aktiviteter.peterfriis-foto-sebastianornemark-800x433.jpg&quot;}],\n      modal: false,\n      modalSrc: '',\n      modalDesc: '',\n      modalType: '',\n      hammerInstance: null,\n      openModal(index) {\n        this.currentImageIndex = index;\n        this.modalType = this.items[index].type;\n        this.modalSrc = this.items[index].src;\n        this.modalDesc = this.items[index].desc;\n        this.modal = true;\n        const initSwipe = this.initSwipe;\n        $nextTick(function() {\n          initSwipe();\n        });\n      },\n      closeModal() {\n        this.modal = false;\n        if (this.hammerInstance) {\n          this.hammerInstance.destroy();\n        }\n      },\n      updateModalImage() {\n        this.modalType = this.items[this.currentImageIndex].type;\n        this.modalSrc = this.items[this.currentImageIndex].src;\n        this.modalDesc = this.items[this.currentImageIndex].desc;\n      },\n      nextImage() {\n        if (!this.modal) return;\n        const maxIndex = this.items.length - 1;\n        if (this.currentImageIndex >= maxIndex) {\n          this.currentImageIndex = 0;\n        } else {\n          this.currentImageIndex = this.currentImageIndex + 1;\n        }\n        this.updateModalImage();\n      },\n      prevImage() {\n        if (!this.modal) return;\n        if (this.currentImageIndex <= 0) {\n          this.currentImageIndex = this.items.length - 1;\n        } else {\n          this.currentImageIndex = this.currentImageIndex - 1;\n        }\n        this.updateModalImage();\n      },\n      initSwipe() {\n        if ($refs.modalContent) {\n          hammerInstance = new Hammer($refs.modalContent);\n          const nextImage = this.nextImage;\n          const prevImage = this.prevImage;\n          hammerInstance.on('swipeleft', function() {\n            nextImage();\n          });\n          hammerInstance.on('swiperight', function() {\n            prevImage();\n          });\n        }\n      },\n    }\"\n    @keydown.escape.window=\"closeModal()\"\n    @keydown.right.window=\"nextImage()\"\n    @keydown.left.window=\"prevImage()\"\n  >\n    <template x-if=\"modal\">\n      <div\n        x-transition:enter=\"transition ease-out duration-300\"\n        x-transition:enter-start=\"opacity-0 transform scale-90\"\n        x-transition:enter-end=\"opacity-100 transform scale-100\"\n        x-transition:leave=\"transition ease-in duration-300\"\n        x-transition:leave-start=\"opacity-100 transform scale-100\"\n        x-transition:leave-end=\"opacity-0 transform scale-90\"\n        class=\"\n          w-full h-full inset-0 flex justify-center items-center\n          fixed z-[60] overflow-hidden\n          bg-black bg-opacity-75\n        \"\n        x-on:click=\"closeModal()\"\n      >\n        <div class=\"w-full flex items-center justify-between flex-nowrap\">\n          <button\n            x-on:click.stop=\"prevImage\"\n            aria-label=\"Previous\"\n            class=\"\n              w-5 mr-auto text-white shrink-0\n              sm:w-8\n              lg:w-12\n            \"\n          >\n            <span aria-hidden=\"true\">\n              <svg class=\"fill-current max-w-full\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 -960 960 960\">\n  <path d=\"m313-440 224 224-57 56-320-320 320-320 57 56-224 224h487v80H313Z\" \/>\n<\/svg>            <\/span>\n          <\/button>\n          <div\n            x-ref=\"modalContent\"\n            class=\"flex flex-col max-w-full max-h-full overflow-auto\"\n          >\n            <template x-if=\"modalType == 'video'\">\n              <div class=\"p-2\" x-on:click.stop=\"\">\n                <video\n                  class=\"my-0 object-contain max-h-[80vh] w-full\"\n                  preload=\"metadata\"\n                  controls\n                  autoplay\n                >\n                  <source :src=\"modalSrc\" type=\"video\/mp4\">\n                <\/video>\n                <p\n                  x-text=\"modalDesc\"\n                  class=\"my-0 mt-2 text-sm text-white text-center\"\n                ><\/p>\n              <\/div>\n            <\/template>\n\n            <template x-if=\"modalType == 'image'\">\n              <div class=\"p-2\" x-on:click.stop=\"\">\n                <img\n                  :alt=\"modalSrc\"\n                  class=\"my-0 object-contain max-h-[80vh] w-full\"\n                  :src=\"modalSrc\"\n                >\n                <p\n                  x-text=\"modalDesc\"\n                  class=\"my-0 mt-2 text-sm text-white text-center\"\n                ><\/p>\n              <\/div>\n            <\/template>\n          <\/div>\n          <button\n            x-on:click.stop=\"nextImage\"\n            aria-label=\"Next\"\n            class=\"\n              w-5 ml-auto text-white shrink-0\n              sm:w-8\n              lg:w-12\n            \"\n          >\n            <span aria-hidden=\"true\">\n              <svg class=\"fill-current max-w-full\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 -960 960 960\">\n  <path d=\"M647-440H160v-80h487L423-744l57-56 320 320-320 320-57-56 224-224Z\" \/>\n<\/svg>            <\/span>\n          <\/button>\n        <\/div>\n\n        <button\n          x-on:click=\"closeModal()\"\n          class=\"fixed top-[5%] right-2 outline-none focus:outline-none\"\n        >\n          <span class=\"w-5 h-5 text-white\" aria-hidden=\"true\">\n            <svg class=\"fill-current\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 18\">\n  <path d=\"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\"><\/path>\n<\/svg>          <\/span>\n        <\/button>\n      <\/div>\n    <\/template>\n\n    <div\n      class=\"\n        gallery gallery-preview\n        grid gap-5 grid-cols-2\n        \n        sm:gap-5\n      \"\n    >\n      <template x-for=\"(media, index) in items\" :key=\"index\">\n        <a\n          x-on:click=\"openModal(index)\"\n          class=\"block group flex-grow hover:cursor-zoom-in\"\n          href=\"#\"\n          title=\"View large image\"\n        >\n          <template x-if=\"media.type == 'video'\">\n            <figure class=\"relative\">\n              <video\n                class=\"my-0 object-fit w-full\"\n                preload=\"metadata\"\n              >\n                <source :src=\"media.src\" type=\"video\/mp4\">\n              <\/video>\n              <div\n                class=\"\n                  w-8 h-8 text-white\n                  absolute top-1\/2 left-1\/2 -translate-x-1\/2 -translate-y-1\/2\n                \"\n                aria-hidden=\"true\"\n              >\n                <svg class=\"fill-current max-w-full\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 -960 960 960\">\n  <path\n    d=\"m380-300 280-180-280-180v360ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\" \/>\n<\/svg>              <\/div>\n            <\/figure>\n          <\/template>\n          <template x-if=\"media.type == 'image'\">\n            <figure class=\"relative\">\n              <img\n                :alt=\"`Image ${index + 1}`\"\n                class=\"my-0 object-fit w-full\"\n                :src=\"media.thumb\"\n              \/>\n              <div\n                class=\"\n                  p-1 w-7 h-7 absolute bottom-2 right-2\n                  flex items-center justify-center\n                  bg-black bg-opacity-50 text-white rounded\n                  opacity-0 transition-opacity duration-300\n                  group-hover:opacity-100\n                \"\n                aria-hidden=\"true\"\n              >\n                <svg class=\"fill-current max-w-full\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\">\n  <path\n    d=\"M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Zm-40-60v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z\" \/>\n<\/svg>              <\/div>\n            <\/figure>\n          <\/template>\n        <\/a>\n      <\/template>\n    <\/div>\n  <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n","protected":false},"featured_media":72287,"parent":0,"menu_order":16,"template":"","activity_theme":[],"activity_type":[114],"class_list":["post-73529","activities","type-activities","status-publish","has-post-thumbnail","hentry","activity_type-concerts-and-performances"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.7 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Magical violin &amp; piano concert - Everything at Artipelag - Artipelag<\/title>\n<meta name=\"description\" content=\"Upplev en magisk violinkonsert med Johan Dalene och Peter Friis Johansson. Enast\u00e5ende violinist i en m\u00e5ngsidig repertoar.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Magical violin &amp; piano concert - Kalendarium - Artipelag\" \/>\n<meta property=\"og:description\" content=\"Upplev en magisk violinkonsert med Johan Dalene och Peter Friis Johansson. Enast\u00e5ende violinist i en m\u00e5ngsidig repertoar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/\" \/>\n<meta property=\"og:site_name\" content=\"Artipelag\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artipelag\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-10T10:18:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"832\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@artipelag\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/\",\"url\":\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/\",\"name\":\"Magical violin &amp; piano concert - Everything at Artipelag - Artipelag\",\"isPartOf\":{\"@id\":\"https:\/\/artipelag.se\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif\",\"datePublished\":\"2024-05-31T12:39:16+00:00\",\"dateModified\":\"2024-12-10T10:18:17+00:00\",\"description\":\"Upplev en magisk violinkonsert med Johan Dalene och Peter Friis Johansson. Enast\u00e5ende violinist i en m\u00e5ngsidig repertoar.\",\"breadcrumb\":{\"@id\":\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#primaryimage\",\"url\":\"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif\",\"contentUrl\":\"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif\",\"width\":1536,\"height\":832,\"caption\":\"Johan Dalene Foto: Mats Becker\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hem\",\"item\":\"https:\/\/artipelag.se\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aktiviteter\",\"item\":\"https:\/\/artipelag.se\/en\/at-artipelag\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Experiences and concerts\",\"item\":\"https:\/\/artipelag.se\/en\/at-artipelag\/activity\/concerts-and-performances\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Magical violin &amp; piano concert\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/artipelag.se\/en\/#website\",\"url\":\"https:\/\/artipelag.se\/en\/\",\"name\":\"Artipelag\",\"description\":\"Artipelag is a new international venue for art, good food, events and activities \u2013 beautifully set on V\u00e4rmd\u00f6 in the Stockholm Archipelago, just 20 minutes from the city centre.\",\"publisher\":{\"@id\":\"https:\/\/artipelag.se\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/artipelag.se\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/artipelag.se\/en\/#organization\",\"name\":\"Artipelag\",\"url\":\"https:\/\/artipelag.se\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/artipelag.se\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/artipelag.se\/app\/uploads\/2015\/09\/logga2.jpg\",\"contentUrl\":\"https:\/\/artipelag.se\/app\/uploads\/2015\/09\/logga2.jpg\",\"width\":700,\"height\":700,\"caption\":\"Artipelag\"},\"image\":{\"@id\":\"https:\/\/artipelag.se\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/artipelag\/\",\"https:\/\/x.com\/artipelag\",\"https:\/\/www.instagram.com\/artipelag\/\",\"https:\/\/www.linkedin.com\/company\/artipelag\",\"https:\/\/www.youtube.com\/user\/ArtipelagSweden\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Magical violin &amp; piano concert - Everything at Artipelag - Artipelag","description":"Upplev en magisk violinkonsert med Johan Dalene och Peter Friis Johansson. Enast\u00e5ende violinist i en m\u00e5ngsidig repertoar.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/","og_locale":"en_US","og_type":"article","og_title":"Magical violin &amp; piano concert - Kalendarium - Artipelag","og_description":"Upplev en magisk violinkonsert med Johan Dalene och Peter Friis Johansson. Enast\u00e5ende violinist i en m\u00e5ngsidig repertoar.","og_url":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/","og_site_name":"Artipelag","article_publisher":"https:\/\/www.facebook.com\/artipelag\/","article_modified_time":"2024-12-10T10:18:17+00:00","og_image":[{"width":1536,"height":832,"url":"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@artipelag","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/","url":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/","name":"Magical violin &amp; piano concert - Everything at Artipelag - Artipelag","isPartOf":{"@id":"https:\/\/artipelag.se\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#primaryimage"},"image":{"@id":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#primaryimage"},"thumbnailUrl":"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif","datePublished":"2024-05-31T12:39:16+00:00","dateModified":"2024-12-10T10:18:17+00:00","description":"Upplev en magisk violinkonsert med Johan Dalene och Peter Friis Johansson. Enast\u00e5ende violinist i en m\u00e5ngsidig repertoar.","breadcrumb":{"@id":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#primaryimage","url":"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif","contentUrl":"https:\/\/artipelag.se\/app\/uploads\/2024\/04\/toppbild-aktiviteter.johandalene-fotomatsbecker.avif","width":1536,"height":832,"caption":"Johan Dalene Foto: Mats Becker"},{"@type":"BreadcrumbList","@id":"https:\/\/artipelag.se\/en\/at-artipelag\/magical-violin-concert\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Hem","item":"https:\/\/artipelag.se\/en\/"},{"@type":"ListItem","position":2,"name":"Aktiviteter","item":"https:\/\/artipelag.se\/en\/at-artipelag\/"},{"@type":"ListItem","position":3,"name":"Experiences and concerts","item":"https:\/\/artipelag.se\/en\/at-artipelag\/activity\/concerts-and-performances\/"},{"@type":"ListItem","position":4,"name":"Magical violin &amp; piano concert"}]},{"@type":"WebSite","@id":"https:\/\/artipelag.se\/en\/#website","url":"https:\/\/artipelag.se\/en\/","name":"Artipelag","description":"Artipelag is a new international venue for art, good food, events and activities \u2013 beautifully set on V\u00e4rmd\u00f6 in the Stockholm Archipelago, just 20 minutes from the city centre.","publisher":{"@id":"https:\/\/artipelag.se\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/artipelag.se\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/artipelag.se\/en\/#organization","name":"Artipelag","url":"https:\/\/artipelag.se\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/artipelag.se\/en\/#\/schema\/logo\/image\/","url":"https:\/\/artipelag.se\/app\/uploads\/2015\/09\/logga2.jpg","contentUrl":"https:\/\/artipelag.se\/app\/uploads\/2015\/09\/logga2.jpg","width":700,"height":700,"caption":"Artipelag"},"image":{"@id":"https:\/\/artipelag.se\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artipelag\/","https:\/\/x.com\/artipelag","https:\/\/www.instagram.com\/artipelag\/","https:\/\/www.linkedin.com\/company\/artipelag","https:\/\/www.youtube.com\/user\/ArtipelagSweden"]}]}},"_links":{"self":[{"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/activities\/73529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/activities"}],"about":[{"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/types\/activities"}],"version-history":[{"count":5,"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/activities\/73529\/revisions"}],"predecessor-version":[{"id":74585,"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/activities\/73529\/revisions\/74585"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/media\/72287"}],"wp:attachment":[{"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/media?parent=73529"}],"wp:term":[{"taxonomy":"activity_theme","embeddable":true,"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/activity_theme?post=73529"},{"taxonomy":"activity_type","embeddable":true,"href":"https:\/\/artipelag.se\/en\/wp-json\/wp\/v2\/activity_type?post=73529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}