Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/magento/module-page-builder/view/adminhtml/web/ts/js/property/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/vendor/magento/module-page-builder/view/adminhtml/web/ts/js/property/link.ts
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

import PropertyReaderInterface from "./property-reader-interface";

/**
 * @api
 */
export default class Link implements PropertyReaderInterface {

    private regexpByLinkType: {
        [key: string]: RegExp;
    } = {
        category: new RegExp(/id_path=['"]category\/(\d+)/),
        product: new RegExp(/id_path=['"]product\/(\d+)/ ),
        page: new RegExp(/page_id=['"](\d+)/),
    };

    /**
     * Read link from element
     *
     * @param {HTMLElement} element
     * @returns {string | object}
     */
    public read(element: HTMLElement): string | object {
        let href = element.getAttribute("href");
        const attributeLinkType = element.getAttribute("data-link-type");

        if (typeof href === "string" && attributeLinkType !== "default") {
            href = this.getIdFromWidgetSyntax(href, this.regexpByLinkType[attributeLinkType]);
        }

        return {
            [attributeLinkType]: href,
            setting: element.getAttribute("target") === "_blank",
            type: attributeLinkType,
        };
    }

    /**
     * Returns link value from widget string
     *
     * @param {string} href
     * @param {RegExp} regexp
     * @return {string}
     */
    private getIdFromWidgetSyntax(href: string, regexp: RegExp): string {
        const attributeIdMatches = href.match(regexp);

        if (!attributeIdMatches) {
            return href;
        }

        return attributeIdMatches[1];
    }
}

Spamworldpro Mini