How to find the html/react code of a dropdown made with react?

I am using javascript and puppeteer to scrape info on a site that seems to be made in react. There is a dropdown that contains some options and the trigger is a button element containing a span text. When I trigger the dropdown, only some existing tags change some attributes, but nothing is added in the html code that might represent the actual dropdown options.

I tried react dev tools and I am able to see where the dropdown and the items are. I can see a hierarchy like this: Primitive.div > Select.Item > SelectItem > .... . Select.Item contains the text and numerical value of the option in the dropdown, while SelectItem contains a class name. I tried to search dropdown options by class name and I am able to see each option’s text, but when I try to implement a click event on the desired element it won’t work. Here is the code:

Here is the html code of the button trigger:

<button class="rt-reset rt-SelectTriggercustom-select-trigger" type="button" role="combobox" aria-controls="radix-:r0:" aria-expanded="false" aria-autocomplete="none" dir="ltr" data-state="closed">
     <span class="rt-SelectTriggerInner">
        <span style="pointer-events: none;">Option0</span>
      </span>
</button>

Here is the code I am using to get the options that appear when clicking the button:

    await page.waitForSelector('.custom-select-trigger', { timeout: 60000 });
    
    await page.click('.custom-select-trigger');

    
    const desiredOption = 'Option1';
    const optionClicked = await page.evaluate((desiredOption) => {
        //rt-SelectItem is the class name of each dropdown option
        const options = Array.from(document.querySelectorAll('.rt-SelectItem'));
        const option = options.find(opt => opt.textContent.trim() === desiredOption);
        if (option) {
            const eventClick = new MouseEvent('click', { bubbles: true});
            option.dispatchEvent(eventClick);
            return `Option with text ${desiredOptionText} clicked.`;
        } else {
            return `Option with text ${desiredOptionText} not found.`;
        }
    }, desiredOptionText);

    console.log(optionClicked);

This code finds the desired option correctly and it returns “Option with text Option1 clicked” but it doesn’t actually click the option. What am I doing wrong?

FedEx APIs : Getting error while creating shipment

I have two payloads on giving me success response and also give me label pdf url and in another payload i am getting internal server error

this is both payload :

success payload :

{
    "accountNumber": {
        "value": "ACCOUNT_NUMBER"
    },
    "labelResponseOptions": "URL_ONLY",
    "requestedShipment": {
        "blockInsightVisibility": false,
        "labelSpecification": {
            "imageType": "PDF",
            "labelStockType": "PAPER_85X11_TOP_HALF_LABEL"
        },
        "packagingType": "YOUR_PACKAGING",
        "pickupType": "DROPOFF_AT_FEDEX_LOCATION",
        "recipients": [
            {
                "address": {
                    "city": "DUBAI",
                    "countryCode": "AE",
                    "postalCode": "00000",
                    "stateOrProvinceCode": "DU",
                    "streetLines": [
                        "RECIPIENT STREET LINE 1",
                        "RECIPIENT STREET LINE 2"
                    ]
                },
                "contact": {
                    "companyName": "Recipient Company Name",
                    "personName": "RECIPIENT NAME",
                    "phoneNumber": 1234567890
                }
            }
        ],
        "requestedPackageLineItems": [
            {
                "declaredValue": {
                    "amount": 100,
                    "currency": "DHS"
                },
                "itemDescriptionForClearance": "Item description for clearance",
                "weight": {
                    "units": "KG",
                    "value": 10
                }
            }
        ],
        "serviceType": "STANDARD_OVERNIGHT",
        "shipDatestamp": "2024-03-07",
        "shipper": {
            "address": {
                "city": "SHARJAH",
                "countryCode": "AE",
                "postalCode": "00000",
                "stateOrProvinceCode": "SH",
                "streetLines": [
                    "SHIPPER STREET LINE 1"
                ]
            },
            "contact": {
                "companyName": "Shipper Company Name",
                "personName": "SHIPPER NAME",
                "phoneNumber": 1234567890
            }
        },
        "shippingChargesPayment": {
            "paymentType": "SENDER"
        }
    }
}

Error payload :

{
    "accountNumber": {
        "value": "ACCOUNT_NUMBER"
    },
    "labelResponseOptions": "URL_ONLY",
    "requestedShipment": {
        "blockInsightVisibility": false,
        "labelSpecification": {
            "imageType": "PDF",
            "labelStockType": "PAPER_85X11_TOP_HALF_LABEL"
        },
        "packagingType": "YOUR_PACKAGING",
        "pickupType": "DROPOFF_AT_FEDEX_LOCATION",
        "recipients": [
            {
                "address": {
                    "city": "SHARJAH",
                    "countryCode": "AE",
                    "postalCode": "00000",
                    "stateOrProvinceCode": "SH",
                    "streetLines": [
                        "street lines"
                    ]
                },
                "contact": {
                    "companyName": "company",
                    "personName": "recipient",
                    "phoneNumber": 1234567890
                }
            }
        ],
        "requestedPackageLineItems": [
            {
                "declaredValue": {
                    "amount": 100,
                    "currency": "DHS"
                },
                "itemDescriptionForClearance": "Camera",
                "weight": {
                    "units": "KG",
                    "value": 10
                }
            }
        ],
        "serviceType": "STANDARD_OVERNIGHT",
        "shipDatestamp": "2024-08-12",
        "shipper": {
            "address": {
                "city": "DUBAI",
                "countryCode": "AE",
                "postalCode": "00000",
                "stateOrProvinceCode": "DU",
                "streetLines": [
                    "street lines"
                ]
            },
            "contact": {
                "companyName": "company",
                "personName": "Shipper",
                "phoneNumber": 1234567890
            }
        },
        "shippingChargesPayment": {
            "paymentType": "SENDER"
        }
    }
}

this is endpoint /v1/shipments

my techstack is :

NextJS with Typescript in backend made using .net APIs.

(note: i use backend for calling fedex apis)

Filter an array of objects with multiple keys of arrays [duplicate]

I have an array of objects

const Data = [
  {first_name: 'Ammy', city_name: 'LA', age: 22, designation: 'officer'},
  {first_name: 'Dave', city_name: 'Paris', age: 23, designation: 'engineer'},
  {first_name: 'Cindy', city_name: 'Tokyo', age: 32, designation: 'influencer'},
  {first_name: 'Barn', city_name: 'sydney', age: 34, designation: 'lawyer'},
  {first_name: 'Yolanda', city_name: 'Seoul', age: 32, designation: 'chef'},
  {first_name: 'Mike', city_name: 'London', age: 42, designation: 'bartender'},
  {first_name: 'Olivia', city_name: 'LA', age: 34, designation: 'officer'}
]

I also have an object containing filters

const Filters = {
  first_name: ['Ammy', 'Dave', 'Mike'],
  city_name: ['LA'],
  age: [22, 34]
}

I have to filter the data so that all the filters are applied and it should be an and condition. For the above Data and Filters only the row containing Ammy should be displayed. The challenging part is that the filters can have only one key or all keys. Filters can be just { first_name: ['Dave']}

I tried writing some code but it will not apply all the filters

const newData = []; 
Object.entries(Filters).map(([filter, Values]) => {
  const filteredData = Data.filter(item => {
    if (Values.find( value => value === item[filter])) {
      newData.push(item); 
    } 
  });  
}) 

Playwright test fails in headless mode, works in headed mode

I have a playwright test that opens up a signup page, fills up some fields, solves recaptcha (test mode) and then submits the form which redirects it to a success page.

The same test run fine in headed / UI mode but in case of headless, it gives error which doesn’t make sense. I have read that headless tests run faster than headed but I have tried adding wait and also increasing the timeout as well but that didn’t make any difference. Here is my test:


const formInputs = [{
  name: 'name',
  type: 'input',
  value: "Tester Doe"
}, {
  name: 'email',
  value: `test.${Date.now().toString(24)}@stakater.com`,
  type: "input"
}, {
  name: 'phone',
  type: 'input',
  value: "111111111"
}, {
  name: 'companyName',
  type: 'input',
  value: `Tester${Date.now().toString(24)}`
}, {
  name: 'number',
  type: "input",
  value: "4242424242424242",
  stripe: true
}, {
  name: 'expiry',
  type: 'input',
  value: "1250",
  stripe: true
}, {
  name: "cvc",
  type: 'input',
  value: "123",
  stripe: true
}, {
  name: "country",
  type: 'select',
  value: "Sweden",
  stripe: true
}]

test('should sign up user', async ({ page, context }) => {

    await page.goto(`${process.env.APP_BASE_URL}/#/signup`);

    // Wait for the Payment Element iframe to be available
    const stripeIframe = await page.waitForSelector("iframe");
    const stripeFrame = await stripeIframe.contentFrame();

    // fill input fields
    for (const input of formInputs) {
      if (input.stripe) {
        if (input.type === "select") {
          await stripeFrame.locator(`${input.type}[name="${input.name}"]`).selectOption(input.value)
        } else {
          await stripeFrame.locator(`${input.type}[name="${input.name}"]`).fill(input.value)
        }
      } else {
        await page.locator(`${input.type}[name="${input.name}"]`).fill(input.value);
      }
    }

    // Wait for the Recaptcha Element iframe to be available
    const recaptchaIframe = await page.waitForSelector("[title=reCAPTCHA]");
    const recaptchaFrame = await recaptchaIframe.contentFrame();

    // solve captcha
    expect(recaptchaFrame).toBeTruthy();

    console.log('reCAPTCHA iframe found');
    await recaptchaFrame.locator('#recaptcha-anchor').click();

    // await page.waitForLoadState('domcontentloaded');

    console.log('Clicked on reCAPTCHA checkbox');

    // Wait for the reCAPTCHA to be solved
    await expect(recaptchaFrame.locator('.recaptcha-checkbox-checked')).toBeVisible({ timeout: 10000 });

    console.log('reCAPTCHA solved');

    await page.locator('button[type="submit"]').click()
    // await page.waitForLoadState('networkidle'); // tried this but didn't work
    await expect(page.getByText(`Signup successful, an email confirmation have been sent to`)).toBeVisible({ timeout: 10000 })

 });

The error that comes in headless mode is below:

Error: Timed out 10000ms waiting for expect(locator).toBeVisible()

Locator: getByText('Signup successful, an email confirmation have been sent to')
Expected: visible
Received: <element(s) not found>
Call log:
  - expect.toBeVisible with timeout 10000ms
  - waiting for getByText('Signup successful, an email confirmation have been sent to')


  198 |     await page.locator('button[type="submit"]').click()
  199 |     // await page.waitForLoadState('networkidle');
> 200 |     await expect(page.getByText(`Signup successful, an email confirmation have been sent to`)).toBeVisible({ timeout: 10000 })
      |                                                                                                ^

Does anyone have any pointers as to what might be the issue?

I want that forEach click I made a new value (setItem, id) appears on my localstorage without delete the last value anyone can help me? [duplicate]

Web localStorage visualization

Web localStorage visualization2

import { items } from './store.js';

document.addEventListener("DOMContentLoaded", function() {

    const objects = [
        nuits,
        blanches,
        bleumarines,
        verts,
        roses,
        natures,
        vitragenoirs,
        oceans,
        carrotes,
        oranges
    ];

    objects.forEach((Object) => {
        Object.addEventListener('click', (event) => {
            event.stopPropagation();
            const id = Object.id;
            localStorage.setItem('selectedItem', id);
        });

        span.addEventListener('click', (event) => {
            window.open("store.html", "_top");
        })

    });
});

JS setInterval with an ajax request is auto closing DateTimePicker

I have this code below:

setInterval(function(){
                $.ajax({
                    url: "{{ route('logout_checker')}}",
                    type: "GET",
                    success: function(data){
                        if( data == 0 ){
                            location.reload();
                        }
                    }
                });
            }, 1000);

My problem is that it will auto-close the datetime picker (https://nehakadam.github.io/DateTimePicker/)

the picker will pop up and then close so you can’t select anything.

is there a better way of handling the ajax request since I’m using that to check if there is still an active session and if there’s none it will reload the page so it will go to the login page.

If I remove the ajax request the datetime picker works normally. it’s only when the ajax request is present inside the setInterval that the problem occurs.

How to disable dates in react-day-picker for already booked dates?

I’m working on a booking widget using react-day-picker in a React application. I need to disable dates that are already booked so users cannot select them. I’ve fetched the booked dates from my backend, but I’m having trouble disabling these dates in the calendar.

The DayPicker should disable already booked dates and past dates, but it’s not working as expected, since i can select all future dates

Error Message:
N/A

Environment:

React: 17.0.2
react-day-picker: 8.0.0
axios: 0.21.1

How can I ensure the calendar correctly disables unavailable dates and handles date selection accurately?

Here’s my current component:

import { useContext, useEffect, useState } from "react";
import { differenceInCalendarDays, isSameDay } from "date-fns";
import axios from "axios";
import { Navigate, useParams } from "react-router-dom";
import { UserContext } from "../UserContext";
import { DayPicker } from "react-day-picker";
import "react-day-picker/dist/style.css";

function BookingWidget({ place }) {
  const [checkIn, setCheckIn] = useState("");
  const [checkOut, setCheckOut] = useState("");
  const [numberGuests, setNumberGuests] = useState(1);
  const [name, setName] = useState("");
  const [mobile, setMobile] = useState("");
  const [redirect, setRedirect] = useState("");
  const { user } = useContext(UserContext);
  const { id } = useParams();
  const [alreadyBooked, setAlreadyBooked] = useState([]);

  useEffect(() => {
    if (user) {
      setName(user.name);
    }
    axios.get("/booking/" + id).then((response) => {
      const bookings = response.data;
      const bookedDates = [];
      for (let booking of bookings) {
        const start = new Date(booking.checkIn);
        const end = new Date(booking.checkOut);
        for (let date = start; date <= end; date.setDate(date.getDate() + 1)) {
          bookedDates.push(new Date(date));
        }
      }
      setAlreadyBooked(bookedDates);
    });
  }, [user, id]);

  let numberOfNights = 0;
  if (checkIn && checkOut) {
    numberOfNights = differenceInCalendarDays(
      new Date(checkOut),
      new Date(checkIn)
    );
  }

  async function bookThisPlace() {
    const response = await axios.post("/bookings", {
      checkIn,
      checkOut,
      numberGuests,
      name,
      mobile,
      price: numberOfNights * place.price,
      place: place._id,
    });
    const bookingId = response.data._id;
    setRedirect(`/account/bookings/${bookingId}`);
  }

  const isPastDay = (day) => {
    return day < new Date();
  };

  const isBookedDay = (day) => {
    return alreadyBooked.some(bookedDay => isSameDay(day, bookedDay));
  };

  const disabledDays = [
    { before: new Date() },  // Disable past days
    ...alreadyBooked.map(date => ({ date })) // Disable already booked days
  ];

  if (redirect) {
    return <Navigate to={redirect} />;
  }

  return (
    <div className="bg-white shadow p-4 rounded-2xl">
      <div className="text-2xl text-center mb-3">
        <b>Price: {place.price} €/night</b>
      </div>
      <div className="border mt-4 rounded-2xl">
        <div className="flex">
          <div className="py-3 px-4">
            <label>Check-in date: </label>
            <DayPicker
              mode="single"
              selected={checkIn ? new Date(checkIn) : undefined}
              onSelect={setCheckIn}
              disabled={disabledDays}
            />
          </div>
          <div className="py-3 px-4 border-l">
            <label>Check-out date: </label>
            <DayPicker
              mode="single"
              selected={checkOut ? new Date(checkOut) : undefined}
              onSelect={setCheckOut}
              disabled={disabledDays}
            />
          </div>
        </div>
        <div className="py-3 px-4 border-t">
          <label>Guests: </label>
          <input
            type="number"
            value={numberGuests}
            onChange={(ev) => setNumberGuests(ev.target.value)}
          />
        </div>
        {numberOfNights > 0 && (
          <div className="py-3 px-4 border-t">
            <label>Your name: </label>
            <input
              type="text"
              value={name}
              onChange={(ev) => setName(ev.target.value)}
            />
            <label>Phone: </label>
            <input
              type="tel"
              value={mobile}
              onChange={(ev) => setMobile(ev.target.value)}
            />
          </div>
        )}
      </div>

      <button onClick={bookThisPlace} className="primary rounded-2xl mt-4">
        Book now{" "}
        {numberOfNights > 0 && (
          <span>{numberOfNights * place.price} €</span>
        )}
      </button>
    </div>
  );
}

export default BookingWidget;

´´´

Maps Javascript API – InvalidValueError on refresh

On wordpress with Sage 9 theme, enqueueing the script as follows

wp_enqueue_script('google-maps', 'https://maps.googleapis.com/maps/api/js?key=' . $_ENV['GOOGLE_MAPS_API'] . '&loading=async&callback=initMap&libraries=marker,places&v=beta', [], null, true);

and creating a map like this

function initMap() {
    map = new google.maps.Map(document.getElementById("map"), {
        center: { lat: 34, lng: 150 },
        zoom: 8,
    });
}

On refreshing the page I get this error in console

Uncaught (in promise) InvalidValueError

without any additional hint.

Landing on the page I can load the map.
I cannot trace back to the problem.

How can I debug this?

why react-hook-form doesn’t see on Submit next.js

I’m working on setting up the server now. I want to make it possible to edit my form. With the usual functionality, everything works fine, when you just need to add an address, POSTs are sent and the data is updated. But when it comes to changing the data that I previously passed to initialData, problems begin. onSubmit simply refuses to compile, although I checked the arrival of data 100 times and initialData passes all the data for initialization.

const AddPointMap = ({ isOpen, onClose, onSubmitAddress, center, type, typeOfButton, initialData }) => {
  const [isLoaded, setIsLoaded] = useState(false);
  const [loadError, setLoadError] = useState(null);
  const [marker, setMarker] = useState(null);
  const [capacityValue, setCapacityValue] = useState('');

  const loader = new Loader({
    apiKey: GOOGLE_MAPS_API_KEY ?? '',
    version: 'weekly',
    libraries,
    id: 'google-map-script',
  });

  const { register, handleSubmit, setValue, control, formState: { errors }, reset } = useForm();
  const [selectedValue, setSelectedValue] = useState(null);

  useEffect(() => {
    if (initialData) {
      console.log('Initial Data:', initialData);
      setValue('name', initialData.Name || '');
      setValue('comment', initialData.Comment || '');
      setValue('primaryFirstName', initialData.PrimaryFirstName || '');
      setValue('primaryLastName', initialData.PrimaryLastName || '');
      setValue('primaryPhonNumber', initialData.PrimaryPhonNumber || '');
      setValue('capacity', initialData.Capacity || '');
      setMarker({
        lat: initialData.Lat || 0,
        long: initialData.Long || 0,
      });
      setCapacityValue(initialData.Capacity || '');
    } else {
      reset({
        name: '',
        capacity: '',
        comment: '',
        primaryFirstName: '',
        primaryLastName: '',
        primaryPhonNumber: '',
        select: '',
      });
      setMarker(null);
      setCapacityValue('');
    }
  }, [isOpen, initialData, reset, setValue, control]);
  
  
  const onSubmit = async (data) => {
    console.log(data);
    const completeData = {
      name: data.name,
      lat: marker?.lat || 0,
      long: marker?.long || 0,
      capacity: data.capacity,
      comment: data.comment,
      primaryFirstName: data.primaryFirstName,
      primaryLastName: data.primaryLastName,
      primaryPhonNumber: data.primaryPhonNumber,
      type: type === 'Oil' ? '1' : '2'
    };
  
    let result;
    if (initialData) {
      result = await updateCompanyLocation(initialData.Id, completeData); // Обновление адреса
    } else {
      console.log(completeData);
      result = await createCompanyLocation(completeData); // Создание нового адреса
    }
  
    if (result.success) {
      onSubmitAddress(result.data);
    } else {
      console.error(result.message);
    }
  
    onClose();
    reset();
    setMarker(null);
    setValue("primaryPhonNumber", "");
    setValue('capacity', '');
  };
  

  useEffect(() => {
    loader
      .load()
      .then(() => setIsLoaded(true))
      .catch((error) => setLoadError(error));
  }, [loader]);

  const handleMapClick = useCallback((event) => {
    const lat = event.latLng.lat();
    const long = event.latLng.lng();
    setMarker({ lat, long });
  }, []);

  const onCancel = () => {
    onClose();
    reset();
    setMarker(null);
    setSelectedValue(null);
  };

  if (loadError) {
    return <div>Error loading Google Maps</div>;
  }

  if (!isLoaded) {
    return <div>Loading Google Maps...</div>;
  }

  return (
    <>
      <Modal
        isOpen={isOpen}
        onRequestClose={onClose}
        contentLabel="Add Operational Address"
        ariaHideApp={false}
        style={{ 
          overlay: { backgroundColor: 'rgba(31, 34, 41, 0.8)' }, 
          content: { borderRadius: '10px' }  
        }}
      >
        <div className={styles.title}>
          <h2>{type} {type === "Oil" ? 'Container Location' : 'Location'}</h2>    
          <button onClick={onClose}><IoClose size={34}/></button>
        </div>
        <GoogleMap
          id="google-map"
          mapContainerStyle={containerStyle}
          center={center}
          zoom={16}
          onClick={handleMapClick}
        >
          {marker && (
            <OverlayView
              position={{ lat: marker.lat, lng: marker.long }}
              mapPaneName={OverlayView.OVERLAY_MOUSE_TARGET}
            >
              <FaMapMarkerAlt size={24} />
            </OverlayView>
          )}
        </GoogleMap>
      <form className={styles.dialogForm} onSubmit={handleSubmit(onSubmit)}>
        <label className={styles.smallText}>{type} Location Name:</label>
          <input 
            className={`${styles.formInput} ${errors.name && styles.inputError}`} 
            placeholder="Enter name" 
            {...register("name", { required: true })}
          />
          <label className={styles.smallText}>Location coordinates:</label>
          { marker && (
            <div className={styles.selectAdress}>
              {marker.lat}, {marker.long}
            </div>
          )}
          {!marker && (
            <>
              <input 
                className={`${styles.formInput} ${errors.selectAdress && styles.inputError}`} 
                type="text" 
                placeholder="Put a point on the map" 
                disabled={true}
                {...register("selectAdress", { required: true })}
              />
            </>
          )}
          <label className={styles.smallText}>{type === 'Oil' ? 'Coocking Oil' : 'Grease Trap'} Capacity:</label>
          <div className={errors.capacity && styles.inputError}>
            <Controller
              name="capacity"
              control={control}
              rules={{ required: true }}
              render={({ field }) => (
                <CustomSelector
                  options={options}
                  select={type === 'Oil' ? 'Oil Capacity' : 'Trap Capacity'}
                  selectValue={(value) => {
                    setSelectedValue(value);
                    field.onChange(value);
                  }}
                  initialValue={capacityValue}
                />
              )}
            />
          </div>
          <label className={styles.smallText}>{type === 'Oil' ? 'Oil' : 'Trap'} Location Comments:</label>
          <textarea 
            className={`${styles.textareaInput} ${errors.comment && styles.inputError}`} 
            placeholder="Enter text" 
            rows="6" 
            {...register("comment", { required: true })} 
          />
          <label className={styles.smallText}>Primary contact person:</label>
          <div className={styles.personInput}>
            <input 
              className={`${styles.formInput} ${errors.primaryFirstName && styles.inputError}`} 
              type="text" 
              placeholder="First Name" 
              {...register("primaryFirstName", { required: true })} 
            />
            <input 
              className={`${styles.formInput} ${errors.primaryLastName && styles.inputError}`} 
              type="text" 
              placeholder="Last Name" 
              {...register("primaryLastName", { required: true })} 
            />
          </div>
          
          <label className={styles.smallText}>Contact number:</label>
          <Controller
            name="primaryPhonNumber"
            control={control}
            rules={{ required: true }}
            render={({ field }) => (
              <PhoneInput
                {...field}
                className={errors.primaryPhonNumber ? styles.numberInputError : styles.numberInput}
                defaultCountry="US"
                placeholder="Enter phone number"
                onChange={(value) => {
                  console.log('Phone Number Changed:', value);
                  field.onChange(value);
                }}
                limitMaxLength={10}
              />
            )}
          />
          
          <div className={styles.submitButtons}>
            <button className={styles.cancel} type='button' onClick={onCancel}>Cancel</button>
            <button type="submit">Add {typeOfButton} <GoPlusCircle size={24} /></button>
          </div>
        </form>
      </Modal>
    </>
  );
};

export default React.memo(AddPointMap);

I checked console.log() and tried to wrap handleSubmit in other functions in which to call onSubmit

Show track & trace field in Woocommerce quick order preview after wc-order-preview-note

In Woocommerce admin order list on the preview page i’m trying to add after “note” my “track & trace”.

I’m looking for documentation where wc-order-preview-note is registered to add it after but I don’t seem to be able to find it.

How it looks like now

How it looks like now

How it should look like
How it should look like

It has to check on the detail page what is fild in on “track & trace”
It has to check on the detail page what is fild in on "track & trace"

<?php
// Weergave van het Track & Trace veld in WooCommerce Admin Order Details
add_action('woocommerce_admin_order_data_after_order_details', function ($order) {
    woocommerce_wp_text_input(array(
        'id' => '_track_trace_field',
        'label' => __('Track & Trace:', 'text-domain'),
        'placeholder' => __('Voer trackingnummer in', 'text-domain'),
        'description' => __('Voer het trackingnummer voor de bestelling in.', 'text-domain'),
        'value' => get_post_meta($order->get_id(), '_track_trace_field', true),
        'desc_tip' => true,
    ));
}, 10, 1);

// Opslaan van het Track & Trace veld
add_action('woocommerce_process_shop_order_meta', function ($post_id, $post) {
    if (!empty($_POST['_track_trace_field'])) {
        update_post_meta($post_id, '_track_trace_field', sanitize_text_field($_POST['_track_trace_field']));
    }
}, 10, 2);
?>

Group array of objects by property name

I have an array that I need group by a certain property (“name”).

[
    {
        
        "name": "cor​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",
        "value": "#e61809​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9"
    },
    {
         "name": "cor​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",        
        "value": "#3e7555​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9-1"
    },
    {
        "name": "tamanho​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",
        "value": "m​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9"
    },
    {
        "name": "tamanho ​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",
        "value": "L​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9-1"
    }
]

and I need to convert to:

       

  [   [{
        
        "name": "cor​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",
        "value": "#e61809​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍‌‍​​‍​​​‌​‌‌‍‌‍‌‍‌‌‌‍‌​‌‍‌​​​​​​‍‌‍‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9"
    },
   {
         "name": "cor​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",        
        "value": "#3e7555​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‍‌​​​​‌​‌‍‌‍‌‍‌​​​​​‍​​‍‌‌‍​‌‍​‌‌‍​​​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9-1"
    }],
    [{
        "name": "tamanho​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",
        "value": "m​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‌‍​‌​‌‍‌​​‍‌​‌‌‌‍​‌​‍​​​​‍‌‌‍​‍‌‍​‌‌‍​‍​‌​‍‌​‌​‌‍‌‌​‍‌‌‍‌‌​‍‌​‍‌‌‍​‍‌‍‌‌‌‍​​‍‌​​‍​‌‍‌‍‌​‌‍​​‍​​‌​​‍‌​‌‍‌‍‌​​​​‌​‌‍‌‌​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍​‌‍​​‍​‍‌​​​​​‌‍​‌​‍‌‌‍‌​‌‍‌​‌‍‌​‌‍‌‍​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9"
    },
    {
        "name": "tamanho ​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‍‍‌‍​‌‌‍‌‌‍‌‌​‍​‍‌‌",
        "value": "L​​​​‌‍​‍​‍‌‍‌​‍‌‍‍‌‌‍‌‌‍‍‌‌‍‍​‍​‍​‍‍​‍​‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌‍‍‌‌‍​‍​‍​‍​​‍​‍‌‍‍​‌​‍‌‍‌‌‌‍‌‍​‍​‍​‍‍​‍​‍‌‍‍​‌‌​‌‌​‌​​‌​​‍‍​‍​‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‍‌‌‍‍‌‌​‌‍‌‌‌‍‍‌‌​​‍‌‍‌‌‌‍‌​‌‍‍‌‌‌​​‍‌‍‌‌‍‌‍‌​‌‍‌‌​‌‌​​‌​‍‌‍‌‌‌​‌‍‌‌‌‍‍‌‌​‌‍​‌‌‌​‌‍‍‌‌‍‌‍‍​‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‌‍​‍‌‍​‌‌​‌‍‌‌‌‌‌‌‌​‍‌‍​​‌‌‍‍​‌‌​‌‌​‌​​‌​​‍‌‌​​‌​​‌​‍‌‌​​‍‌​‌‍​‍‌‌​​‍‌​‌‍‌‍‌‌‌‍​‌‍‌‌‌‍​‌‍​‌‍‌‍‌​‍‍‌​‌‍​‌‌‍‍‌‍‍‌‌‌​‌‍‌​‍‍‌​‌‌​‌‌‌‌‍‌​‌‍‍‌‌‍​‍‌‍‌‍‍‌‌‍‌​​‌​‍​​‍​‌‍‌‍‌‍‌​​‌​​​​‌​‌‍​‌​‍‌‌‍‌‍​‌‍​​​‌‍​​‍‌​‌​‌‍​‌​​‍​​‍​‍‌​‍​​​‍‌‍‌‌‌‍​‍​‍‌‌‍​‌​‌​​‌​​​​‍​​‌​​‍​‌‍‌‌‌‍​‌​​‌‌‍​‍​‌‍​‍‌‍‌‌​‌‍‌‌​​‌‍‌‌​‌‌‌‍‌‍​‌‌​‍‌‍‍‌‌‍​‌‌‍‍‌‌​​‍‌‍‌​​‌‍​‌‌‌​‌‍‍​​‌‌‍​‌‌‌​‌‌​‌​‍‌‍‍‌‌‍​‍‌‌‌‌‌​‌‍‌‌‌​​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌​​‌‌​​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍‌‌​‌‌‌​​‍‌‌‌‍‍‌‍‌‌‌‍‌​‍‌‌​​‌​‌​​‍‌‌​​‌​‌​​‍‌‌​​‍​​‍‌‍​‌​‍​​​‍‌‍‌​​‍​​‌​​‍‌​‍​‌‍​‍‌‍‌‌​​​‌‍​‍‌‌​​‍​​‍​‍‌‌​‌‌‌​‌​​‍‍‌‌‍‌‍​‌‌‍​‌‌‌‌‍‌‌​‍​‍‌‌",
        "sku": "SKU-BICI-EST-TREKMAD-SLR9-1"
    }]
]
const groupedMap = variantsAttrs.reduce(
            (entryMap, e) => entryMap.set(e.name, [...entryMap.get(e.name)||[], e]),
            new Map()
        )

CORS violation occuring in safari, but not chrome

I have a react web app that makes calls to an express web server.

When I access the web app in chrome, everything works as expected.

When I access the web app in safari, I get an error:

XMLHttpRequest cannot load https://subdomain.example.com/path due to access control checks.

Googling suggests this is a CORS error. My express api sets up cors using the npm package:

const express = require('express');
const cors = require('cors');

const app = express();

(async () => {
    app.use(cors());

    app.use('/path', [
       require('./apis/path'),
    ]);

}()


This article explained that safari has stricter CORS policies that chrome, and that you can’t use wildcards and must include the schema. So I tried to specify allowed origins:

app.use(cors({ origin: ['https://app.example.com', 'https://other-app.example.com'] }));

The error stayed the same.

Is there something else I’m missing?

Angular pattern generation – Unable to get desired output

I have the following problem, I have tried in several ways, but still I am getting the below output, but my desired output is different. Can anyone of you please check and let me know where I am doing wrong and how to achieve the desired output pattern.
I have an input number(n). The input value should be between 2 and 10. We need to validate if the input value is not in expected range.

I am getting the below output:

if I enter n = 2:

A

B C

if I enter n = 3:

A

B C 

D E F

But my desired outputs are like below:

Example 1. if I give n = 3 in the input field, then we need to show the below output:

A

A B

C D E

Example 2: if I give n = 4 in the input field, then we need to show the below output:

A

A B

A B C

D E F G

Created Stackblitz

Node JS REST API HTTPS not working, how can I fix it? [closed]

I made a simple REST API that pulls data from MySQL. There is an SSL certificate in my site address.
https://example.com
When I go to the address, my site works.

When I want to access the REST API I created from my Site address, for example;

http://example.com:5007/survey_data

I can access with , but not with HTTPS

https://example.com:5007/survey_data

This address does not work.

const express = require('express');
const mysql = require('mysql2/promise'); 

const app = express();
const port = 5007;

const pool = mysql.createPool({
  host: 'localhost',
  user: 'admin',
  password: 'admin1234',
  database: 'test_database',
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0 
});

app.get('/survey_data', async (req, res) => {
  try {
    const [rows] = await pool.query('SELECT * FROM survey_data');
    res.json(rows);
  } catch (err) {
    console.error('Error ' + err);
    res.status(500).json({ error: 'error' });
  }
});

app.listen(port, () => {
  console.log('Server working...');
});

There is an SSL certificate on my site address.
https://example.com
When I go to the address, my site works.

How to use hook `element.init` for re-init datepicker with wire:navigate

I create a dynamic adding element form textfield input with livewire 3. Inside this form I have a datepicker field and want to re-init every datepicker field when new element added on that form.

Everythings OK, but when I use wire:navigate to pages navigate, I found an issue. My hook element.init always error when I access this page from another page. When first navigate page visit it ok, but senconds visit error show

Uncaught TypeError: window.Livewire.find(...) is undefined

My view code

@push('script')
    @script
        <script>
            function goBack(e) {
                window.history.back();
            }

            Livewire.hook('element.init', ({ component, el }) => {
                console.log("element.init");
                if (document.querySelectorAll('[id^="date_"]').length) {
                    initializeDatepickers();
                }
            });

            function initializeDatepickers() {
                // Check if rows exist in the Livewire component
                const rows = @this.get('rows');
                if (!rows || !Array.isArray(rows)) {
                    return;
                }

                // Iterate through each row and initialize datepicker
                rows.forEach((row, index) => {
                    const datepickerId = `#date_${index}`;
                    const $datepickerElement = $(datepickerId);

                    // Ensure the datepicker element exists before initializing
                    if ($datepickerElement.length) {
                        // Destroy existing datepicker to avoid conflicts
                        if ($datepickerElement.data('datepicker')) {
                            $datepickerElement.datepicker('destroy');
                        }
                        $datepickerElement.datepicker({
                            todayHighlight: true,
                            orientation: "bottom left",
                            autoclose: true,
                            format: "dd-mm-yyyy"
                        }).on("changeDate", function (e) {
                            @this.set(`rows.${index}.date`, e.format());
                        });
                    }
                });
            }

            $('#tanggal_ajuan').datepicker({
                todayHighlight: true,
                orientation: "bottom left",
                autoclose: true,
                format: "dd-mm-yyyy"
            }).on("changeDate", function (e) {
                @this.set('tanggal_ajuan', e.format());
            });
        </script>
    @endscript
@endpush

Now I decide to not use wire:navigate but how to fix this issue? But I still prefer to use wire:navigate. How to fix this issue?