balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

text-editor.a8434931ecdcd5ff7589.bundle.js (2844B)


      1 /*! elementor - v3.4.4 - 13-09-2021 */
      2 (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["text-editor"],{
      3 
      4 /***/ "../assets/dev/js/frontend/handlers/text-editor.js":
      5 /*!*********************************************************!*\
      6   !*** ../assets/dev/js/frontend/handlers/text-editor.js ***!
      7   \*********************************************************/
      8 /***/ ((__unused_webpack_module, exports) => {
      9 
     10 "use strict";
     11 
     12 
     13 Object.defineProperty(exports, "__esModule", ({
     14   value: true
     15 }));
     16 exports.default = void 0;
     17 
     18 class TextEditor extends elementorModules.frontend.handlers.Base {
     19   getDefaultSettings() {
     20     return {
     21       selectors: {
     22         paragraph: 'p:first'
     23       },
     24       classes: {
     25         dropCap: 'elementor-drop-cap',
     26         dropCapLetter: 'elementor-drop-cap-letter'
     27       }
     28     };
     29   }
     30 
     31   getDefaultElements() {
     32     const selectors = this.getSettings('selectors'),
     33           classes = this.getSettings('classes'),
     34           $dropCap = jQuery('<span>', {
     35       class: classes.dropCap
     36     }),
     37           $dropCapLetter = jQuery('<span>', {
     38       class: classes.dropCapLetter
     39     });
     40     $dropCap.append($dropCapLetter);
     41     return {
     42       $paragraph: this.$element.find(selectors.paragraph),
     43       $dropCap: $dropCap,
     44       $dropCapLetter: $dropCapLetter
     45     };
     46   }
     47 
     48   wrapDropCap() {
     49     const isDropCapEnabled = this.getElementSettings('drop_cap');
     50 
     51     if (!isDropCapEnabled) {
     52       // If there is an old drop cap inside the paragraph
     53       if (this.dropCapLetter) {
     54         this.elements.$dropCap.remove();
     55         this.elements.$paragraph.prepend(this.dropCapLetter);
     56         this.dropCapLetter = '';
     57       }
     58 
     59       return;
     60     }
     61 
     62     const $paragraph = this.elements.$paragraph;
     63 
     64     if (!$paragraph.length) {
     65       return;
     66     }
     67 
     68     const paragraphContent = $paragraph.html().replace(/&nbsp;/g, ' '),
     69           firstLetterMatch = paragraphContent.match(/^ *([^ ] ?)/);
     70 
     71     if (!firstLetterMatch) {
     72       return;
     73     }
     74 
     75     const firstLetter = firstLetterMatch[1],
     76           trimmedFirstLetter = firstLetter.trim(); // Don't apply drop cap when the content starting with an HTML tag
     77 
     78     if ('<' === trimmedFirstLetter) {
     79       return;
     80     }
     81 
     82     this.dropCapLetter = firstLetter;
     83     this.elements.$dropCapLetter.text(trimmedFirstLetter);
     84     const restoredParagraphContent = paragraphContent.slice(firstLetter.length).replace(/^ */, match => {
     85       return new Array(match.length + 1).join('&nbsp;');
     86     });
     87     $paragraph.html(restoredParagraphContent).prepend(this.elements.$dropCap);
     88   }
     89 
     90   onInit(...args) {
     91     super.onInit(...args);
     92     this.wrapDropCap();
     93   }
     94 
     95   onElementChange(propertyName) {
     96     if ('drop_cap' === propertyName) {
     97       this.wrapDropCap();
     98     }
     99   }
    100 
    101 }
    102 
    103 exports.default = TextEditor;
    104 
    105 /***/ })
    106 
    107 }]);
    108 //# sourceMappingURL=text-editor.a8434931ecdcd5ff7589.bundle.js.map