From 144ab7db26a2aa1378b369721869bd0282a853fb Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Fri, 25 Dec 2020 17:37:15 +0100 Subject: [PATCH] created thematique page --- config/sync/pathauto.pattern.thematique.yml | 22 +++ .../graphql/materio_extension.base.graphqls | 19 +- .../materio_extension.extension.graphqls | 4 + .../MaterioSchemaExtension.php | 164 +++++++++++++++--- .../custom/materiotheme/assets/dist/main.css | 43 ++++- .../custom/materiotheme/assets/dist/main.js | 102 ++++++++++- .../materiotheme/assets/styles/main.scss | 58 ++++++- .../vuejs/api/gql/searchresults.fragment.gql | 11 +- .../vuejs/api/gql/thematique.fragment.gql | 27 +++ .../vuejs/components/Content/Card.vue | 3 +- .../components/Content/CardThematique.vue | 35 ++-- .../vuejs/components/Pages/Thematique.vue | 151 ++++++++++++++++ .../custom/materiotheme/vuejs/route/index.js | 17 +- 13 files changed, 589 insertions(+), 67 deletions(-) create mode 100644 config/sync/pathauto.pattern.thematique.yml create mode 100644 web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql create mode 100644 web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue diff --git a/config/sync/pathauto.pattern.thematique.yml b/config/sync/pathauto.pattern.thematique.yml new file mode 100644 index 0000000..06d9fe0 --- /dev/null +++ b/config/sync/pathauto.pattern.thematique.yml @@ -0,0 +1,22 @@ +uuid: f38038f5-afbd-48f5-98aa-f32fa56b3cd5 +langcode: en +status: true +dependencies: + module: + - node +id: thematique +label: Thematique +type: 'canonical_entities:node' +pattern: 'thematique/[node:title]' +selection_criteria: + a7ecad62-8643-4783-9b2e-56f739bfa1b1: + id: node_type + bundles: + thematique: thematique + negate: false + context_mapping: + node: node + uuid: a7ecad62-8643-4783-9b2e-56f739bfa1b1 +selection_logic: and +weight: -5 +relationships: { } diff --git a/web/modules/custom/materio_graphql/graphql/materio_extension.base.graphqls b/web/modules/custom/materio_graphql/graphql/materio_extension.base.graphqls index 7463b1e..93daf2a 100644 --- a/web/modules/custom/materio_graphql/graphql/materio_extension.base.graphqls +++ b/web/modules/custom/materio_graphql/graphql/materio_extension.base.graphqls @@ -2,12 +2,14 @@ scalar Violation interface NodeInterface { id: Int! + path: String! } type Materiau implements NodeInterface { id: Int! uuid: String! title: String! + path: String! author: String body: String short_description: String @@ -31,6 +33,7 @@ type Article implements NodeInterface { id: Int! uuid: String! title: String! + path: String! author: String body: String linked_materials: [Materiau] @@ -44,11 +47,25 @@ type Article implements NodeInterface { memo: String } +type Thematique implements NodeInterface { + id: Int! + uuid: String! + title: String! + path: String! + author: String + body: String + linked_materials: [Materiau] + images: [Image] + tags: [Tag] + memo: String +} + type SearchResult { id: Int! uuid: String! title: String! - bundle: String + bundle: String! + path: String! short_description: String images: [Image] visuels: [Image] diff --git a/web/modules/custom/materio_graphql/graphql/materio_extension.extension.graphqls b/web/modules/custom/materio_graphql/graphql/materio_extension.extension.graphqls index d07a655..ea7557d 100644 --- a/web/modules/custom/materio_graphql/graphql/materio_extension.extension.graphqls +++ b/web/modules/custom/materio_graphql/graphql/materio_extension.extension.graphqls @@ -18,6 +18,10 @@ extend type Query { article(id: Int!): Article } +extend type Query { + thematique(id: Int!): Thematique +} + extend type Query { showroom(id: Int!): Showroom } diff --git a/web/modules/custom/materio_graphql/src/Plugin/GraphQL/SchemaExtension/MaterioSchemaExtension.php b/web/modules/custom/materio_graphql/src/Plugin/GraphQL/SchemaExtension/MaterioSchemaExtension.php index fe15c8c..c65cbd6 100644 --- a/web/modules/custom/materio_graphql/src/Plugin/GraphQL/SchemaExtension/MaterioSchemaExtension.php +++ b/web/modules/custom/materio_graphql/src/Plugin/GraphQL/SchemaExtension/MaterioSchemaExtension.php @@ -27,29 +27,7 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase { public function registerResolvers(ResolverRegistryInterface $registry) { $builder = new ResolverBuilder(); - // Tell GraphQL how to resolve types of a common interface. - $registry->addTypeResolver('NodeInterface', function ($value) { - - $path = explode('\\', get_class($value)); - $class = array_pop($path); - - if ($class === 'Node') { - switch ($value->bundle()) { - case 'article': return 'Article'; - case 'materiau': return 'Materiau'; - } - } - throw new Error('Could not resolve content type.'); - }); - - $registry->addFieldResolver('Query', 'route', - $builder->compose( - $builder->produce('route_load') - ->map('path', $builder->fromArgument('path')), - $builder->produce('route_entity') - ->map('url', $builder->fromParent()) - )); - + $this->addRouteResolver($registry, $builder); $this->addMateriau($registry, $builder); @@ -59,6 +37,8 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase { $this->addArticle($registry, $builder); + $this->addThematique($registry, $builder); + $this->addCompany($registry, $builder); $this->addAddress($registry, $builder); @@ -88,6 +68,36 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase { ]); } + // ___ _ + // | _ \___ _ _| |_ ___ + // | / _ \ || | _/ -_) + // |_|_\___/\_,_|\__\___| + protected function addRouteResolver(ResolverRegistryInterface $registry, ResolverBuilder $builder) { + // Tell GraphQL how to resolve types of a common interface. + $registry->addTypeResolver('NodeInterface', function ($value) { + + $path = explode('\\', get_class($value)); + $class = array_pop($path); + + if ($class === 'Node') { + switch ($value->bundle()) { + case 'article': return 'Article'; + case 'materiau': return 'Materiau'; + case 'thematique': return 'Thematique'; + } + } + throw new Error('Could not resolve content type.'); + }); + + $registry->addFieldResolver('Query', 'route', + $builder->compose( + $builder->produce('route_load') + ->map('path', $builder->fromArgument('path')), + $builder->produce('route_entity') + ->map('url', $builder->fromParent()) + )); + } + // __ __ _ _ // | \/ |__ _| |_ ___ _ _(_)__ _ _ _ // | |\/| / _` | _/ -_) '_| / _` | || | @@ -117,6 +127,15 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase { ->map('entity', $builder->fromParent()) ); + $registry->addFieldResolver('Materiau', 'path', + $builder->compose( + $builder->produce('entity_url') + ->map('entity', $builder->fromParent()), + $builder->produce('url_path') + ->map('url', $builder->fromParent()) + ) + ); + $registry->addFieldResolver('Materiau', 'title', $builder->compose( $builder->produce('entity_label') @@ -269,6 +288,15 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase { ->map('entity', $builder->fromParent()) ); + $registry->addFieldResolver('SearchResult', 'path', + $builder->compose( + $builder->produce('entity_url') + ->map('entity', $builder->fromParent()), + $builder->produce('url_path') + ->map('url', $builder->fromParent()) + ) + ); + $registry->addFieldResolver('SearchResult', 'title', $builder->compose( $builder->produce('entity_label') @@ -343,6 +371,15 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase { ->map('entity', $builder->fromParent()) ); + $registry->addFieldResolver('Article', 'path', + $builder->compose( + $builder->produce('entity_url') + ->map('entity', $builder->fromParent()), + $builder->produce('url_path') + ->map('url', $builder->fromParent()) + ) + ); + $registry->addFieldResolver('Article', 'title', $builder->compose( $builder->produce('entity_label') @@ -428,6 +465,87 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase { ); } + // _____ _ _ _ + // |_ _| |_ ___ _ __ __ _| |_(_)__ _ _ _ ___ + // | | | ' \/ -_) ' \/ _` | _| / _` | || / -_) + // |_| |_||_\___|_|_|_\__,_|\__|_\__, |\_,_\___| + // |_| + protected function addThematique(ResolverRegistryInterface $registry, ResolverBuilder $builder) { + $registry->addFieldResolver('Query', 'Thematique', + $builder->produce('entity_load') + ->map('type', $builder->fromValue('node')) + ->map('bundles', $builder->fromValue(['thematique'])) + ->map('id', $builder->fromArgument('id')) + ); + + $registry->addFieldResolver('Thematique', 'id', + $builder->produce('entity_id') + ->map('entity', $builder->fromParent()) + ); + + $registry->addFieldResolver('Thematique', 'uuid', + $builder->produce('entity_uuid') + ->map('entity', $builder->fromParent()) + ); + + $registry->addFieldResolver('Thematique', 'path', + $builder->compose( + $builder->produce('entity_url') + ->map('entity', $builder->fromParent()), + $builder->produce('url_path') + ->map('url', $builder->fromParent()) + ) + ); + + $registry->addFieldResolver('Thematique', 'title', + $builder->compose( + $builder->produce('entity_label') + ->map('entity', $builder->fromParent()) + )); + + $registry->addFieldResolver('Thematique', 'author', + $builder->compose( + $builder->produce('entity_owner') + ->map('entity', $builder->fromParent()), + $builder->produce('entity_label') + ->map('entity', $builder->fromParent()) + )); + + $registry->addFieldResolver('Thematique', 'body', + $builder->produce('property_path') + ->map('type', $builder->fromValue('entity:node')) + ->map('value', $builder->fromParent()) + ->map('path', $builder->fromValue('body.value')) + ); + + $registry->addFieldResolver('Thematique', 'memo', + $builder->produce('property_path') + ->map('type', $builder->fromValue('entity:node')) + ->map('value', $builder->fromParent()) + ->map('path', $builder->fromValue('field_memo.value')) + ); + // https://github.com/drupal-graphql/graphql/blob/8.x-4.x/doc/SUMMARY.md + // https://blog.chrismitchellonline.com/posts/custom_graphql_data/ + $registry->addFieldResolver('Thematique', 'linked_materials', + $builder->produce('entity_reference') + ->map('entity', $builder->fromParent()) + ->map('field', $builder->fromValue('field_linked_materials')) + ); + + $registry->addFieldResolver('Thematique', 'images', + $builder->produce('entity_reference') + ->map('entity', $builder->fromParent()) + ->map('field', $builder->fromValue('field_visuel')) + ); + + $registry->addFieldResolver('Thematique', 'tags', + $builder->produce('entity_reference') + ->map('entity', $builder->fromParent()) + ->map('field', $builder->fromValue('field_tags')) + ); + + } + // ___ // |_ _|_ __ __ _ __ _ ___ // | || ' \/ _` / _` / -_) diff --git a/web/themes/custom/materiotheme/assets/dist/main.css b/web/themes/custom/materiotheme/assets/dist/main.css index 785787d..c36db14 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.css +++ b/web/themes/custom/materiotheme/assets/dist/main.css @@ -1418,7 +1418,8 @@ header[role="banner"] { body.path-showrooms header[role="banner"] #block-pagetitle h2 { color: #fff; background-color: #50aa3c; } - body.path-base header[role="banner"] #block-pagetitle h2 { + body.path-base header[role="banner"] #block-pagetitle h2, + body.path-thematique header[role="banner"] #block-pagetitle h2 { color: #fff; background-color: #69cdcf; } header[role="banner"] #block-materiosapisearchblock { @@ -1798,6 +1799,46 @@ article.card { article.card.modal-card section.col-right nav.tools section.close span.btn.mdi-close { cursor: pointer; } +#main-content > article.thematique div.cols { + display: grid; + grid-template-rows: 1fr; + grid-template-columns: repeat(12, 1fr); + grid-gap: 1em; } + #main-content > article.thematique div.cols div.col-left { + grid-column: 1; } + #main-content > article.thematique div.cols div.col-right { + grid-column: 2/12; } + +#main-content > article.thematique div.col-left section.body { + background-color: #69cdcf; + padding: 0.5em 1em 1em; + width: 423px; } + +#main-content > article.thematique aside.linked-materials ul { + width: calc(100% + 13px); } + #main-content > article.thematique aside.linked-materials ul li { + display: inline-block; + vertical-align: top; + width: 205px; + margin: 0 13px 13px 0; } + +#main-content > article.thematique aside.linked-materials h3.field__label { + font-size: 1em; + font-weight: 500; + margin: 2em 0 1em 0; } + +#main-content > article.thematique aside.linked-materials h1.title { + font-size: 1em; + font-weight: 400; } + +#main-content > article.thematique aside.linked-materials h3.ref { + font-size: 0.756em; + font-weight: 600; } + +#main-content > article.thematique aside.linked-materials h2.description { + font-size: 0.756em; + font-weight: 400; } + #main-content > article.article div.cols { display: grid; grid-template-rows: 1fr; diff --git a/web/themes/custom/materiotheme/assets/dist/main.js b/web/themes/custom/materiotheme/assets/dist/main.js index 56e2675..52a7577 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.js +++ b/web/themes/custom/materiotheme/assets/dist/main.js @@ -934,7 +934,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\nvar _cardMixins = _interopRequireDefault(__webpack_require__(/*! vuejs/components/cardMixins */ \"./web/themes/custom/materiotheme/vuejs/components/cardMixins.js\"));\n\nvar _ModalCard = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/ModalCard */ \"./web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n name: \"Card\",\n props: ['item'],\n mixins: [_cardMixins.default],\n components: {\n ModalCard: _ModalCard.default\n },\n data: function data() {\n return {\n blanksrc: \"\".concat(drupalSettings.path.themePath, \"/assets/img/blank.gif\"),\n loadingFlag: false,\n lightbox_index: null\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)({\n flagcolls: function flagcolls(state) {\n return state.User.flagcolls;\n },\n isloggedin: function isloggedin(state) {\n return state.User.isloggedin;\n }\n })),\n methods: _objectSpread(_objectSpread({}, (0, _vuex.mapActions)({\n flagUnflag: 'User/flagUnflag'\n })), {}, {\n flagIsActive: function flagIsActive(collid) {\n // console.log(\"Card flagIsActive\",\n // this.item.id,\n // this.flagcolls[collid].items,\n // this.flagcolls[collid].items.indexOf(this.item.id)\n // );\n // console.log(this.flagcolls[collid].items_uuids);\n // return this.flagcolls[collid].items_uuids.indexOf(this.item.uuid) !== -1;\n return this.flagcolls[collid].items.indexOf(this.item.id) !== -1;\n },\n flagIsLoading: function flagIsLoading(collid) {\n // console.log(this.item.uuid);\n // console.log(this.flagcolls[collid].items_uuids);\n return collid === this.loadingFlag;\n },\n onFlagActionCard: function onFlagActionCard(e) {\n var _this = this;\n\n console.log(\"Card onFlagActionCard\", e, this.item);\n\n if (!this.loadingFlag) {\n var collid = e.target.getAttribute('collid');\n var isActive = this.flagIsActive(collid);\n var action = isActive ? 'unflag' : 'flag'; // console.log('collid', collid);\n // console.log(\"this.item\", this.item);\n\n this.loadingFlag = collid;\n this.flagUnflag({\n action: action,\n id: this.item.id,\n collid: collid\n }).then(function (data) {\n console.log(\"onFlagActionCard then\", data);\n _this.loadingFlag = false;\n });\n }\n },\n openModalCard: function openModalCard(e) {\n if (this.isLoggedin) {\n this.$modal.show(_ModalCard.default, {\n item: this.item\n }, {\n draggable: true,\n width: '850px',\n height: '610px'\n });\n }\n }\n })\n};\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/Card.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\nvar _cardMixins = _interopRequireDefault(__webpack_require__(/*! vuejs/components/cardMixins */ \"./web/themes/custom/materiotheme/vuejs/components/cardMixins.js\"));\n\nvar _ModalCard = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/ModalCard */ \"./web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n name: \"Card\",\n props: ['item'],\n mixins: [_cardMixins.default],\n components: {\n ModalCard: _ModalCard.default\n },\n data: function data() {\n return {\n blanksrc: \"\".concat(drupalSettings.path.themePath, \"/assets/img/blank.gif\"),\n loadingFlag: false,\n lightbox_index: null\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)({\n flagcolls: function flagcolls(state) {\n return state.User.flagcolls;\n },\n isloggedin: function isloggedin(state) {\n return state.User.isloggedin;\n }\n })),\n methods: _objectSpread(_objectSpread({}, (0, _vuex.mapActions)({\n flagUnflag: 'User/flagUnflag'\n })), {}, {\n flagIsActive: function flagIsActive(collid) {\n // console.log(\"Card flagIsActive\",\n // this.item.id,\n // this.flagcolls[collid].items,\n // this.flagcolls[collid].items.indexOf(this.item.id)\n // );\n // console.log(this.flagcolls[collid].items_uuids);\n // return this.flagcolls[collid].items_uuids.indexOf(this.item.uuid) !== -1;\n return this.flagcolls[collid].items.indexOf(this.item.id) !== -1;\n },\n flagIsLoading: function flagIsLoading(collid) {\n // console.log(this.item.uuid);\n // console.log(this.flagcolls[collid].items_uuids);\n return collid === this.loadingFlag;\n },\n onFlagActionCard: function onFlagActionCard(e) {\n var _this = this;\n\n console.log(\"Card onFlagActionCard\", e, this.item);\n\n if (!this.loadingFlag) {\n var collid = e.target.getAttribute('collid');\n var isActive = this.flagIsActive(collid);\n var action = isActive ? 'unflag' : 'flag'; // console.log('collid', collid);\n // console.log(\"this.item\", this.item);\n\n this.loadingFlag = collid;\n this.flagUnflag({\n action: action,\n id: this.item.id,\n collid: collid\n }).then(function (data) {\n console.log(\"onFlagActionCard then\", data);\n _this.loadingFlag = false;\n });\n }\n },\n openModalCard: function openModalCard(e) {\n console.log('openModalCard', this.isLoggedin);\n\n if (this.isloggedin) {\n this.$modal.show(_ModalCard.default, {\n item: this.item\n }, {\n draggable: true,\n width: '850px',\n height: '610px'\n });\n }\n }\n })\n};\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/Card.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -950,7 +950,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\nvar _cardMixins = _interopRequireDefault(__webpack_require__(/*! vuejs/components/cardMixins */ \"./web/themes/custom/materiotheme/vuejs/components/cardMixins.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import ModalCard from 'vuejs/components/Content/ModalCard'\nvar _default = {\n name: \"Card\",\n props: ['item'],\n mixins: [_cardMixins.default],\n // components: {\n // ModalCard\n // },\n data: function data() {\n return {\n blanksrc: \"\".concat(drupalSettings.path.themePath, \"/assets/img/blank.gif\"),\n // loadingFlag: false,\n lightbox_index: null\n };\n },\n // computed: {\n // ...mapState({\n // flagcolls: state => state.User.flagcolls\n // })\n // },\n methods: {\n // ...mapActions({\n // flagUnflag: 'User/flagUnflag'\n // }),\n // flagIsActive(collid) {\n // // console.log(\"Card flagIsActive\",\n // // this.item.id,\n // // this.flagcolls[collid].items,\n // // this.flagcolls[collid].items.indexOf(this.item.id)\n // // );\n // // console.log(this.flagcolls[collid].items_uuids);\n // // return this.flagcolls[collid].items_uuids.indexOf(this.item.uuid) !== -1;\n // return this.flagcolls[collid].items.indexOf(this.item.id) !== -1;\n // },\n // flagIsLoading(collid) {\n // // console.log(this.item.uuid);\n // // console.log(this.flagcolls[collid].items_uuids);\n // return collid === this.loadingFlag;\n // },\n // onFlagActionCard (e) {\n // console.log(\"Card onFlagActionCard\", e, this.item);\n // if (!this.loadingFlag) {\n // let collid = e.target.getAttribute('collid');\n // let isActive = this.flagIsActive(collid);\n // let action = isActive ? 'unflag' : 'flag';\n // // console.log('collid', collid);\n // // console.log(\"this.item\", this.item);\n // this.loadingFlag = collid;\n // this.flagUnflag({ action: action, id: this.item.id, collid: collid})\n // .then(data => {\n // console.log(\"onFlagActionCard then\", data);\n // this.loadingFlag = false;\n // })\n // }\n // },\n openThematique: function openThematique(e) {\n console.log('openThematique', e); // this.$modal.show(\n // ModalCard,\n // { item: this.item },\n // {\n // draggable: true,\n // width: '850px',\n // height: '610px'\n // }\n // )\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\nvar _cardMixins = _interopRequireDefault(__webpack_require__(/*! vuejs/components/cardMixins */ \"./web/themes/custom/materiotheme/vuejs/components/cardMixins.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import ModalCard from 'vuejs/components/Content/ModalCard'\nvar _default = {\n name: \"Card\",\n props: ['item'],\n mixins: [_cardMixins.default],\n // components: {\n // ModalCard\n // },\n data: function data() {\n return {\n blanksrc: \"\".concat(drupalSettings.path.themePath, \"/assets/img/blank.gif\"),\n // loadingFlag: false,\n lightbox_index: null,\n alias: this.item.path.replace(/^.?\\/thematique\\//g, '')\n };\n },\n // computed: {\n // ...mapState({\n // flagcolls: state => state.User.flagcolls\n // })\n // },\n methods: {\n // ...mapActions({\n // flagUnflag: 'User/flagUnflag'\n // }),\n // flagIsActive(collid) {\n // // console.log(\"Card flagIsActive\",\n // // this.item.id,\n // // this.flagcolls[collid].items,\n // // this.flagcolls[collid].items.indexOf(this.item.id)\n // // );\n // // console.log(this.flagcolls[collid].items_uuids);\n // // return this.flagcolls[collid].items_uuids.indexOf(this.item.uuid) !== -1;\n // return this.flagcolls[collid].items.indexOf(this.item.id) !== -1;\n // },\n // flagIsLoading(collid) {\n // // console.log(this.item.uuid);\n // // console.log(this.flagcolls[collid].items_uuids);\n // return collid === this.loadingFlag;\n // },\n // onFlagActionCard (e) {\n // console.log(\"Card onFlagActionCard\", e, this.item);\n // if (!this.loadingFlag) {\n // let collid = e.target.getAttribute('collid');\n // let isActive = this.flagIsActive(collid);\n // let action = isActive ? 'unflag' : 'flag';\n // // console.log('collid', collid);\n // // console.log(\"this.item\", this.item);\n // this.loadingFlag = collid;\n // this.flagUnflag({ action: action, id: this.item.id, collid: collid})\n // .then(data => {\n // console.log(\"onFlagActionCard then\", data);\n // this.loadingFlag = false;\n // })\n // }\n // },\n openThematique: function openThematique(e) {\n console.log('openThematique', e);\n this.$router.push({\n name: \"thematique\",\n params: {\n alias: this.alias\n } // query: { nid: this.item.nid }\n // meta: { uuid:this.item.uuid },\n\n });\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -1226,6 +1226,22 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************************************************************/ +/*! flagged exports */ +/*! export __esModule [provided] [no usage info] [missing usage info prevents renaming] */ +/*! export default [provided] [no usage info] [missing usage info prevents renaming] */ +/*! other exports [not provided] [no usage info] */ +/*! runtime requirements: __webpack_exports__, __webpack_require__ */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _route = _interopRequireDefault(__webpack_require__(/*! vuejs/route */ \"./web/themes/custom/materiotheme/vuejs/route/index.js\"));\n\nvar _store = _interopRequireDefault(__webpack_require__(/*! vuejs/store */ \"./web/themes/custom/materiotheme/vuejs/store/index.js\"));\n\nvar _restAxios = __webpack_require__(/*! vuejs/api/rest-axios */ \"./web/themes/custom/materiotheme/vuejs/api/rest-axios.js\");\n\nvar _graphqlAxios = __webpack_require__(/*! vuejs/api/graphql-axios */ \"./web/themes/custom/materiotheme/vuejs/api/graphql-axios.js\");\n\nvar _printer = __webpack_require__(/*! graphql/language/printer */ \"./node_modules/graphql/language/printer.js\");\n\nvar _graphqlTag = _interopRequireDefault(__webpack_require__(/*! graphql-tag */ \"./node_modules/graphql-tag/src/index.js\"));\n\nvar _thematiqueFragment = _interopRequireDefault(__webpack_require__(/*! vuejs/api/gql/thematique.fragment.gql */ \"./web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql\"));\n\nvar _Card = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/Card */ \"./web/themes/custom/materiotheme/vuejs/components/Content/Card.vue\"));\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"{\\n route(path: \\\"\", \"\\\") {\\n ...ThematiqueFields\\n }\\n }\\n \", \"\\n \"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar _default = {\n name: \"Thematique\",\n router: _route.default,\n store: _store.default,\n data: function data() {\n return {\n nid: null,\n path: null,\n thematique: {},\n image_accroche: null,\n loading: true\n };\n },\n metaInfo: function metaInfo() {\n return {\n title: this.thematique.title\n };\n },\n // computed: {\n // ...mapState({\n // items: state => state.Blabla.items\n // })\n // },\n created: function created() {\n this.getThematique();\n },\n methods: {\n // ...mapActions({\n // getItems: 'Blabla/getItems',\n // getItemIndex: 'Blabla/getItemIndex',\n // getPrevNextItems: 'Blabla/getPrevNextItems'\n // }),\n getThematique: function getThematique() {\n console.log('getThematique', this.$route); // get the article uuid\n // if(this.$route.query.nid){\n // // we come from internal link with vuejs\n // // directly record uuid\n // this.nid = this.$route.query.nid\n //\n // }else if(drupalDecoupled.entity_type == 'node' && drupalDecoupled.entity_bundle == 'article'){\n // // we landed in an internal page\n // // get the uuid from drupalDeclouped, provided by materio_decoupled.module\n // this.nid = drupalDecoupled.entity_id\n // }\n\n if (this.$route.path) {\n // we come from internal link with vuejs\n this.path = this.$route.path;\n } else {\n // we landed in an internal page\n this.path = window.location.pathname;\n }\n\n if (this.path) {\n this.loadThematique();\n } else {\n // if for any reason we dont have the uuid\n // redirect to home\n this.$route.replace('home');\n }\n },\n loadThematique: function loadThematique() {\n var _this = this;\n\n console.log('loadThematique');\n this.loading = true;\n var ast = (0, _graphqlTag.default)(_templateObject(), this.path, _thematiqueFragment.default);\n\n _graphqlAxios.MGQ.post('', {\n query: (0, _printer.print)(ast)\n }).then(function (_ref) {\n var route = _ref.data.data.route;\n console.log('loaded Thematique', route);\n\n _this.parseDataGQL(route);\n }).catch(function (error) {\n console.warn('Issue with loadThematique', error);\n Promise.reject(error);\n });\n },\n parseDataGQL: function parseDataGQL(thematique) {\n console.log('parseDataGQL thematique', thematique);\n this.thematique = thematique;\n this.image_accroche = thematique.images[0]; // update main page title\n\n this.$store.commit('Common/setPagetitle', thematique.title);\n this.loading = false;\n }\n },\n components: {\n Card: _Card.default\n },\n watch: {\n '$route': function $route(to, from) {\n console.log('route change');\n this.getThematique();\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=script&lang=js&": /*!**************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=script&lang=js& ***! @@ -1455,7 +1471,7 @@ eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.js\"));\n\nvar _vueRouter = _interopRequireDefault(__webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.esm.js\"));\n\nvar _Home = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Home */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Home.vue\"));\n\nvar _Base = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Base */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Base.vue\"));\n\nvar _Blabla = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Blabla */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Blabla.vue\"));\n\nvar _Article = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Article */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Article.vue\"));\n\nvar _Showrooms = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Showrooms */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Showrooms.vue\"));\n\nvar _Pricing = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Pricing */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Pricing.vue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import Cart from 'vuejs/components/Pages/Cart'\n_vue.default.use(_vueRouter.default); // https://www.lullabot.com/articles/decoupled-hard-problems-routing\n// We could use aliases to never reload the page on language changement\n// BUT beforeupdate is not triggered when push alias instead of path or name\n// const languages = ['en', 'fr'];\n// console.log('path aliases', (() => languages.map(l => `/${l}/base`))() );\n\n\nvar basePath = drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix;\nvar routes = [{\n name: 'home',\n path: basePath,\n // path: '/',\n // alias: (() => languages.map(l => `/${l}`))(),\n component: _Home.default // components: {\n // 'home': Home\n // }\n\n}, {\n name: 'base',\n path: \"\".concat(basePath, \"base\"),\n // path: `/base`,\n // alias: (() => languages.map(l => `/${l}/base`))(),\n component: _Base.default // components: {\n // 'base': Base\n // }\n\n}, // {\n// name:'blabla',\n// path: `${basePath}blabla`,\n// component: Blabla,\n// children: [\n// {\n// path: `${basePath}blabla/:alias`,\n// component: Article\n// }\n// ]\n// }\n{\n name: 'blabla',\n path: \"\".concat(basePath, \"blabla\"),\n component: _Blabla.default\n}, {\n name: 'article',\n path: \"\".concat(basePath, \"blabla/:alias\"),\n component: _Article.default // meta: { uuid:null }\n\n}, {\n name: 'showrooms',\n path: \"\".concat(basePath, \"showrooms\"),\n component: _Showrooms.default // meta: { uuid:null }\n\n}, // {\n// path: '*',\n// name: 'notfound',\n// components: {\n// 'notfound': NotFound\n// }\n// },\n{\n name: 'pricing',\n path: \"\".concat(basePath, \"pricing\"),\n component: _Pricing.default\n} // {\n// name:'cart',\n// path: `${basePath}cart`,\n// component: Cart\n// }\n];\n\nvar _default = new _vueRouter.default({\n mode: 'history',\n routes: routes\n});\n\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/route/index.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.js\"));\n\nvar _vueRouter = _interopRequireDefault(__webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.esm.js\"));\n\nvar _Home = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Home */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Home.vue\"));\n\nvar _Base = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Base */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Base.vue\"));\n\nvar _Thematique = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Thematique */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue\"));\n\nvar _Blabla = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Blabla */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Blabla.vue\"));\n\nvar _Article = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Article */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Article.vue\"));\n\nvar _Showrooms = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Showrooms */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Showrooms.vue\"));\n\nvar _Pricing = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Pages/Pricing */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Pricing.vue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import Cart from 'vuejs/components/Pages/Cart'\n_vue.default.use(_vueRouter.default); // https://www.lullabot.com/articles/decoupled-hard-problems-routing\n// We could use aliases to never reload the page on language changement\n// BUT beforeupdate is not triggered when push alias instead of path or name\n// const languages = ['en', 'fr'];\n// console.log('path aliases', (() => languages.map(l => `/${l}/base`))() );\n\n\nvar basePath = drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix;\nvar routes = [{\n name: 'home',\n path: basePath,\n // path: '/',\n // alias: (() => languages.map(l => `/${l}`))(),\n component: _Home.default // components: {\n // 'home': Home\n // }\n\n}, {\n name: 'base',\n path: \"\".concat(basePath, \"base\"),\n // path: `/base`,\n // alias: (() => languages.map(l => `/${l}/base`))(),\n component: _Base.default // components: {\n // 'base': Base\n // }\n\n}, {\n name: 'thematique',\n path: \"\".concat(basePath, \"thematique/:alias\"),\n component: _Thematique.default\n}, {\n name: 'blabla',\n path: \"\".concat(basePath, \"blabla\"),\n component: _Blabla.default\n}, {\n name: 'article',\n path: \"\".concat(basePath, \"blabla/:alias\"),\n component: _Article.default // meta: { uuid:null }\n\n}, {\n name: 'showrooms',\n path: \"\".concat(basePath, \"showrooms\"),\n component: _Showrooms.default // meta: { uuid:null }\n\n}, // {\n// path: '*',\n// name: 'notfound',\n// components: {\n// 'notfound': NotFound\n// }\n// },\n{\n name: 'pricing',\n path: \"\".concat(basePath, \"pricing\"),\n component: _Pricing.default\n} // {\n// name:'cart',\n// path: `${basePath}cart`,\n// component: Cart\n// }\n];\n\nvar _default = new _vueRouter.default({\n mode: 'history',\n routes: routes\n});\n\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/route/index.js?"); /***/ }), @@ -1615,7 +1631,19 @@ eval("\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"Fragme /*! runtime requirements: module */ /***/ ((module) => { -eval("\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SearchResultFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SearchResult\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bundle\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"short_description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"images\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_cardmedium\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"visuels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_cardmedium\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":239}};\n doc.loc.source = {\"body\":\"fragment SearchResultFields on SearchResult {\\n id\\n bundle\\n title\\n short_description\\n reference\\n images{\\n url\\n alt\\n style_cardmedium{\\n url\\n }\\n }\\n visuels{\\n url\\n alt\\n style_cardmedium{\\n url\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n module.exports = doc;\n \n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/api/gql/searchresults.fragment.gql?"); +eval("\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SearchResultFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SearchResult\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bundle\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"short_description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"images\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_cardmedium_url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_hd_url\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"visuels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_cardmedium_url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_hd_url\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":254}};\n doc.loc.source = {\"body\":\"fragment SearchResultFields on SearchResult {\\n id\\n bundle\\n title\\n short_description\\n reference\\n path\\n images{\\n url\\n alt\\n style_cardmedium_url\\n style_hd_url\\n }\\n visuels{\\n url\\n alt\\n style_cardmedium_url\\n style_hd_url\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n module.exports = doc;\n \n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/api/gql/searchresults.fragment.gql?"); + +/***/ }), + +/***/ "./web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql": +/*!******************************************************************************!*\ + !*** ./web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql ***! + \******************************************************************************/ +/*! unknown exports (runtime-defined) */ +/*! runtime requirements: module */ +/***/ ((module) => { + +eval("\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ThematiqueFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Thematique\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"body\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tags\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linked_materials\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"short_description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"images\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_cardmedium_url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_hd_url\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"images\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"style_cardmedium\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":308}};\n doc.loc.source = {\"body\":\"fragment ThematiqueFields on Thematique {\\n id\\n title\\n body\\n tags {\\n id\\n name\\n }\\n linked_materials {\\n id\\n title\\n short_description\\n images {\\n url\\n style_cardmedium_url\\n style_hd_url\\n }\\n }\\n images {\\n id\\n url\\n alt\\n style_cardmedium{\\n url\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n module.exports = doc;\n \n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql?"); /***/ }), @@ -2099,6 +2127,22 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue": +/*!******************************************************************************!*\ + !*** ./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue ***! + \******************************************************************************/ +/*! namespace exports */ +/*! export __esModule [provided] [no usage info] [missing usage info prevents renaming] -> ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js& .__esModule */ +/*! export default [provided] [no usage info] [missing usage info prevents renaming] */ +/*! other exports [not provided] [no usage info] */ +/*! runtime requirements: __webpack_require__, __webpack_exports__, __webpack_require__.d, __webpack_require__.r, __webpack_require__.* */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"__esModule\": () => /* reexport safe */ _Thematique_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__.__esModule,\n/* harmony export */ \"default\": () => __WEBPACK_DEFAULT_EXPORT__\n/* harmony export */ });\n/* harmony import */ var _Thematique_vue_vue_type_template_id_128bc334_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Thematique.vue?vue&type=template&id=128bc334&scoped=true& */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true&\");\n/* harmony import */ var _Thematique_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Thematique.vue?vue&type=script&lang=js& */ \"./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n;\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__.default)(\n _Thematique_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__.default,\n _Thematique_vue_vue_type_template_id_128bc334_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _Thematique_vue_vue_type_template_id_128bc334_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"128bc334\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?"); + +/***/ }), + /***/ "./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue": /*!*********************************************************************************!*\ !*** ./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue ***! @@ -2515,6 +2559,22 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************!*\ + !*** ./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************/ +/*! namespace exports */ +/*! export __esModule [provided] [no usage info] [missing usage info prevents renaming] -> ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js& .__esModule */ +/*! export default [provided] [no usage info] [missing usage info prevents renaming] */ +/*! other exports [not provided] [no usage info] */ +/*! runtime requirements: __webpack_require__, __webpack_exports__, __webpack_require__.d, __webpack_require__.r, __webpack_require__.* */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => __WEBPACK_DEFAULT_EXPORT__,\n/* harmony export */ \"__esModule\": () => /* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Thematique_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__.__esModule\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Thematique_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Thematique.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=script&lang=js&\");\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Thematique_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__.default); \n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?"); + +/***/ }), + /***/ "./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=script&lang=js&": /*!**********************************************************************************************************!*\ !*** ./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=script&lang=js& ***! @@ -2935,6 +2995,22 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true&": +/*!*************************************************************************************************************************!*\ + !*** ./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true& ***! + \*************************************************************************************************************************/ +/*! namespace exports */ +/*! export render [provided] [no usage info] [missing usage info prevents renaming] -> ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true& .render */ +/*! export staticRenderFns [provided] [no usage info] [missing usage info prevents renaming] -> ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true& .staticRenderFns */ +/*! other exports [not provided] [no usage info] */ +/*! runtime requirements: __webpack_require__, __webpack_exports__, __webpack_require__.d, __webpack_require__.r, __webpack_require__.* */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Thematique_vue_vue_type_template_id_128bc334_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n/* harmony export */ \"staticRenderFns\": () => /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Thematique_vue_vue_type_template_id_128bc334_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns\n/* harmony export */ });\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Thematique_vue_vue_type_template_id_128bc334_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Thematique.vue?vue&type=template&id=128bc334&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true&\");\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?"); + +/***/ }), + /***/ "./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=template&id=7c9ac6c8&scoped=true&": /*!****************************************************************************************************************************!*\ !*** ./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=template&id=7c9ac6c8&scoped=true& ***! @@ -3059,7 +3135,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* binding */ render,\n/* harmony export */ \"staticRenderFns\": () => /* binding */ staticRenderFns\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"article\",\n { staticClass: \"card card-thematique search-card\" },\n [\n _c(\"header\", { on: { click: _vm.openThematique } }, [\n _c(\"h1\", [_vm._v(_vm._s(_vm.item.title))]),\n _vm._v(\" \"),\n _c(\"h4\", [_vm._v(_vm._s(_vm.item.short_description))])\n ]),\n _vm._v(\" \"),\n _c(\n \"section\",\n {\n directives: [{ name: \"switcher\", rawName: \"v-switcher\" }],\n staticClass: \"images\"\n },\n _vm._l(_vm.item.visuels, function(img, index) {\n return _c(\"figure\", { key: img.url }, [\n _c(\"img\", {\n directives: [\n {\n name: \"lazy\",\n rawName: \"v-lazy\",\n value: index,\n expression: \"index\"\n }\n ],\n staticClass: \"lazy\",\n attrs: { \"data-src\": img.style_cardmedium.url, title: img.title }\n }),\n _vm._v(\" \"),\n _c(\"img\", {\n staticClass: \"blank\",\n attrs: { src: _vm.blanksrc },\n on: {\n click: function($event) {\n _vm.lightbox_index = index\n }\n }\n })\n ])\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"CoolLightBox\", {\n attrs: {\n items: _vm.item.visuels,\n index: _vm.lightbox_index,\n srcName: \"url\",\n loop: true\n },\n on: {\n close: function($event) {\n _vm.lightbox_index = null\n }\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* binding */ render,\n/* harmony export */ \"staticRenderFns\": () => /* binding */ staticRenderFns\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"article\",\n { staticClass: \"card card-thematique search-card\" },\n [\n _c(\"header\", [\n _c(\n \"a\",\n {\n attrs: { href: _vm.item.path },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.openThematique($event)\n }\n }\n },\n [\n _c(\"h1\", [_vm._v(_vm._s(_vm.item.title))]),\n _vm._v(\" \"),\n _c(\"h4\", [_vm._v(_vm._s(_vm.item.short_description))])\n ]\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"section\",\n {\n directives: [{ name: \"switcher\", rawName: \"v-switcher\" }],\n staticClass: \"images\"\n },\n _vm._l(_vm.item.visuels, function(img, index) {\n return _c(\"figure\", { key: img.url }, [\n _c(\"img\", {\n directives: [\n {\n name: \"lazy\",\n rawName: \"v-lazy\",\n value: index,\n expression: \"index\"\n }\n ],\n staticClass: \"lazy\",\n attrs: { \"data-src\": img.style_cardmedium_url, title: img.title }\n }),\n _vm._v(\" \"),\n _c(\"img\", {\n staticClass: \"blank\",\n attrs: { src: _vm.blanksrc },\n on: {\n click: function($event) {\n _vm.lightbox_index = index\n }\n }\n })\n ])\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"CoolLightBox\", {\n attrs: {\n items: _vm.item.visuels,\n index: _vm.lightbox_index,\n srcName: \"style_hd_url\",\n loop: true\n },\n on: {\n close: function($event) {\n _vm.lightbox_index = null\n }\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -3271,6 +3347,22 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true&": +/*!****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?vue&type=template&id=128bc334&scoped=true& ***! + \****************************************************************************************************************************************************************************************************************************************************************/ +/*! namespace exports */ +/*! export render [provided] [no usage info] [missing usage info prevents renaming] */ +/*! export staticRenderFns [provided] [no usage info] [missing usage info prevents renaming] */ +/*! other exports [not provided] [no usage info] */ +/*! runtime requirements: __webpack_require__.r, __webpack_exports__, __webpack_require__.d, __webpack_require__.* */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* binding */ render,\n/* harmony export */ \"staticRenderFns\": () => /* binding */ staticRenderFns\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.thematique || _vm.loading\n ? _c(\"div\", { staticClass: \"loading\" }, [\n _c(\"span\", [_vm._v(\"Loading ...\")])\n ])\n : _c(\"article\", { staticClass: \"thematique\" }, [\n _c(\"div\", { staticClass: \"cols\" }, [\n _c(\"div\", { staticClass: \"col col-left\" }, [\n _c(\"section\", {\n staticClass: \"body\",\n domProps: { innerHTML: _vm._s(_vm.thematique.body) }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col col-right\" }, [\n _c(\"aside\", { staticClass: \"linked-materials\" }, [\n _c(\"div\", { staticClass: \"card-list\" }, [\n _c(\n \"ul\",\n {},\n _vm._l(_vm.thematique.linked_materials, function(node) {\n return _c(\n \"li\",\n { key: node.id },\n [_c(\"Card\", { attrs: { item: node } })],\n 1\n )\n }),\n 0\n )\n ])\n ])\n ])\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Pages/Thematique.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); + +/***/ }), + /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=template&id=7c9ac6c8&scoped=true&": /*!*******************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/User/FlagCollection.vue?vue&type=template&id=7c9ac6c8&scoped=true& ***! diff --git a/web/themes/custom/materiotheme/assets/styles/main.scss b/web/themes/custom/materiotheme/assets/styles/main.scss index 428cc82..def45c0 100644 --- a/web/themes/custom/materiotheme/assets/styles/main.scss +++ b/web/themes/custom/materiotheme/assets/styles/main.scss @@ -16,7 +16,6 @@ aside.messages{ border:none; } - // _ _ _ // | || |___ __ _ __| |___ _ _ // | __ / -_) _` / _` / -_) '_| @@ -331,7 +330,8 @@ header[role="banner"]{ color: #fff; background-color: $color-showrooms; } - body.path-base & { + body.path-base &, + body.path-thematique & { color: #fff; background-color: $color-base; } @@ -913,6 +913,60 @@ article.card{ } +// _____ _ _ _ +// |_ _| |_ ___ _ __ __ _| |_(_)__ _ _ _ ___ +// | | | ' \/ -_) ' \/ _` | _| / _` | || / -_) +// |_| |_||_\___|_|_|_\__,_|\__|_\__, |\_,_\___| +// |_| +#main-content > article.thematique{ + div.cols{ + display: grid; + grid-template-rows: 1fr; + grid-template-columns: repeat(12, 1fr); + grid-gap: 1em; + div.col-left{ + grid-column: 1; + } + div.col-right{ + grid-column: 2/12; + } + } + div.col-left section.body{ + background-color: $color-base; + padding: 0.5em 1em 1em; + width:$column_width*2 + $column_goutiere; + } + aside.linked-materials{ + ul{ + width:calc(100% + #{$column_goutiere}); + li{ + display: inline-block; + vertical-align: top; + width:$column_width; + margin:0 $column_goutiere $column_goutiere 0; + } + } + h3.field__label{ + font-size: 1em; + font-weight: 500; + margin: 2em 0 1em 0; + } + h1.title{ + font-size: 1em; + font-weight: 400; + } + h3.ref{ + font-size: 0.756em; + font-weight: 600; + } + h2.description{ + font-size: 0.756em; + font-weight: 400; + } + } + +} + // ___ _ _ _ // | _ ) |__ _| |__| |__ _ diff --git a/web/themes/custom/materiotheme/vuejs/api/gql/searchresults.fragment.gql b/web/themes/custom/materiotheme/vuejs/api/gql/searchresults.fragment.gql index e4ce0f8..57c3e67 100644 --- a/web/themes/custom/materiotheme/vuejs/api/gql/searchresults.fragment.gql +++ b/web/themes/custom/materiotheme/vuejs/api/gql/searchresults.fragment.gql @@ -4,18 +4,17 @@ fragment SearchResultFields on SearchResult { title short_description reference + path images{ url alt - style_cardmedium{ - url - } + style_cardmedium_url + style_hd_url } visuels{ url alt - style_cardmedium{ - url - } + style_cardmedium_url + style_hd_url } } diff --git a/web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql b/web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql new file mode 100644 index 0000000..c13d308 --- /dev/null +++ b/web/themes/custom/materiotheme/vuejs/api/gql/thematique.fragment.gql @@ -0,0 +1,27 @@ +fragment ThematiqueFields on Thematique { + id + title + body + tags { + id + name + } + linked_materials { + id + title + short_description + images { + url + style_cardmedium_url + style_hd_url + } + } + images { + id + url + alt + style_cardmedium{ + url + } + } +} diff --git a/web/themes/custom/materiotheme/vuejs/components/Content/Card.vue b/web/themes/custom/materiotheme/vuejs/components/Content/Card.vue index 57e5363..8553437 100644 --- a/web/themes/custom/materiotheme/vuejs/components/Content/Card.vue +++ b/web/themes/custom/materiotheme/vuejs/components/Content/Card.vue @@ -118,7 +118,8 @@ export default { } }, openModalCard (e) { - if(this.isLoggedin){ + console.log('openModalCard', this.isLoggedin); + if(this.isloggedin){ this.$modal.show( ModalCard, { item: this.item }, diff --git a/web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue b/web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue index 69a6c9e..6162d49 100644 --- a/web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue +++ b/web/themes/custom/materiotheme/vuejs/components/Content/CardThematique.vue @@ -1,10 +1,13 @@