@total_onion/onion-library 3.0.8 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/createNewBlock.js CHANGED
@@ -3,9 +3,7 @@ const fs = require('fs');
3
3
  const {globSync} = require('glob');
4
4
  const yargs = require('yargs');
5
5
  const {exec} = require('child_process');
6
- const swiperTemplates = require('./new-block-templates/template-swiper');
7
- const vueTemplates = require('./new-block-templates/template-vue');
8
- const acfTemplate = require('./new-block-templates/template-acf');
6
+ const acfTemplate = require('./new-block-templates/template-block-json');
9
7
  const defaultTemplates = require('./new-block-templates/template-default');
10
8
 
11
9
  const themePath =
@@ -132,8 +130,14 @@ fs.writeFileSync(
132
130
  `${themePath}/views/blocks/${newBlockName}.twig`,
133
131
  templateData
134
132
  );
133
+
134
+ // Create block directory inside acf-blocks if it doesn't exist
135
+ if (!fs.existsSync(`${themePath}/inc/acf-blocks/${newBlockName}`)) {
136
+ fs.mkdirSync(`${themePath}/inc/acf-blocks/${newBlockName}`);
137
+ }
138
+
135
139
  fs.writeFileSync(
136
- `${themePath}/inc/acf-blocks/${newBlockName}.php`,
140
+ `${themePath}/inc/acf-blocks/${newBlockName}/block.json`,
137
141
  acfTemplate(newBlockName, projectName)
138
142
  );
139
143
  // fs.writeFileSync(
@@ -0,0 +1,35 @@
1
+ module.exports = function (newBlockName, projectName) {
2
+ const blockTitle =
3
+ newBlockName.charAt(0).toUpperCase() +
4
+ newBlockName.slice(1).replaceAll('-', ' ');
5
+ const namespace = projectName.toLowerCase().replaceAll(' ', '-');
6
+
7
+ return `{
8
+ "$schema": "https://schemas.wp.org/trunk/block.json",
9
+ "apiVersion": 3,
10
+ "name": "${namespace}/${newBlockName}",
11
+ "title": "${blockTitle}",
12
+ "category": "common",
13
+ "icon": "smiley",
14
+ "description": "${blockTitle} block",
15
+ "keywords": ["content", "text"],
16
+ "version": "1.0.0",
17
+ "textdomain": "${namespace}",
18
+ "supports": {
19
+ "anchor": true,
20
+ "align": false
21
+ },
22
+ "example": {
23
+ "attributes": {
24
+ "mode": "preview",
25
+ "data": {
26
+ "is_example": true
27
+ }
28
+ }
29
+ },
30
+ "acf": {
31
+ "mode": "preview",
32
+ "renderCallback": "core_block_render_post_object_v3"
33
+ }
34
+ }`;
35
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@total_onion/onion-library",
3
- "version": "3.0.8",
3
+ "version": "3.0.9",
4
4
  "description": "Component library",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/removeBlock.js CHANGED
@@ -1,8 +1,9 @@
1
1
  require('dotenv').config();
2
2
  const fs = require('fs');
3
3
  const readline = require('readline');
4
- const { globSync } = require('glob');
5
- const themePath = process.env.THEME_PATH || 'web/wp-content/themes/global-theme';
4
+ const {globSync} = require('glob');
5
+ const themePath =
6
+ process.env.THEME_PATH || 'web/wp-content/themes/global-theme';
6
7
 
7
8
  const rl = readline.createInterface({
8
9
  input: process.stdin,
@@ -16,68 +17,60 @@ const finalAnswer = {
16
17
  let result = 'no';
17
18
 
18
19
  function deleteBlockFiles(blockName) {
19
- fs.unlink(
20
- `${themePath}/assets/js/blocks/${blockName}.js`,
21
- (err) => {
22
- if (err) {
23
- console.error(err);
24
- }
20
+ fs.unlink(`${themePath}/assets/js/blocks/${blockName}.js`, (err) => {
21
+ if (err) {
22
+ console.error(err);
25
23
  }
26
- );
27
- fs.unlink(
28
- `${themePath}/assets/scss/blocks/${blockName}.scss`,
29
- (err) => {
30
- if (err) {
31
- console.error(err);
32
- }
24
+ });
25
+ fs.unlink(`${themePath}/assets/scss/blocks/${blockName}.scss`, (err) => {
26
+ if (err) {
27
+ console.error(err);
33
28
  }
34
- );
35
- if(fs.existsSync(`${themePath}/assets/scss/blocks/${blockName}`)) {
36
- fs.rmSync(`${themePath}/assets/scss/blocks/${blockName}`, { recursive: true })
29
+ });
30
+ if (fs.existsSync(`${themePath}/assets/scss/blocks/${blockName}`)) {
31
+ fs.rmSync(`${themePath}/assets/scss/blocks/${blockName}`, {
32
+ recursive: true
33
+ });
37
34
  }
38
- fs.unlink(
39
- `${themePath}/views/blocks/${blockName}.twig`,
40
- (err) => {
41
- if (err) {
42
- console.error(err);
43
- }
35
+ fs.unlink(`${themePath}/views/blocks/${blockName}.twig`, (err) => {
36
+ if (err) {
37
+ console.error(err);
44
38
  }
45
- );
46
- fs.unlink(
47
- `${themePath}/assets/vue/blocks/${blockName}.vue`,
48
- (err) => {
49
- if (err) {
50
- console.error(err);
51
- }
39
+ });
40
+ fs.unlink(`${themePath}/assets/vue/blocks/${blockName}.vue`, (err) => {
41
+ if (err) {
42
+ console.error(err);
52
43
  }
53
- );
54
- if(fs.existsSync(`${themePath}/assets/vue/blocks/${blockName}`)) {
55
- fs.rmSync(`${themePath}/assets/vue/blocks/${blockName}`, { recursive: true })
44
+ });
45
+ if (fs.existsSync(`${themePath}/assets/vue/blocks/${blockName}`)) {
46
+ fs.rmSync(`${themePath}/assets/vue/blocks/${blockName}`, {
47
+ recursive: true
48
+ });
56
49
  }
57
50
  fs.unlink(`./cypress/e2e/components/${blockName}.cy.js`, (err) => {
58
51
  if (err) {
59
52
  console.error(err);
60
53
  }
61
54
  });
62
- fs.unlink(
63
- `${themePath}/inc/acf-blocks/${blockName}.php`,
64
- (err) => {
65
- if (err) {
66
- console.error(err);
67
- }
68
- }
69
- );
55
+
56
+ // Remove the block directory in acf-blocks (contains block.json)
57
+ if (fs.existsSync(`${themePath}/inc/acf-blocks/${blockName}`)) {
58
+ fs.rmSync(`${themePath}/inc/acf-blocks/${blockName}`, {
59
+ recursive: true
60
+ });
61
+ }
62
+
70
63
  removeACFJson(blockName);
71
64
  rl.close();
72
65
  }
73
66
 
74
67
  function removeACFJson(name) {
75
- const existingAcfFiles = globSync(`${themePath}/acf-json/*.json`)
76
- .map((path) => {
77
- const assetKey = path
78
- .replace('assets/js/blocks/', '');
68
+ const existingAcfFiles = globSync(`${themePath}/acf-json/*.json`).map(
69
+ (path) => {
70
+ const assetKey = path.replace('assets/js/blocks/', '');
79
71
  return assetKey;
80
- });
72
+ }
73
+ );
81
74
 
82
75
  existingAcfFiles.forEach((file, index) => {
83
76
  let rawdata = fs.readFileSync(file);
@@ -110,8 +103,8 @@ rl.question(
110
103
  rl.close();
111
104
  }
112
105
  result = 'yes';
113
- if(process.argv[2].indexOf("block-") === 0) {
114
- deleteBlockFiles(process.argv[2].split("block-")[1]);
106
+ if (process.argv[2].indexOf('block-') === 0) {
107
+ deleteBlockFiles(process.argv[2].split('block-')[1]);
115
108
  }
116
109
  }
117
110
  );
@@ -1,25 +0,0 @@
1
- module.exports = function (newBlockName, projectName) {
2
- return `<?php
3
-
4
- acf_register_block_type(
5
- array(
6
- 'name' => '${newBlockName}',
7
- 'title' => __( '${
8
- newBlockName.charAt(0).toUpperCase() +
9
- newBlockName.slice(1).replaceAll('-', ' ')
10
- }', '${projectName} Admin' ),
11
- 'render_callback' => 'core_block_render_post_object_v3',
12
- 'category' => 'child-patterns',
13
- 'icon' => get_svg_icon_content('green-brick.svg'),
14
- 'keywords' => array('content', 'text' ),
15
- 'mode' => 'preview',
16
- 'supports' => array( 'align' => false, 'anchor' => true ),
17
- 'example' => [
18
- 'attributes' => [
19
- 'mode' => 'preview',
20
- 'data' => ['is_example' => true]
21
- ]
22
- ]
23
- )
24
- );`;
25
- };
@@ -1,19 +0,0 @@
1
- module.exports = function (newBlockName, projectName) {
2
- return `<?php
3
-
4
- acf_register_block_type(
5
- array(
6
- 'name' => '${newBlockName}',
7
- 'title' => __( '${
8
- newBlockName.charAt(0).toUpperCase() +
9
- newBlockName.slice(1).replaceAll('-', ' ')
10
- }', '${projectName} Admin' ),
11
- 'render_callback' => 'core_block_render_post_object_v3',
12
- 'category' => 'common',
13
- 'icon' => get_svg_icon_content('brick.svg'),
14
- 'keywords' => array('content', 'text' ),
15
- 'mode' => 'preview',
16
- 'supports' => array( 'align' => false, 'anchor' => true ),
17
- )
18
- );`;
19
- };
@@ -1,125 +0,0 @@
1
- module.exports = {
2
- templatejs: function () {
3
- return `import {loadCss, getSwiperAssetsV2} from '@total_onion/onion-utils/onion-utils';
4
- import('swiper/css/bundle');
5
-
6
- export default function carouselmultilayoutJs(options = {}) {
7
- try {
8
- const {block} = options;
9
- Promise.all([
10
- getSwiperAssetsV2(),
11
- loadCss(block.dataset.assetkey, options)
12
- ]).then((values) => {
13
- const {
14
- Swiper,
15
- Navigation,
16
- Pagination,
17
- Lazy,
18
- Autoplay,
19
- EffectFade,
20
- EffectCoverflow,
21
- EffectCreative
22
- } = values[0][0];
23
-
24
- const dataAttributes = block.dataset;
25
- const slidesDesktop = dataAttributes.desktopslides;
26
- const autoplayCarousel = Number(dataAttributes.autoplay) === 1;
27
- const centerActiveSlide =
28
- Number(dataAttributes.centeractiveslide) === 1;
29
- const delay = dataAttributes.transitiondelay * 1000;
30
- const speed = Number(dataAttributes.transitionspeed);
31
- const style =
32
- dataAttributes.transitionstyle === 'default'
33
- ? ''
34
- : dataAttributes.transitionstyle;
35
- const carouselmultilayoutSwiper = new Swiper(
36
- block.querySelector('.swiper'),
37
- {
38
- modules: [
39
- Navigation,
40
- Pagination,
41
- Lazy,
42
- Autoplay,
43
- EffectFade,
44
- EffectCoverflow,
45
- EffectCreative
46
- ],
47
- slidesPerView: 1,
48
- loop: false,
49
- preloadImages: true,
50
- watchSlidesVisibility: true,
51
- effect: style,
52
- creativeEffect: {
53
- prev: {
54
- shadow: true,
55
- translate: [0, 0, -400]
56
- },
57
- next: {
58
- translate: ['100%', 0, 0]
59
- }
60
- },
61
- coverflowEffect: {
62
- rotate: 20,
63
- depth: 50,
64
- scale: 0.9,
65
- modifier: 1,
66
- slideShadows: true
67
- },
68
- fadeEffect: {
69
- crossFade: true
70
- },
71
- lazy: {
72
- loadPrevNext: true
73
- },
74
- speed,
75
- autoplay: autoplayCarousel
76
- ? {
77
- delay
78
- }
79
- : '',
80
- watchOverflow: true,
81
- breakpoints: {
82
- 1024: {
83
- slidesPerView: slidesDesktop,
84
- spaceBetween: 50,
85
- centeredSlides: centerActiveSlide
86
- }
87
- },
88
- navigation: {
89
- nextEl: block.querySelector('.swiper-button-next'),
90
- prevEl: block.querySelector('.swiper-button-prev')
91
- },
92
- pagination: {
93
- el: block.querySelector('.swiper-pagination'),
94
- type: 'bullets',
95
- clickable: true
96
- }
97
- }
98
- );
99
- });
100
- } catch (error) {
101
- console.error(error);
102
- }
103
- }
104
- `;
105
- },
106
- templatetwig: function (newBlockName) {
107
- return `
108
- <div class="swiper">
109
- <div class="swiper-wrapper">
110
- <div class="swiper-slide ${newBlockName}__slide">
111
- {% set desktopImage = Image(fields.desktop_image) %}
112
- {% set mobileImage = Image(fields.mobile_image) %}
113
- {% set desktopSizes = '(min-width: 1440px) 100vw, (min-width: 1024px) 1024px, (min-width: 768px) 768px' %}
114
- {% set mobileSizes = '(min-width: 768px) 768px, (min-width: 500px) 500px, 250px' %}
115
-
116
- {{ include('components/responsive-image.twig', {fields : fields, block : block, blockClassName : blockClassName}, with_context = false) }}
117
- </div>
118
- </div>
119
- <div class="swiper-pagination"></div>
120
- <div class="swiper-button-prev"></div>
121
- <div class="swiper-button-next"></div>
122
- </div>
123
- `;
124
- }
125
- };
@@ -1,58 +0,0 @@
1
- module.exports = {
2
- templatevuefile: function (newBlockName) {
3
- return `
4
- <template>
5
- <div>
6
- </div>
7
- </template>
8
-
9
- <script lang="javascript">
10
- import animations from "@pernod-ricard-global-cms/jsanimations";
11
- export default {
12
- name: "${newBlockName}",
13
- data() {
14
- return {
15
- allDrinks: [],
16
- };
17
- },
18
- beforeMount() {
19
- },
20
- mounted() {
21
-
22
- },
23
- methods: {
24
-
25
- },
26
- computed: {
27
-
28
- },
29
- };
30
- </script>
31
-
32
- `;
33
- },
34
- templatejs: function (newBlockName) {
35
- return `
36
- import {loadCss} from '@total_onion/onion-utils/onion-utils';
37
- ';
38
- import {createApp} from 'vue';
39
- import ${newBlockName} from 'Assets/vue/blocks/${newBlockName}.vue';
40
-
41
- export default function ${newBlockName.replaceAll('-', '')}Js ( options = {} ) {
42
- try {
43
- const { block } = options;
44
- loadCss(block.dataset.assetkey, options).then(() => {
45
- const mountElement = block.children[0];
46
- createApp(${newBlockName}, {...mountElement.dataset}).mount(mountElement);
47
- });
48
- } catch ( error ) {
49
- console.error( error );
50
- }
51
- }`;
52
- },
53
- templatetwig: function (newBlockName) {
54
- return `
55
- <div id="${newBlockName}"></div>
56
- `;
57
- }
58
- };