<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
/* Product/detail.twig */
class __TwigTemplate_2ff6fc0185ba932717ee492599358283389bbad343a0e2b97ffbfb94a9e80a46 extends \Eccube\Twig\Template
{
private $source;
private $macros = [];
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'stylesheet' => [$this, 'block_stylesheet'],
'javascript' => [$this, 'block_javascript'],
'main' => [$this, 'block_main'],
];
}
protected function doGetParent(array $context)
{
// line 11
return "default_frame.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail.twig"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail.twig"));
// line 13
$context["body_class"] = "product_page";
// line 11
$this->parent = $this->loadTemplate("default_frame.twig", "Product/detail.twig", 11);
$this->parent->display($context, array_merge($this->blocks, $blocks));
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
}
// line 15
public function block_stylesheet($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
// line 16
echo " <style>
.slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -45px;
display: block;
width: 100%;
padding: 0;
list-style: none;
text-align: center;
}
.slick-dots li {
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
content: \" \";
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 12px;
height: 12px;
text-align: center;
opacity: .25;
background-color: black;
border-radius: 50%;
}
.slick-dots li.slick-active button:before {
opacity: .75;
background-color: black;
}
.slick-dots li button.thumbnail img {
width: 0;
height: 0;
}
#form1 > .mb-3 {
visibility: hidden;
height:0;
}
form#form1 > div.mb-3:nth-child(4) {
visibility: visible;
height: auto;
}
/*#form1 > div:nth-child(14) {*/
/* visibility: hidden;*/
/*}*/
#downloadSpinners {
display: block;
position: absolute;
left: 256px;
top: 256px;
}
#uchiwaCanvas {
background-color: #cccccc;
width: 90vW;
max-width: 512px;
margin-left: -20px;
}
.text-announce {
color: #ff0000;
font-weight: bold;
}
button#add-cart-button {
/*background-color:#ffffff;*/
color:#ffffff;
}
button#favorite {
background-color:#ffff00;
color:#666666;
border: 1px solid #aaaaaa;
}
button#favorite:hover {
background-color:#e6e600;
/*color:#000000;*/
}
@media (min-width: 768px) and (max-width: 1070px) {
#uchiwaCanvas {
width: 45vW;
}
}
</style>
";
// line 150
echo " <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/vuetify@3.7.16/dist/vuetify.min.css\" />
<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css\" />
<link rel=\"stylesheet\" href=\"https://fonts.bunny.net/css?family=roboto:400,500,700\" />
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 155
public function block_javascript($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
// line 156
echo "<script>
eccube.classCategories = ";
// line 157
echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson((isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 157, $this->source); })()));
echo ";
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
";
// line 168
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, false, 168)) {
// line 169
echo " fnSetClassCategories(
\$('#form1'), ";
// line 170
echo json_encode(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 170, $this->source); })()), "classcategory_id2", [], "any", false, false, false, 170), "vars", [], "any", false, false, false, 170), "value", [], "any", false, false, false, 170));
echo "
);
";
} elseif (twig_get_attribute($this->env, $this->source, // line 172
($context["form"] ?? null), "classcategory_id1", [], "any", true, true, false, 172)) {
// line 173
echo " eccube.checkStock(\$('#form1'), ";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 173, $this->source); })()), "id", [], "any", false, false, false, 173), "html", null, true);
echo ", ";
echo json_encode(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 173, $this->source); })()), "classcategory_id1", [], "any", false, false, false, 173), "vars", [], "any", false, false, false, 173), "value", [], "any", false, false, false, 173));
echo ", null);
";
}
// line 175
echo " </script>
<script>
\$(function() {
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
// Core Web Vital の Cumulative Layout Shift(CLS)対策のため
// img タグに width, height が付与されている.
// 630px 未満の画面サイズでは縦横比が壊れるための対策
// see https://github.com/EC-CUBE/ec-cube/pull/5023
// \$('.ec-grid2__cell').hide();
var removeSize = function () {
\$('.slide-item').height('');
\$('.slide-item img')
.removeAttr('width')
.removeAttr('height')
.removeAttr('style');
};
var slickInitial = function(slick) {
\$('.ec-grid2__cell').fadeIn(1500);
var baseHeight = \$(slick.target).height();
var baseWidth = \$(slick.target).width();
var rate = baseWidth / baseHeight;
\$('.slide-item').height(baseHeight * rate); // 余白を削除する
// transform を使用することでCLSの影響を受けないようにする
\$('.slide-item img')
.css(
{
'transform-origin': 'top left',
'transform': 'scaleY(' + rate + ')',
'transition': 'transform .1s'
}
);
// 正しいサイズに近くなったら属性を解除する
setTimeout(removeSize, 500);
};
\$('.item_visual').on('init', slickInitial);
// リサイズ時は CLS の影響を受けないため属性を解除する
\$(window).resize(removeSize);
\$('.item_visual').slick({
dots: false,
arrows: false,
responsive: [{
breakpoint: 768,
settings: {
dots: true
}
}]
});
\$('.slideThumb').on('click', function() {
var index = \$(this).attr('data-index');
\$('.item_visual').slick('slickGoTo', index, false);
})
});
</script>
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
// console.log('set canvas image');
//
// const c = document.getElementById('uchiwaCanvas');
//
// c.toBlob(function(blob) {
// const imgFile = new File([blob], 'trimedfileupload.png', {type: \"image/png\"});
// const dt = new DataTransfer();
// dt.items.add(imgFile);
// const fileInput = document.getElementById(\"file\");
// fileInput.files = dt.files;
// });
// console.log('data is : ', c);
// const imgUrl = c.toDataURL();
// console.log('image is : ', imgUrl);
//
// let fd = new FormData(\$('#form1').get(0))
// fd.delete(\"file\")
// fd.append(\"file\", imgUrl )
// document.getElementById('file').value = imgUrl;
";
// line 260
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, false, 260)) {
// line 261
echo " // 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('";
// line 263
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
";
}
// line 269
echo "
";
// line 270
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, false, 270)) {
// line 271
echo " // 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('";
// line 273
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
";
}
// line 279
echo "
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('";
// line 282
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html", null, true);
echo "');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
const \$form = \$('#form1');
const formData = new FormData(\$form.get(0));
\$.ajax({
url: \$form.attr('action'),
type: \$form.attr('method'),
// data: \$form.serialize(),
data: formData,
processData: false,
// contentType: 'multipart/form-data',
contentType: false,
dataType: 'json',
// async: false,
beforeSend: function(xhr, settings) {
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
}
}).done(function(data) {
// レスポンス内のメッセージをalertで表示
\$.each(data.messages, function() {
\$('#ec-modal-header').text(this);
});
\$('.ec-modal').show()
// カートブロックを更新する
\$.ajax({
url: \"";
// line 315
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
echo "\",
type: 'GET',
dataType: 'html'
}).done(function(html) {
\$('.ec-headerRole__cart').html(html);
});
}).fail(function(data) {
alert('";
// line 322
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html", null, true);
echo "');
}).always(function(data) {
// Buttonを有効にする
\$('.add-cart').prop('disabled', false);
});
});
});
\$('.ec-modal-wrap').on('click', function(e) {
// モーダル内の処理は外側にバブリングさせない
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
const sheet_size = '";
// line 337
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 337, $this->source); })()), "sheet_size", [], "any", false, false, false, 337), "html", null, true);
echo "';
const decoration_type = '";
// line 338
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 338, $this->source); })()), "product_decoration_type", [], "any", false, false, false, 338), "html", null, true);
echo "'
</script>
<script type=\"application/ld+json\">
{
\"@context\": \"https://schema.org/\",
\"@type\": \"Product\",
\"name\": \"";
// line 347
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 347, $this->source); })()), "name", [], "any", false, false, false, 347), "html", null, true);
echo "\",
\"image\": [
";
// line 349
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 349, $this->source); })()), "ProductImage", [], "any", false, false, false, 349));
$context['_iterated'] = false;
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
// line 350
echo " \"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 350, $this->source); })()), "request", [], "any", false, false, false, 350), "schemeAndHttpHost", [], "any", false, false, false, 350), "html", null, true);
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html", null, true);
echo "\"";
if ( !twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, false, 350)) {
echo ",";
}
// line 351
echo "
";
$context['_iterated'] = true;
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
if (!$context['_iterated']) {
// line 353
echo " \"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 353, $this->source); })()), "request", [], "any", false, false, false, 353), "schemeAndHttpHost", [], "any", false, false, false, 353), "html", null, true);
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html", null, true);
echo "\"
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 355
echo " ],
\"description\": \"";
// line 356
echo twig_escape_filter($this->env, twig_slice($this->env, twig_replace_filter(((twig_get_attribute($this->env, $this->source, ($context["Product"] ?? null), "description_list", [], "any", true, true, false, 356)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["Product"] ?? null), "description_list", [], "any", false, false, false, 356), twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 356, $this->source); })()), "description_detail", [], "any", false, false, false, 356))) : (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 356, $this->source); })()), "description_detail", [], "any", false, false, false, 356))), ["
" => "", "
" => ""]), 0, 300), "html", null, true);
echo "\",
";
// line 357
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 357, $this->source); })()), "code_min", [], "any", false, false, false, 357)) {
// line 358
echo " \"sku\": \"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 358, $this->source); })()), "code_min", [], "any", false, false, false, 358), "html", null, true);
echo "\",
";
}
// line 360
echo " \"offers\": {
\"@type\": \"Offer\",
\"url\": \"";
// line 362
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 362, $this->source); })()), "id", [], "any", false, false, false, 362)]), "html", null, true);
echo "\",
\"priceCurrency\": \"";
// line 363
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config", $context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.', 363, $this->source); })()), "currency", [], "any", false, false, false, 363), "html", null, true);
echo "\",
\"price\": ";
// line 364
((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 364, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, false, 364)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 364, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, false, 364), "html", null, true))) : (print (0)));
echo ",
\"availability\": \"";
// line 365
echo ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 365, $this->source); })()), "stock_find", [], "any", false, false, false, 365)) ? ("InStock") : ("OutOfStock"));
echo "\"
}
}
</script>
<script async src=\"https://ga.jspm.io/npm:es-module-shims@1.6.2/dist/es-module-shims.js\"></script>
";
// line 381
echo "
<script src=\"https://cdn.jsdelivr.net/npm/vue@3.5.13/dist/vue.global.min.js\"></script>
<script src=\"https://cdn.jsdelivr.net/npm/vue3-sfc-loader/dist/vue3-sfc-loader.js\"></script>
<script src=\"https://cdn.jsdelivr.net/npm/vuetify@3.7.16/dist/vuetify.min.js\"></script>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 388
public function block_main($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
// line 389
echo " ";
$context["hasCategory"] = false;
// line 390
echo " ";
$context["hasFile"] = false;
// line 391
echo " ";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 391, $this->source); })()), "ProductCategories", [], "any", false, false, false, 391));
foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
// line 392
echo " ";
if (((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, false, 392), "id", [], "any", false, false, false, 392) == 8) || (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, false, 392), "id", [], "any", false, false, false, 392) == 20))) {
// line 393
echo " ";
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 393, $this->source); })()), "product_input_type", [], "any", false, false, false, 393) == "on")) {
// line 394
echo " ";
$context["hasCategory"] = true;
// line 395
echo " ";
}
// line 396
echo " ";
}
// line 397
echo " ";
if ((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, false, 397), "id", [], "any", false, false, false, 397) == 23)) {
// line 398
echo " ";
$context["hasFile"] = true;
// line 399
echo " ";
}
// line 400
echo " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 401
echo " <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,300..400,0..1,0&display=swap\" media=\"print\" onload=\"this.media='all'\">
<div class=\"ec-productRole\">
<div class=\"ec-grid2\">
<div class=\"ec-grid2__cell\">
<div class=\"product-image\">
";
// line 406
if (((isset($context["hasCategory"]) || array_key_exists("hasCategory", $context) ? $context["hasCategory"] : (function () { throw new RuntimeError('Variable "hasCategory" does not exist.', 406, $this->source); })()) == true)) {
// line 407
echo " <div id=\"app\"></div>
<div class=\"uchiwa_img_wrapper\" style=\"width:50%;margin: 20px\">
<canvas id=\"uchiwaCanvas\" class=\"img_canvas\" height=\"512\" width=\"512\"></canvas>
</div>
<div id=\"downloadSpinners\">
<svg class=\"q-spinner text-primary\" width=\"4em\" height=\"4em\" viewBox=\"0 0 38 38\"
xmlns=\"http://www.w3.org/2000/svg\">
<defs>
<linearGradient x1=\"8.042%\" y1=\"0%\" x2=\"65.682%\" y2=\"23.865%\" id=\"a\">
<stop stop-color=\"currentColor\" stop-opacity=\"0\" offset=\"0%\"></stop>
<stop stop-color=\"currentColor\" stop-opacity=\".631\" offset=\"63.146%\"></stop>
<stop stop-color=\"currentColor\" offset=\"100%\"></stop>
</linearGradient>
</defs>
<g transform=\"translate(1 1)\" fill=\"none\" fill-rule=\"evenodd\">
<path d=\"M36 18c0-9.94-8.06-18-18-18\" stroke=\"url(#a)\" stroke-width=\"2\">
<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\"
to=\"360 18 18\" dur=\"0.9s\"
repeatCount=\"indefinite\"></animateTransform>
</path>
<circle fill=\"currentColor\" cx=\"36\" cy=\"18\" r=\"1\">
<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\"
to=\"360 18 18\" dur=\"0.9s\"
repeatCount=\"indefinite\"></animateTransform>
</circle>
</g>
</svg><!----></div>
";
}
// line 435
echo " ";
// line 436
echo " ";
// line 437
echo " ";
// line 438
echo " ";
// line 439
echo " ";
// line 440
echo "
</div>
<div class=\"ec-sliderItemRole\">
";
// line 445
if (((isset($context["hasCategory"]) || array_key_exists("hasCategory", $context) ? $context["hasCategory"] : (function () { throw new RuntimeError('Variable "hasCategory" does not exist.', 445, $this->source); })()) == false)) {
// line 446
echo " <div class=\"item_visual\">
";
// line 447
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 447, $this->source); })()), "ProductImage", [], "any", false, false, false, 447));
$context['_iterated'] = false;
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
// line 448
echo " <div class=\"slide-item\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html", null, true);
echo "\"
alt=\"";
// line 449
((twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 449)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 449, $this->source); })()), "name", [], "any", false, false, false, 449), "html", null, true))) : (print ("")));
echo "\" width=\"550\"
height=\"550\"";
// line 450
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 450) > 1)) {
echo " loading=\"lazy\"";
}
echo ">
</div>
";
$context['_iterated'] = true;
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
if (!$context['_iterated']) {
// line 453
echo " <div class=\"slide-item\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html", null, true);
echo "\"
alt=\"";
// line 454
((twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 454)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 454, $this->source); })()), "name", [], "any", false, false, false, 454), "html", null, true))) : (print ("")));
echo "\" width=\"550\"
height=\"550\"></div>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 457
echo " </div>
<div class=\"item_nav\">
";
// line 459
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 459, $this->source); })()), "ProductImage", [], "any", false, false, false, 459));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
// line 460
echo " <div class=\"slideThumb\" data-index=\"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 460), "html", null, true);
echo "\"><img
src=\"";
// line 461
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html", null, true);
echo "\" alt=\"\" width=\"133\"
height=\"133\"
loading=\"lazy\"></div>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 465
echo " </div>
";
}
// line 467
echo " </div>
";
// line 469
if ((((isset($context["hasCategory"]) || array_key_exists("hasCategory", $context) ? $context["hasCategory"] : (function () { throw new RuntimeError('Variable "hasCategory" does not exist.', 469, $this->source); })()) == true) || ((isset($context["hasFile"]) || array_key_exists("hasFile", $context) ? $context["hasFile"] : (function () { throw new RuntimeError('Variable "hasFile" does not exist.', 469, $this->source); })()) == true))) {
// line 470
echo " <div style=\"margin-top: 120px;\">
";
// line 472
echo " ";
// line 473
echo " <h4>ご注意</h4>
<p class=\"text-announce\">実際の商品は、仕上がりイメージと若干異なる場合があります</p>
";
// line 475
if (((isset($context["hasCategory"]) || array_key_exists("hasCategory", $context) ? $context["hasCategory"] : (function () { throw new RuntimeError('Variable "hasCategory" does not exist.', 475, $this->source); })()) == true)) {
// line 476
echo " <p class=\"text-announce\">ひらがななどで全体が一枚でつながらない場合には、背景でつながるげることがあります</p>
";
}
// line 478
echo " </div>
<div>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_basic1.jpg\"
alt=\"カラー一覧\"><br>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_basic2.jpg\"
alt=\"カラー一覧\"><br>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_basic3.jpg\"
alt=\"カラー一覧\">
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_glitter1.jpg\"
alt=\"グリッターカラー一覧\"><br>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/use_font.jpg\"
alt=\"書体見本\">
</div>
";
}
// line 492
echo " </div>
<div class=\"ec-grid2__cell\">
<div class=\"ec-productRole__profile\">
";
// line 496
echo " <div class=\"ec-productRole__title\">
<h2 class=\"ec-headingTitle\">";
// line 497
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 497, $this->source); })()), "name", [], "any", false, false, false, 497), "html", null, true);
echo "</h2>
</div>
";
// line 501
echo " ";
// line 502
echo " ";
// line 503
echo " ";
// line 504
echo " ";
// line 505
echo " ";
// line 506
echo " ";
// line 507
echo " ";
// line 508
echo " ";
// line 509
echo " ";
// line 510
echo " ";
// line 511
echo " ";
// line 512
echo " ";
// line 513
echo " ";
// line 514
echo " ";
// line 515
echo " ";
// line 516
echo " ";
// line 517
echo " ";
// line 518
echo " ";
// line 519
echo " ";
// line 520
echo " ";
// line 521
echo " ";
// line 522
echo " ";
// line 523
echo " ";
// line 524
echo "
";
// line 526
echo " <ul class=\"ec-productRole__tags\">
";
// line 527
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 527, $this->source); })()), "Tags", [], "any", false, false, false, 527));
foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
// line 528
echo " <li class=\"ec-productRole__tag tag_";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Tag"], "id", [], "any", false, false, false, 528), "html", null, true);
echo "\">";
echo twig_escape_filter($this->env, $context["Tag"], "html", null, true);
echo "</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 530
echo " </ul>
";
// line 532
echo " ";
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 532, $this->source); })()), "hasProductClass", [], "any", false, false, false, 532)) {
// line 533
echo "<div class=\"ec-productRole__priceRegular\">
";
// line 534
if (( !(null === twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 534, $this->source); })()), "getPrice01Min", [], "any", false, false, false, 534)) && (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 534, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, false, 534) == twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 534, $this->source); })()), "getPrice01IncTaxMax", [], "any", false, false, false, 534)))) {
// line 535
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":<span
class=\"price01-default\">";
// line 536
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 536, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, false, 536)), "html", null, true);
echo "</span></span>
<span class=\"ec-productRole__priceRegularTax\">";
// line 537
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span>
";
} elseif (( !(null === twig_get_attribute($this->env, $this->source, // line 538
(isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 538, $this->source); })()), "getPrice01Min", [], "any", false, false, false, 538)) && !(null === twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 538, $this->source); })()), "getPrice01Max", [], "any", false, false, false, 538)))) {
// line 539
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":<span
class=\"price01-default\">";
// line 540
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 540, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, false, 540)), "html", null, true);
echo "~ ";
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 540, $this->source); })()), "getPrice01IncTaxMax", [], "any", false, false, false, 540)), "html", null, true);
echo "</span></span>
<span class=\"ec-productRole__priceRegularTax\">";
// line 541
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span>
";
}
// line 543
echo " </div>
";
} else {
// line 545
echo " ";
if ( !(null === twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 545, $this->source); })()), "getPrice01Max", [], "any", false, false, false, 545))) {
// line 546
echo " <span class=\"ec-productRole__priceRegularPrice\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html", null, true);
echo ":";
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 546, $this->source); })()), "getPrice01IncTaxMin", [], "any", false, false, false, 546)), "html", null, true);
echo "</span>
<span class=\"ec-productRole__priceRegularTax\">";
// line 547
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span>
";
}
// line 549
echo " ";
}
// line 550
echo " ";
// line 551
echo " <div class=\"ec-productRole__price\">
";
// line 552
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 552, $this->source); })()), "hasProductClass", [], "any", false, false, false, 552)) {
// line 553
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 553, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, false, 553) == twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 553, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, false, 553))) {
// line 554
echo " <div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">";
// line 555
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 555, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, false, 555)), "html", null, true);
echo "</span>
<span class=\"ec-price__tax\">";
// line 556
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span>
</div>
";
} else {
// line 559
echo " <div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">";
// line 560
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 560, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, false, 560)), "html", null, true);
echo " ~ ";
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 560, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, false, 560)), "html", null, true);
echo "</span>
<span class=\"ec-price__tax\">";
// line 561
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span>
</div>
";
}
// line 564
echo " ";
} else {
// line 565
echo " <div class=\"ec-price\">
<span class=\"ec-price__price\">";
// line 566
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 566, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, false, 566)), "html", null, true);
echo "</span>
<span class=\"ec-price__tax\">";
// line 567
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span>
</div>
";
}
// line 570
echo " </div>
";
// line 572
echo " ";
if ( !twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 572, $this->source); })()), "code_min", [], "any", false, false, false, 572))) {
// line 573
echo " <div class=\"ec-productRole__code\">
";
// line 574
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html", null, true);
echo ": <span
class=\"product-code-default\">";
// line 575
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 575, $this->source); })()), "code_min", [], "any", false, false, false, 575), "html", null, true);
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 575, $this->source); })()), "code_min", [], "any", false, false, false, 575) != twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 575, $this->source); })()), "code_max", [], "any", false, false, false, 575))) {
echo " ~ ";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 575, $this->source); })()), "code_max", [], "any", false, false, false, 575), "html", null, true);
}
echo "</span>
</div>
";
}
// line 578
echo " ";
// line 579
echo " ";
if ( !twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 579, $this->source); })()), "ProductCategories", [], "any", false, false, false, 579))) {
// line 580
echo " <div class=\"ec-productRole__category\">
<div>";
// line 581
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("関連カテゴリ"), "html", null, true);
echo "</div>
";
// line 582
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 582, $this->source); })()), "ProductCategories", [], "any", false, false, false, 582));
foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
// line 583
echo " <ul>
<li>
";
// line 585
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, false, 585), "path", [], "any", false, false, false, 585));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["Category"]) {
// line 586
echo " <a href=\"";
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
echo "?category_id=";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Category"], "id", [], "any", false, false, false, 586), "html", null, true);
echo "\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["Category"], "name", [], "any", false, false, false, 586), "html", null, true);
echo "</a>";
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, false, 586) == false)) {
// line 587
echo " <span>></span>";
}
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 589
echo " </li>
</ul>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 592
echo " </div>
";
}
// line 594
echo " <form action=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_cart", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 594, $this->source); })()), "id", [], "any", false, false, false, 594)]), "html", null, true);
echo "\" method=\"post\" id=\"form1\" name=\"form1\"
enctype=\"multipart/form-data\">
";
// line 596
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 596, $this->source); })()), "stock_find", [], "any", false, false, false, 596)) {
// line 597
echo " <div class=\"ec-productRole__actions\">
";
// line 598
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, false, 598)) {
// line 599
echo " <div class=\"ec-select\">
";
// line 600
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 600, $this->source); })()), "classcategory_id1", [], "any", false, false, false, 600), 'row');
echo "
";
// line 601
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 601, $this->source); })()), "classcategory_id1", [], "any", false, false, false, 601), 'errors');
echo "
</div>
";
// line 603
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, false, 603)) {
// line 604
echo " <div class=\"ec-select\">
";
// line 605
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 605, $this->source); })()), "classcategory_id2", [], "any", false, false, false, 605), 'row');
echo "
";
// line 606
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 606, $this->source); })()), "classcategory_id2", [], "any", false, false, false, 606), 'errors');
echo "
</div>
";
}
// line 609
echo " ";
}
// line 610
echo "
</div>
";
// line 617
echo "
";
// line 618
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock((isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 618, $this->source); })()), 'rest');
echo "
<div class=\"ec-productRole__btn\">
<button id=\"add-cart-button\" type=\"submit\" class=\"ec-blockBtn--action add-cart\"
disabled>
";
// line 623
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html", null, true);
echo "
</button>
</div>
";
} else {
// line 627
echo " <div class=\"ec-productRole__btn\">
<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
";
// line 629
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html", null, true);
echo "
</button>
</div>
";
}
// line 633
echo " ";
// line 634
echo " </form>
<div class=\"ec-modal\">
<div class=\"ec-modal-overlay\">
<div class=\"ec-modal-wrap\">
<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img
src=\"";
// line 639
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html", null, true);
echo "\" alt=\"\"/></span></span>
<div id=\"ec-modal-header\" class=\"text-center\">";
// line 640
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html", null, true);
echo "</div>
<div class=\"ec-modal-box\">
<div class=\"ec-role\">
<span class=\"ec-inlineBtn--cancel\">";
// line 643
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html", null, true);
echo "</span>
<a href=\"";
// line 644
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
echo "\"
class=\"ec-inlineBtn--action\">";
// line 645
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html", null, true);
echo "</a>
</div>
</div>
</div>
</div>
</div>
";
// line 651
if (twig_get_attribute($this->env, $this->source, (isset($context["BaseInfo"]) || array_key_exists("BaseInfo", $context) ? $context["BaseInfo"] : (function () { throw new RuntimeError('Variable "BaseInfo" does not exist.', 651, $this->source); })()), "option_favorite_product", [], "any", false, false, false, 651)) {
// line 652
echo " <form action=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_favorite", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 652, $this->source); })()), "id", [], "any", false, false, false, 652)]), "html", null, true);
echo "\" method=\"post\">
<div class=\"ec-productRole__btn\">
";
// line 654
if (((isset($context["is_favorite"]) || array_key_exists("is_favorite", $context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.', 654, $this->source); })()) == false)) {
// line 655
echo " <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--action\">
";
// line 656
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html", null, true);
echo "
</button>
";
} else {
// line 659
echo " <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--action\"
disabled=\"disabled\">";
// line 660
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html", null, true);
echo "
</button>
";
}
// line 663
echo " </div>
</form>
";
}
// line 666
echo " <div class=\"ec-productRole__description\">";
echo twig_nl2br(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 666, $this->source); })()), "description_detail", [], "any", false, false, false, 666));
echo "
</div>
</div>
</div>
</div>
";
// line 671
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 671, $this->source); })()), "freearea", [], "any", false, false, false, 671)) {
// line 672
echo " <div class=\"ec-productRole__description\">
";
// line 673
echo twig_include($this->env, $context, twig_template_from_string($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 673, $this->source); })()), "freearea", [], "any", false, false, false, 673)));
echo "
</div>
";
}
// line 676
echo " </div>
";
// line 679
if (((isset($context["hasCategory"]) || array_key_exists("hasCategory", $context) ? $context["hasCategory"] : (function () { throw new RuntimeError('Variable "hasCategory" does not exist.', 679, $this->source); })()) == true)) {
// line 680
echo " <script>
const sheetSize = \"";
// line 681
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 681, $this->source); })()), "sheet_size", [], "any", false, false, false, 681), "html", null, true);
echo "\";
";
// line 683
echo " // https://mirai-kanban.com/ecshop/html/user_data/assets/js/test2.html
const product_color_type1 = '";
// line 684
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 684, $this->source); })()), "product_color_type1", [], "any", false, false, false, 684), "html", null, true);
echo "'
const product_color_type2 = '";
// line 685
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 685, $this->source); })()), "product_color_type2", [], "any", false, false, false, 685), "html", null, true);
echo "'
if (\$('select#classcategory_id2').length > 0) {
console.log('cat 2', \$('select#classcategory_id2'))
\$('select#classcategory_id1 option:nth-child(2)').prop('selected', true);
}
// \$('select#classcategory_id1').trigger('change');
// subChange();
// function subChange() {
// const myData = \$('select#classcategory_id1');
// const \$form = \$('form#form1');
// // var \$form = myData.parents('form');
// var product_id = \$form.find('input[name=product_id]').val();
// var \$sele1 = myData;
// var \$sele2 = \$form.find('select[name=classcategory_id2]');
//
// // 規格1のみの場合
// if (!\$sele2.length) {
// eccube.checkStock(\$form, product_id, \$sele1.val(), null);
// // 規格2ありの場合
// } else {
// eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2);
// }
// }
</script>
<script src=\"";
// line 715
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/mirai.js"), "html", null, true);
echo "\"></script>
<script type=\"module\">
// import { createApp, defineAsyncComponent } from 'vue';
// import { createVuetify } from 'vuetify';
// import {loadModule} from 'vue3-sfc-loader';
// const { loadModule } = window['vue3-sfc-loader'];
// console.log('load modules');
// import {createVuetify} from 'vuetify'
// import { md2 } from 'vuetify/blueprints'
const vue3_sfc_loader_options = {
moduleCache: { vue: Vue, vuetify: Vuetify.vuetify },
getFile(url) {
url = /.*?.js|.mjs|.css|.less|.vue\$/.test(url)
? url
: `\${url}.vue`;
const type = /.*?.js|.mjs\$/.test(url)
? \".mjs\"
: /.*?.vue\$/.test(url)
? \".vue\"
: /.*?.css\$/.test(url)
? \".css\"
: \".vue\";
const getContentData = (asBinary) =>
fetch(url).then((res) =>
!res.ok
? Promise.reject(url)
: asBinary
? res.arrayBuffer()
: res.text()
);
return { getContentData: getContentData, type: type };
},
addStyle(textContent) {
let styleElement = document.createElement(\"style\");
document.head.insertBefore(
Object.assign(styleElement, { textContent }),
document.head.getElementsByTagName(\"style\")[0] || null
);
},
handleModule(type, getContentData, path, options) {
switch (type) {
case \".css\":
return options.addStyle(getContentData(false));
case \".less\":
console.error(\".......\");
}
},
log(type, ...args) {
console.log(type, ...args);
},
};
const { loadModule } = window[\"vue3-sfc-loader\"];
const app = Vue.createApp(
Vue.defineAsyncComponent(
() => loadModule(\"";
// line 772
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vue/main.vue"), "html", null, true);
echo "\", vue3_sfc_loader_options)
),
)
// ";
// line 775
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vue/main.vue"), "html", null, true);
echo "
console.log('start vue');
// const vuetify = createVuetify();
// const app = createApp({
// components: {
// 'my-component': defineAsyncComponent(() =>
// loadModule(
// \"assets/vue/main.vue\",
// vue3_sfc_loader_options
// )
// ),
// },
// template: `<my-component />`,
// });
const { createVuetify } = Vuetify;
const vuetify = createVuetify({
theme: {
defaultTheme: 'light'
},
// blueprint: md2,
});
app.use(vuetify);
app.mount('#app');
</script>
<script type=\"module\">
";
// line 802
echo " ";
// line 803
echo " ";
// line 804
echo "
";
// line 806
echo " ";
// line 807
echo " ";
// line 808
echo " ";
// line 809
echo "
// var vue = new Vue({
// el: '#app',
// components: {
// 'vc-main-1': httpVueLoader('assets/vue/main.vue')
// }
// });
</script>
";
} else {
// line 818
echo " <script>
\$('#add-cart-button').prop('disabled', false)
</script>
";
}
// line 822
echo "
<script>
\$('label[for=quantity]').text('数量')
</script>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
public function getTemplateName()
{
return "Product/detail.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 1479 => 822, 1473 => 818, 1462 => 809, 1460 => 808, 1458 => 807, 1456 => 806, 1453 => 804, 1451 => 803, 1449 => 802, 1420 => 775, 1414 => 772, 1354 => 715, 1321 => 685, 1317 => 684, 1314 => 683, 1310 => 681, 1307 => 680, 1305 => 679, 1300 => 676, 1294 => 673, 1291 => 672, 1289 => 671, 1280 => 666, 1275 => 663, 1269 => 660, 1266 => 659, 1260 => 656, 1257 => 655, 1255 => 654, 1249 => 652, 1247 => 651, 1238 => 645, 1234 => 644, 1230 => 643, 1224 => 640, 1220 => 639, 1213 => 634, 1211 => 633, 1204 => 629, 1200 => 627, 1193 => 623, 1185 => 618, 1182 => 617, 1176 => 610, 1173 => 609, 1167 => 606, 1163 => 605, 1160 => 604, 1158 => 603, 1153 => 601, 1149 => 600, 1146 => 599, 1144 => 598, 1141 => 597, 1139 => 596, 1133 => 594, 1129 => 592, 1121 => 589, 1106 => 587, 1097 => 586, 1080 => 585, 1076 => 583, 1072 => 582, 1068 => 581, 1065 => 580, 1062 => 579, 1060 => 578, 1050 => 575, 1046 => 574, 1043 => 573, 1040 => 572, 1037 => 570, 1031 => 567, 1027 => 566, 1024 => 565, 1021 => 564, 1015 => 561, 1009 => 560, 1006 => 559, 1000 => 556, 996 => 555, 993 => 554, 991 => 553, 989 => 552, 986 => 551, 984 => 550, 981 => 549, 976 => 547, 969 => 546, 966 => 545, 962 => 543, 957 => 541, 951 => 540, 946 => 539, 944 => 538, 940 => 537, 936 => 536, 931 => 535, 929 => 534, 926 => 533, 923 => 532, 920 => 530, 909 => 528, 905 => 527, 902 => 526, 899 => 524, 897 => 523, 895 => 522, 893 => 521, 891 => 520, 889 => 519, 887 => 518, 885 => 517, 883 => 516, 881 => 515, 879 => 514, 877 => 513, 875 => 512, 873 => 511, 871 => 510, 869 => 509, 867 => 508, 865 => 507, 863 => 506, 861 => 505, 859 => 504, 857 => 503, 855 => 502, 853 => 501, 847 => 497, 844 => 496, 839 => 492, 823 => 478, 819 => 476, 817 => 475, 813 => 473, 811 => 472, 808 => 470, 806 => 469, 802 => 467, 798 => 465, 780 => 461, 775 => 460, 758 => 459, 754 => 457, 745 => 454, 740 => 453, 722 => 450, 718 => 449, 713 => 448, 695 => 447, 692 => 446, 690 => 445, 683 => 440, 681 => 439, 679 => 438, 677 => 437, 675 => 436, 673 => 435, 643 => 407, 641 => 406, 634 => 401, 628 => 400, 625 => 399, 622 => 398, 619 => 397, 616 => 396, 613 => 395, 610 => 394, 607 => 393, 604 => 392, 599 => 391, 596 => 390, 593 => 389, 583 => 388, 568 => 381, 559 => 365, 555 => 364, 551 => 363, 547 => 362, 543 => 360, 537 => 358, 535 => 357, 530 => 356, 527 => 355, 517 => 353, 503 => 351, 495 => 350, 477 => 349, 472 => 347, 460 => 338, 456 => 337, 438 => 322, 428 => 315, 392 => 282, 387 => 279, 378 => 273, 374 => 271, 372 => 270, 369 => 269, 360 => 263, 356 => 261, 354 => 260, 267 => 175, 259 => 173, 257 => 172, 252 => 170, 249 => 169, 247 => 168, 233 => 157, 230 => 156, 220 => 155, 207 => 150, 73 => 16, 63 => 15, 52 => 11, 50 => 13, 37 => 11,);
}
public function getSourceContext()
{
return new Source("{#
This file is part of EC-CUBE
Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
http://www.ec-cube.co.jp/
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
#}
{% extends 'default_frame.twig' %}
{% set body_class = 'product_page' %}
{% block stylesheet %}
<style>
.slick-slider {
margin-bottom: 30px;
}
.slick-dots {
position: absolute;
bottom: -45px;
display: block;
width: 100%;
padding: 0;
list-style: none;
text-align: center;
}
.slick-dots li {
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
content: \" \";
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 12px;
height: 12px;
text-align: center;
opacity: .25;
background-color: black;
border-radius: 50%;
}
.slick-dots li.slick-active button:before {
opacity: .75;
background-color: black;
}
.slick-dots li button.thumbnail img {
width: 0;
height: 0;
}
#form1 > .mb-3 {
visibility: hidden;
height:0;
}
form#form1 > div.mb-3:nth-child(4) {
visibility: visible;
height: auto;
}
/*#form1 > div:nth-child(14) {*/
/* visibility: hidden;*/
/*}*/
#downloadSpinners {
display: block;
position: absolute;
left: 256px;
top: 256px;
}
#uchiwaCanvas {
background-color: #cccccc;
width: 90vW;
max-width: 512px;
margin-left: -20px;
}
.text-announce {
color: #ff0000;
font-weight: bold;
}
button#add-cart-button {
/*background-color:#ffffff;*/
color:#ffffff;
}
button#favorite {
background-color:#ffff00;
color:#666666;
border: 1px solid #aaaaaa;
}
button#favorite:hover {
background-color:#e6e600;
/*color:#000000;*/
}
@media (min-width: 768px) and (max-width: 1070px) {
#uchiwaCanvas {
width: 45vW;
}
}
</style>
{# <link href=\"https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css\" rel=\"stylesheet\">#}
{# <link href=\"https://cdn.jsdelivr.net/npm/vuetify@3.0/dist/vuetify.min.css\" rel=\"stylesheet\">#}
<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/vuetify@3.7.16/dist/vuetify.min.css\" />
<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css\" />
<link rel=\"stylesheet\" href=\"https://fonts.bunny.net/css?family=roboto:400,500,700\" />
{% endblock %}
{% block javascript %}
<script>
eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
{% if form.classcategory_id2 is defined %}
fnSetClassCategories(
\$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
);
{% elseif form.classcategory_id1 is defined %}
eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
{% endif %}
</script>
<script>
\$(function() {
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
// Core Web Vital の Cumulative Layout Shift(CLS)対策のため
// img タグに width, height が付与されている.
// 630px 未満の画面サイズでは縦横比が壊れるための対策
// see https://github.com/EC-CUBE/ec-cube/pull/5023
// \$('.ec-grid2__cell').hide();
var removeSize = function () {
\$('.slide-item').height('');
\$('.slide-item img')
.removeAttr('width')
.removeAttr('height')
.removeAttr('style');
};
var slickInitial = function(slick) {
\$('.ec-grid2__cell').fadeIn(1500);
var baseHeight = \$(slick.target).height();
var baseWidth = \$(slick.target).width();
var rate = baseWidth / baseHeight;
\$('.slide-item').height(baseHeight * rate); // 余白を削除する
// transform を使用することでCLSの影響を受けないようにする
\$('.slide-item img')
.css(
{
'transform-origin': 'top left',
'transform': 'scaleY(' + rate + ')',
'transition': 'transform .1s'
}
);
// 正しいサイズに近くなったら属性を解除する
setTimeout(removeSize, 500);
};
\$('.item_visual').on('init', slickInitial);
// リサイズ時は CLS の影響を受けないため属性を解除する
\$(window).resize(removeSize);
\$('.item_visual').slick({
dots: false,
arrows: false,
responsive: [{
breakpoint: 768,
settings: {
dots: true
}
}]
});
\$('.slideThumb').on('click', function() {
var index = \$(this).attr('data-index');
\$('.item_visual').slick('slickGoTo', index, false);
})
});
</script>
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
// console.log('set canvas image');
//
// const c = document.getElementById('uchiwaCanvas');
//
// c.toBlob(function(blob) {
// const imgFile = new File([blob], 'trimedfileupload.png', {type: \"image/png\"});
// const dt = new DataTransfer();
// dt.items.add(imgFile);
// const fileInput = document.getElementById(\"file\");
// fileInput.files = dt.files;
// });
// console.log('data is : ', c);
// const imgUrl = c.toDataURL();
// console.log('image is : ', imgUrl);
//
// let fd = new FormData(\$('#form1').get(0))
// fd.delete(\"file\")
// fd.append(\"file\", imgUrl )
// document.getElementById('file').value = imgUrl;
{% if form.classcategory_id1 is defined %}
// 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
{% endif %}
{% if form.classcategory_id2 is defined %}
// 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
{% endif %}
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
const \$form = \$('#form1');
const formData = new FormData(\$form.get(0));
\$.ajax({
url: \$form.attr('action'),
type: \$form.attr('method'),
// data: \$form.serialize(),
data: formData,
processData: false,
// contentType: 'multipart/form-data',
contentType: false,
dataType: 'json',
// async: false,
beforeSend: function(xhr, settings) {
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
}
}).done(function(data) {
// レスポンス内のメッセージをalertで表示
\$.each(data.messages, function() {
\$('#ec-modal-header').text(this);
});
\$('.ec-modal').show()
// カートブロックを更新する
\$.ajax({
url: \"{{ url('block_cart') }}\",
type: 'GET',
dataType: 'html'
}).done(function(html) {
\$('.ec-headerRole__cart').html(html);
});
}).fail(function(data) {
alert('{{ 'カートへの追加に失敗しました。'|trans }}');
}).always(function(data) {
// Buttonを有効にする
\$('.add-cart').prop('disabled', false);
});
});
});
\$('.ec-modal-wrap').on('click', function(e) {
// モーダル内の処理は外側にバブリングさせない
e.stopPropagation();
});
\$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
const sheet_size = '{{ Product.sheet_size }}';
const decoration_type = '{{ Product.product_decoration_type }}'
</script>
<script type=\"application/ld+json\">
{
\"@context\": \"https://schema.org/\",
\"@type\": \"Product\",
\"name\": \"{{ Product.name }}\",
\"image\": [
{% for img in Product.ProductImage %}
\"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
{% else %}
\"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
{% endfor %}
],
\"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
{% if Product.code_min %}
\"sku\": \"{{ Product.code_min }}\",
{% endif %}
\"offers\": {
\"@type\": \"Offer\",
\"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
\"priceCurrency\": \"{{ eccube_config.currency }}\",
\"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
\"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
}
}
</script>
<script async src=\"https://ga.jspm.io/npm:es-module-shims@1.6.2/dist/es-module-shims.js\"></script>
{#<script type=\"importmap\">#}
{# {#}
{# \"imports\": {#}
{# \"vue\": \"https://cdn.jsdelivr.net/npm/vue@3.5.13/dist/vue.esm-browser.js\",#}
{#\t \"vuetify\": \"https://cdn.jsdelivr.net/npm/vuetify@3.7.12/dist/vuetify.esm.js\"#}
{# }#}
{# }#}
{#</script>#}
{#<script src=\"https://unpkg.com/http-vue-loader\"></script>#}
{#<script src=\"https://cdn.jsdelivr.net/npm/vue3-sfc-loader@0.9.5/dist/vue3-sfc-loader.min.js\"></script>#}
<script src=\"https://cdn.jsdelivr.net/npm/vue@3.5.13/dist/vue.global.min.js\"></script>
<script src=\"https://cdn.jsdelivr.net/npm/vue3-sfc-loader/dist/vue3-sfc-loader.js\"></script>
<script src=\"https://cdn.jsdelivr.net/npm/vuetify@3.7.16/dist/vuetify.min.js\"></script>
{% endblock %}
{% block main %}
{% set hasCategory = false %}
{% set hasFile = false %}
{% for ProductCategory in Product.ProductCategories %}
{% if ProductCategory.Category.id == 8 or ProductCategory.Category.id == 20 %}
{% if Product.product_input_type == 'on' %}
{% set hasCategory = true %}
{% endif %}
{% endif %}
{% if ProductCategory.Category.id == 23 %}
{% set hasFile = true %}
{% endif %}
{% endfor %}
<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,300..400,0..1,0&display=swap\" media=\"print\" onload=\"this.media='all'\">
<div class=\"ec-productRole\">
<div class=\"ec-grid2\">
<div class=\"ec-grid2__cell\">
<div class=\"product-image\">
{% if hasCategory == true %}
<div id=\"app\"></div>
<div class=\"uchiwa_img_wrapper\" style=\"width:50%;margin: 20px\">
<canvas id=\"uchiwaCanvas\" class=\"img_canvas\" height=\"512\" width=\"512\"></canvas>
</div>
<div id=\"downloadSpinners\">
<svg class=\"q-spinner text-primary\" width=\"4em\" height=\"4em\" viewBox=\"0 0 38 38\"
xmlns=\"http://www.w3.org/2000/svg\">
<defs>
<linearGradient x1=\"8.042%\" y1=\"0%\" x2=\"65.682%\" y2=\"23.865%\" id=\"a\">
<stop stop-color=\"currentColor\" stop-opacity=\"0\" offset=\"0%\"></stop>
<stop stop-color=\"currentColor\" stop-opacity=\".631\" offset=\"63.146%\"></stop>
<stop stop-color=\"currentColor\" offset=\"100%\"></stop>
</linearGradient>
</defs>
<g transform=\"translate(1 1)\" fill=\"none\" fill-rule=\"evenodd\">
<path d=\"M36 18c0-9.94-8.06-18-18-18\" stroke=\"url(#a)\" stroke-width=\"2\">
<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\"
to=\"360 18 18\" dur=\"0.9s\"
repeatCount=\"indefinite\"></animateTransform>
</path>
<circle fill=\"currentColor\" cx=\"36\" cy=\"18\" r=\"1\">
<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\"
to=\"360 18 18\" dur=\"0.9s\"
repeatCount=\"indefinite\"></animateTransform>
</circle>
</g>
</svg><!----></div>
{% endif %}
{# {{ dump(Product) }} #}
{# {{ dump(form) }} #}
{# {% for choice in form.order_color1.choices %} #}
{# {{ dump(choice) }} #}
{# {% endfor %} #}
</div>
<div class=\"ec-sliderItemRole\">
{% if hasCategory == false %}
<div class=\"item_visual\">
{% for ProductImage in Product.ProductImage %}
<div class=\"slide-item\"><img src=\"{{ asset(ProductImage, 'save_image') }}\"
alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\"
height=\"550\"{% if loop.index > 1 %} loading=\"lazy\"{% endif %}>
</div>
{% else %}
<div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\"
alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\"
height=\"550\"></div>
{% endfor %}
</div>
<div class=\"item_nav\">
{% for ProductImage in Product.ProductImage %}
<div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img
src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\" width=\"133\"
height=\"133\"
loading=\"lazy\"></div>
{% endfor %}
</div>
{% endif %}
</div>
{% if hasCategory == true or hasFile == true %}
<div style=\"margin-top: 120px;\">
{# <p class=\"text-announce\">右側の項目でうちわのシミュレーションが確認できます。</p>#}
{# <p>上の文字と下の文字は空白で左右の位置を調整できます<br>(スペースで左右の位置を調整できます)</p> #}
<h4>ご注意</h4>
<p class=\"text-announce\">実際の商品は、仕上がりイメージと若干異なる場合があります</p>
{% if hasCategory == true %}
<p class=\"text-announce\">ひらがななどで全体が一枚でつながらない場合には、背景でつながるげることがあります</p>
{% endif %}
</div>
<div>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_basic1.jpg\"
alt=\"カラー一覧\"><br>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_basic2.jpg\"
alt=\"カラー一覧\"><br>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_basic3.jpg\"
alt=\"カラー一覧\">
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/color_glitter1.jpg\"
alt=\"グリッターカラー一覧\"><br>
<img class=\"material__img\" src=\"/ecshop/html/user_data/assets/img/material/use_font.jpg\"
alt=\"書体見本\">
</div>
{% endif %}
</div>
<div class=\"ec-grid2__cell\">
<div class=\"ec-productRole__profile\">
{# 商品名 #}
<div class=\"ec-productRole__title\">
<h2 class=\"ec-headingTitle\">{{ Product.name }}</h2>
</div>
{# <div style=\"width: 50%;margin: 20px;display:none;\"> #}
{# <input type=\"text\" id=\"uchiwa_up_text\" name=\"uchiwa_up_text\" value=\"未来\"/><br/> #}
{# <input type=\"text\" id=\"uchiwa_main_text\" name=\"uchiwa_main_text\" value=\"看\" #}
{# style=\"width:100%;\"/><br> #}
{# <input type=\"text\" id=\"uchiwa_low_text\" name=\"uchiwa_lo_text\" value=\"板\"/><br/> #}
{# <button id=\"uchiwa_set\" type=\"button\">再作画</button> #}
{# <br/> #}
{# 一番外側の色: #}
{# <select id=\"uchiwa_back_color1\" name=\"back_color1\"> #}
{# </select> #}
{# <br/> #}
{# フチの外枠: #}
{# <select id=\"uchiwa_back_color2\" name=\"back_color2\"> #}
{# </select> #}
{# <br/> #}
{# フチの中: #}
{# <select id=\"uchiwa_back_color3\" name=\"back_color3\"> #}
{# </select> #}
{# <br/> #}
{# 文字の色: #}
{# <select id=\"uchiwa_back_color4\" name=\"back_color4\"> #}
{# </select> #}
{# <br/> #}
{# </div> #}
{# タグ #}
<ul class=\"ec-productRole__tags\">
{% for Tag in Product.Tags %}
<li class=\"ec-productRole__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
{% endfor %}
</ul>
{# 通常価格 #}
{% if Product.hasProductClass -%}
<div class=\"ec-productRole__priceRegular\">
{% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span
class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}</span></span>
<span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
{% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span
class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}~ {{ Product.getPrice01IncTaxMax|price }}</span></span>
<span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
{% endif %}
</div>
{% else %}
{% if Product.getPrice01Max is not null %}
<span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:{{ Product.getPrice01IncTaxMin|price }}</span>
<span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
{% endif %}
{% endif %}
{# 販売価格 #}
<div class=\"ec-productRole__price\">
{% if Product.hasProductClass -%}
{% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
<div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span>
<span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
</div>
{% else %}
<div class=\"ec-price\">
<span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span>
<span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
</div>
{% endif %}
{% else %}
<div class=\"ec-price\">
<span class=\"ec-price__price\">{{ Product.getPrice02IncTaxMin|price }}</span>
<span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
</div>
{% endif %}
</div>
{# 商品コード #}
{% if Product.code_min is not empty %}
<div class=\"ec-productRole__code\">
{{ '商品コード'|trans }}: <span
class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
</div>
{% endif %}
{# 関連カテゴリ #}
{% if Product.ProductCategories is not empty %}
<div class=\"ec-productRole__category\">
<div>{{ '関連カテゴリ'|trans }}</div>
{% for ProductCategory in Product.ProductCategories %}
<ul>
<li>
{% for Category in ProductCategory.Category.path %}
<a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">{{ Category.name }}</a> {%- if loop.last == false %}
<span>></span>{% endif -%}
{% endfor %}
</li>
</ul>
{% endfor %}
</div>
{% endif %}
<form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\"
enctype=\"multipart/form-data\">
{% if Product.stock_find %}
<div class=\"ec-productRole__actions\">
{% if form.classcategory_id1 is defined %}
<div class=\"ec-select\">
{{ form_row(form.classcategory_id1) }}
{{ form_errors(form.classcategory_id1) }}
</div>
{% if form.classcategory_id2 is defined %}
<div class=\"ec-select\">
{{ form_row(form.classcategory_id2) }}
{{ form_errors(form.classcategory_id2) }}
</div>
{% endif %}
{% endif %}
</div>
{# {% if hasFile %}#}
{# <input type=\"file\" id=\"file\" name=\"file\" class=\"form-control\">#}
{# {% endif %}#}
{{ form_rest(form) }}
<div class=\"ec-productRole__btn\">
<button id=\"add-cart-button\" type=\"submit\" class=\"ec-blockBtn--action add-cart\"
disabled>
{{ 'カートに入れる'|trans }}
</button>
</div>
{% else %}
<div class=\"ec-productRole__btn\">
<button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
{{ 'ただいま品切れ中です。'|trans }}
</button>
</div>
{% endif %}
{# <div style=\"display: none\"><input type=\"text\" name=\"file\" id=\"image_file\"></div> #}
</form>
<div class=\"ec-modal\">
<div class=\"ec-modal-overlay\">
<div class=\"ec-modal-wrap\">
<span class=\"ec-modal-close\"><span class=\"ec-icon\"><img
src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
<div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
<div class=\"ec-modal-box\">
<div class=\"ec-role\">
<span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
<a href=\"{{ url('cart') }}\"
class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
</div>
</div>
</div>
</div>
</div>
{% if BaseInfo.option_favorite_product %}
<form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
<div class=\"ec-productRole__btn\">
{% if is_favorite == false %}
<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--action\">
{{ 'お気に入りに追加'|trans }}
</button>
{% else %}
<button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--action\"
disabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
</button>
{% endif %}
</div>
</form>
{% endif %}
<div class=\"ec-productRole__description\">{{ Product.description_detail|raw|nl2br }}
</div>
</div>
</div>
</div>
{% if Product.freearea %}
<div class=\"ec-productRole__description\">
{{ include(template_from_string(Product.freearea)) }}
</div>
{% endif %}
</div>
{% if hasCategory == true %}
<script>
const sheetSize = \"{{ Product.sheet_size }}\";
{#console.log('product test', \"{{ Product.sheet_size }}\" )#}
// https://mirai-kanban.com/ecshop/html/user_data/assets/js/test2.html
const product_color_type1 = '{{ Product.product_color_type1 }}'
const product_color_type2 = '{{ Product.product_color_type2 }}'
if (\$('select#classcategory_id2').length > 0) {
console.log('cat 2', \$('select#classcategory_id2'))
\$('select#classcategory_id1 option:nth-child(2)').prop('selected', true);
}
// \$('select#classcategory_id1').trigger('change');
// subChange();
// function subChange() {
// const myData = \$('select#classcategory_id1');
// const \$form = \$('form#form1');
// // var \$form = myData.parents('form');
// var product_id = \$form.find('input[name=product_id]').val();
// var \$sele1 = myData;
// var \$sele2 = \$form.find('select[name=classcategory_id2]');
//
// // 規格1のみの場合
// if (!\$sele2.length) {
// eccube.checkStock(\$form, product_id, \$sele1.val(), null);
// // 規格2ありの場合
// } else {
// eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2);
// }
// }
</script>
<script src=\"{{ asset('assets/js/mirai.js') }}\"></script>
<script type=\"module\">
// import { createApp, defineAsyncComponent } from 'vue';
// import { createVuetify } from 'vuetify';
// import {loadModule} from 'vue3-sfc-loader';
// const { loadModule } = window['vue3-sfc-loader'];
// console.log('load modules');
// import {createVuetify} from 'vuetify'
// import { md2 } from 'vuetify/blueprints'
const vue3_sfc_loader_options = {
moduleCache: { vue: Vue, vuetify: Vuetify.vuetify },
getFile(url) {
url = /.*?.js|.mjs|.css|.less|.vue\$/.test(url)
? url
: `\${url}.vue`;
const type = /.*?.js|.mjs\$/.test(url)
? \".mjs\"
: /.*?.vue\$/.test(url)
? \".vue\"
: /.*?.css\$/.test(url)
? \".css\"
: \".vue\";
const getContentData = (asBinary) =>
fetch(url).then((res) =>
!res.ok
? Promise.reject(url)
: asBinary
? res.arrayBuffer()
: res.text()
);
return { getContentData: getContentData, type: type };
},
addStyle(textContent) {
let styleElement = document.createElement(\"style\");
document.head.insertBefore(
Object.assign(styleElement, { textContent }),
document.head.getElementsByTagName(\"style\")[0] || null
);
},
handleModule(type, getContentData, path, options) {
switch (type) {
case \".css\":
return options.addStyle(getContentData(false));
case \".less\":
console.error(\".......\");
}
},
log(type, ...args) {
console.log(type, ...args);
},
};
const { loadModule } = window[\"vue3-sfc-loader\"];
const app = Vue.createApp(
Vue.defineAsyncComponent(
() => loadModule(\"{{ asset('assets/vue/main.vue') }}\", vue3_sfc_loader_options)
),
)
// {{ asset('assets/vue/main.vue') }}
console.log('start vue');
// const vuetify = createVuetify();
// const app = createApp({
// components: {
// 'my-component': defineAsyncComponent(() =>
// loadModule(
// \"assets/vue/main.vue\",
// vue3_sfc_loader_options
// )
// ),
// },
// template: `<my-component />`,
// });
const { createVuetify } = Vuetify;
const vuetify = createVuetify({
theme: {
defaultTheme: 'light'
},
// blueprint: md2,
});
app.use(vuetify);
app.mount('#app');
</script>
<script type=\"module\">
{#import { createApp, ref } from 'vue';#}
{#import { createVuetify } from 'vuetify';#}
{#import App from \"{{ asset('assets/vue/app.js') }}\";#}
{#const vuetify = createVuetify();#}
{#const app = createApp({App});#}
{#app.use(vuetify);#}
{#app.mount('#app');#}
// var vue = new Vue({
// el: '#app',
// components: {
// 'vc-main-1': httpVueLoader('assets/vue/main.vue')
// }
// });
</script>
{% else %}
<script>
\$('#add-cart-button').prop('disabled', false)
</script>
{% endif %}
<script>
\$('label[for=quantity]').text('数量')
</script>
{% endblock %}
", "Product/detail.twig", "/home/atplus4/mirai-kanban.com/public_html/ecshop/app/template/default/Product/detail.twig");
}
}