PluginProbe
Elementor Website Builder – more than just a page builder / 3.30.0-beta1
Elementor Website Builder – more than just a page builder v3.30.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / assets / js / text-editor.bd4eccbd156d0b1fc3cf.bundle.js

text-editor.bd4eccbd156d0b1fc3cf.bundle.js in Elementor Website Builder – more than just a page builder 3.30.0-beta1, at assets/js/text-editor.bd4eccbd156d0b1fc3cf.bundle.js

96 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.30.0 - 10-06-2025 */
2 "use strict";
3 (self["webpackChunkelementorFrontend"] = self["webpackChunkelementorFrontend"] || []).push([["text-editor"],{
4
5 /***/ "../assets/dev/js/frontend/handlers/text-editor.js":
6 /*!*********************************************************!*\
7 !*** ../assets/dev/js/frontend/handlers/text-editor.js ***!
8 \*********************************************************/
9 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
11
12
13 Object.defineProperty(exports, "__esModule", ({
14 value: true
15 }));
16 exports["default"] = void 0;
17 __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
18 __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js");
19 class TextEditor extends elementorModules.frontend.handlers.Base {
20 getDefaultSettings() {
21 return {
22 selectors: {
23 paragraph: 'p:first'
24 },
25 classes: {
26 dropCap: 'elementor-drop-cap',
27 dropCapLetter: 'elementor-drop-cap-letter'
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,
44 $dropCapLetter
45 };
46 }
47 wrapDropCap() {
48 const isDropCapEnabled = this.getElementSettings('drop_cap');
49 if (!isDropCapEnabled) {
50 // If there is an old drop cap inside the paragraph
51 if (this.dropCapLetter) {
52 this.elements.$dropCap.remove();
53 this.elements.$paragraph.prepend(this.dropCapLetter);
54 this.dropCapLetter = '';
55 }
56 return;
57 }
58 const $paragraph = this.elements.$paragraph;
59 if (!$paragraph.length) {
60 return;
61 }
62 const paragraphContent = $paragraph.html().replace(/&nbsp;/g, ' '),
63 firstLetterMatch = paragraphContent.match(/^ *([^ ] ?)/);
64 if (!firstLetterMatch) {
65 return;
66 }
67 const firstLetter = firstLetterMatch[1],
68 trimmedFirstLetter = firstLetter.trim();
69
70 // Don't apply drop cap when the content starting with an HTML tag
71 if ('<' === trimmedFirstLetter) {
72 return;
73 }
74 this.dropCapLetter = firstLetter;
75 this.elements.$dropCapLetter.text(trimmedFirstLetter);
76 const restoredParagraphContent = paragraphContent.slice(firstLetter.length).replace(/^ */, match => {
77 return new Array(match.length + 1).join('&nbsp;');
78 });
79 $paragraph.html(restoredParagraphContent).prepend(this.elements.$dropCap);
80 }
81 onInit() {
82 super.onInit(...arguments);
83 this.wrapDropCap();
84 }
85 onElementChange(propertyName) {
86 if ('drop_cap' === propertyName) {
87 this.wrapDropCap();
88 }
89 }
90 }
91 exports["default"] = TextEditor;
92
93 /***/ })
94
95 }]);
96 //# sourceMappingURL=text-editor.bd4eccbd156d0b1fc3cf.bundle.js.map