@ostendis/grapesjs-preset-ostendis-simple 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
Copyright (c) 2016, Artur Arseniev
|
|
2
|
-
All rights reserved.
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without modification,
|
|
5
|
-
are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
- Redistributions of source code must retain the above copyright notice, this
|
|
8
|
-
list of conditions and the following disclaimer.
|
|
9
|
-
- Redistributions in binary form must reproduce the above copyright notice, this
|
|
10
|
-
list of conditions and the following disclaimer in the documentation and/or
|
|
11
|
-
other materials provided with the distribution.
|
|
12
|
-
- Neither the name "GrapesJS" nor the names of its contributors may be
|
|
13
|
-
used to endorse or promote products derived from this software without
|
|
14
|
-
specific prior written permission.
|
|
15
|
-
|
|
16
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
17
|
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
18
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
19
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
20
|
-
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
21
|
-
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
22
|
-
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
23
|
-
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
24
|
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
1
|
+
Copyright (c) 2016, Artur Arseniev
|
|
2
|
+
All rights reserved.
|
|
3
|
+
|
|
4
|
+
Redistribution and use in source and binary forms, with or without modification,
|
|
5
|
+
are permitted provided that the following conditions are met:
|
|
6
|
+
|
|
7
|
+
- Redistributions of source code must retain the above copyright notice, this
|
|
8
|
+
list of conditions and the following disclaimer.
|
|
9
|
+
- Redistributions in binary form must reproduce the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer in the documentation and/or
|
|
11
|
+
other materials provided with the distribution.
|
|
12
|
+
- Neither the name "GrapesJS" nor the names of its contributors may be
|
|
13
|
+
used to endorse or promote products derived from this software without
|
|
14
|
+
specific prior written permission.
|
|
15
|
+
|
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
17
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
18
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
19
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
20
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
21
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
22
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
23
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
24
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
25
25
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.gjs-one-bg{background-color:#fff}.gjs-two-color{color:#657390}.gjs-blocks-c{background-color:#f2f2f2}.gjs-pn-commands,.gjs-pn-views-container{box-shadow:none}.gjs-four-color{color:#ff8200}.gjs-color-warn{color:#ff8200;fill:#ff8200;text-decoration:line-through}.gjs-radio-item input:checked+.gjs-radio-item-label{color:#fff;background-color:#3b5998}.gjs-field-checkbox input:checked+.gjs-chk-icon{border-color:#3b5998}.gjs-field-arrow-d{border-top:4px solid #3b5998}.gjs-field-arrow-u{border-bottom:4px solid #3b5998}.gjs-clm-tags #gjs-clm-new{color:#657390}.gjs-pn-commands,.gjs-cv-canvas{width:80%}.gjs-pn-views,.gjs-pn-views-container{width:20%;transition:all .2s ease-in}.gjs-pn-options{right:20%}.gjs-field-arrows{z-index:9}.gjs-block.fa::before,.gjs-block.fa-solid::before,.gjs-block.fa-regular::before,.gjs-block.fa-brands::before{display:block;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:48px}.gjs-block.fa-regular::before,.gjs-block.fa-brands::before{font-weight:400}.gjs-block.fa-solid::before{font-weight:900}.gjs-drag-helper{background-color:#3b5998 !important}.gjs-selected{outline:2px solid #3b5998 !important}.gjs-highlighter{outline:1px solid #3b5998 !important}*.gjs-hover,div.gjs-hover{outline:1px solid #3b5998}.gjs-badge,.gjs-badge{background-color:#3b5998}.gjs-toolbar{background-color:#3b5998}.gjs-toolbar-items{display:flex;justify-content:center;align-items:center;text-align:center}.gjs-toolbar-items>.gjs-toolbar-item{height:26px;display:flex;justify-content:center;align-items:center}.gjs-resizer-h{border:2px solid #3b5998}.gjs-clm-tags .gjs-sm-title,.gjs-sm-sector .gjs-sm-title{border-top:none;background-color:#fff}.gjs-clm-tags .gjs-clm-tag{background-color:#3b5998;border:none;box-shadow:none;padding:5px 8px;text-shadow:none;color:#fff}.gjs-field{color:#657390;background-color:rgba(0,0,0,.1);box-shadow:none}.gjs-btnt.gjs-pn-active,.gjs-pn-btn.gjs-pn-active{box-shadow:none}.gjs-pn-btn:hover{color:#3b5998}.gjs-btnt.gjs-pn-active,.gjs-color-active,.gjs-pn-btn.gjs-pn-active,.gjs-pn-btn:active,.gjs-block:hover{color:#3b5998}#gjs-rte-toolbar .gjs-rte-btn,.gjs-btn-prim,.gjs-btnt,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add,.gjs-color-main,.gjs-mdl-dialog,.gjs-off-prv,.gjs-pn-btn,.gjs-pn-panel,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-stack #gjs-sm-add{color:#657390}#gjs-rte-toolbar,.gjs-bg-main,.gjs-clm-select option,.gjs-clm-tags .gjs-sm-colorp-c,.gjs-editor,.gjs-mdl-dialog,.gjs-nv-item .gjs-nv-title-c,.gjs-off-prv,.gjs-pn-panel,.gjs-block,.gjs-select option,.gjs-field-select option,.gjs-sm-sector .gjs-sm-colorp-c,.gjs-sm-select option,.gjs-sm-unit option,.sp-container .sp-container button{color:#657390;background-color:#fff}.
|
|
1
|
+
.gjs-one-bg{background-color:#fff}.gjs-two-color{color:#657390}.gjs-blocks-c{background-color:#f2f2f2}.gjs-pn-commands,.gjs-pn-views-container{box-shadow:none}.gjs-four-color{color:#ff8200}.gjs-color-warn{color:#ff8200;fill:#ff8200;text-decoration:line-through}.gjs-radio-item input:checked+.gjs-radio-item-label{color:#fff;background-color:#3b5998}.gjs-field-checkbox input:checked+.gjs-chk-icon{border-color:#3b5998}.gjs-field-arrow-d{border-top:4px solid #3b5998}.gjs-field-arrow-u{border-bottom:4px solid #3b5998}.gjs-clm-tags #gjs-clm-new{color:#657390}.gjs-pn-commands,.gjs-cv-canvas{width:80%}.gjs-pn-views,.gjs-pn-views-container{width:20%;transition:all .2s ease-in}.gjs-pn-options{right:20%}.gjs-field-arrows{z-index:9}.gjs-block.fa::before,.gjs-block.fa-solid::before,.gjs-block.fa-regular::before,.gjs-block.fa-brands::before{display:block;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:48px}.gjs-block.fa-regular::before,.gjs-block.fa-brands::before{font-weight:400}.gjs-block.fa-solid::before{font-weight:900}.gjs-drag-helper{background-color:#3b5998 !important}.gjs-selected{outline:2px solid #3b5998 !important}.gjs-highlighter{outline:1px solid #3b5998 !important}*.gjs-hover,div.gjs-hover{outline:1px solid #3b5998}.gjs-badge,.gjs-badge{background-color:#3b5998}.gjs-toolbar{background-color:#3b5998}.gjs-toolbar-items{display:flex;justify-content:center;align-items:center;text-align:center}.gjs-toolbar-items>.gjs-toolbar-item{height:26px;display:flex;justify-content:center;align-items:center}.gjs-resizer-h{border:2px solid #3b5998}.gjs-clm-tags .gjs-sm-title,.gjs-sm-sector .gjs-sm-title{border-top:none;background-color:#fff}.gjs-clm-tags .gjs-clm-tag{background-color:#3b5998;border:none;box-shadow:none;padding:5px 8px;text-shadow:none;color:#fff}.gjs-field{color:#657390;background-color:rgba(0,0,0,.1);box-shadow:none}.gjs-btnt.gjs-pn-active,.gjs-pn-btn.gjs-pn-active{box-shadow:none}.gjs-pn-btn:hover{color:#3b5998}.gjs-btnt.gjs-pn-active,.gjs-color-active,.gjs-pn-btn.gjs-pn-active,.gjs-pn-btn:active,.gjs-block:hover{color:#3b5998}#gjs-rte-toolbar .gjs-rte-btn,.gjs-btn-prim,.gjs-btnt,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add,.gjs-color-main,.gjs-mdl-dialog,.gjs-off-prv,.gjs-pn-btn,.gjs-pn-panel,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-stack #gjs-sm-add{color:#657390}#gjs-rte-toolbar,.gjs-bg-main,.gjs-clm-select option,.gjs-clm-tags .gjs-sm-colorp-c,.gjs-editor,.gjs-mdl-dialog,.gjs-nv-item .gjs-nv-title-c,.gjs-off-prv,.gjs-pn-panel,.gjs-block,.gjs-select option,.gjs-field-select option,.gjs-sm-sector .gjs-sm-colorp-c,.gjs-sm-select option,.gjs-sm-unit option,.sp-container .sp-container button{color:#657390;background-color:#fff}.gjs-ost-toolbar{display:none;position:absolute;background-color:#3b5998;white-space:nowrap;color:#fff;z-index:11;bottom:-26px;right:0}.gjs-ost-toolbar.show{display:block;pointer-events:all}.gjs-ost-toolbar .gjs-ost-toolbar-item{cursor:pointer;display:inline-block;width:26px;height:26px;padding:5px}.gjs-ost-toolbar .gjs-ost-toolbar-item.disable{color:hsla(0,0%,100%,.3);cursor:inherit}.gjs-sm-sector .gjs-sm-field input,.gjs-clm-tags .gjs-sm-field input,.gjs-sm-sector .gjs-clm-field input,.gjs-clm-tags .gjs-clm-field input,.gjs-sm-sector .gjs-clm-select input,.gjs-clm-tags .gjs-clm-select input,.gjs-sm-sector .gjs-sm-field select,.gjs-clm-tags .gjs-sm-field select,.gjs-sm-sector .gjs-clm-field select,.gjs-clm-tags .gjs-clm-field select,.gjs-sm-sector .gjs-clm-select select,.gjs-clm-tags .gjs-clm-select select{color:#657390;background-color:#fff}.gjs-import-label,.gjs-export-label{margin-bottom:10px;font-size:13px}.gjs-mdl-dialog .gjs-btn-import{margin-top:10px;background-color:#3b5998;color:#fff;padding-inline:15px;margin-left:auto}.CodeMirror{border-radius:3px;height:450px;font-family:sans-serif,monospace;letter-spacing:.3px;font-size:12px}.gjs-block{border:1px solid rgba(0,0,0,.2);border-radius:3px;margin:5px 2.5% 5px;box-shadow:0 1px 0 0 rgba(0,0,0,.15);transition:box-shadow,color .2s ease 0s}.gjs-block:hover{box-shadow:0 3px 4px 0 rgba(0,0,0,.15)}#gjs-pn-views-container.gjs-pn-panel{padding:39px 0 0}#gjs-pn-views.gjs-pn-panel{padding:0;border:none}#gjs-pn-views .gjs-pn-btn{margin:0;height:40px;padding:10px;width:25%;border-bottom:2px solid rgba(0,0,0,.3)}#gjs-pn-views .gjs-pn-active{color:hsla(0,0%,100%,.9);border-bottom:2px solid #3b5998;border-radius:0}#gjs-pn-devices-c{padding-left:30px}#gjs-pn-options{padding-right:30px}.gjs-pn-options{z-index:4}.gjs-sm-composite .gjs-sm-properties{display:flex;flex-flow:row wrap;justify-content:space-between}#gjs-sm-border-top-left-radius,#gjs-sm-border-top-right-radius,#gjs-sm-border-bottom-left-radius,#gjs-sm-border-bottom-right-radius,#gjs-sm-margin-top,#gjs-sm-margin-bottom,#gjs-sm-margin-right,#gjs-sm-margin-left,#gjs-sm-padding-top,#gjs-sm-padding-bottom,#gjs-sm-padding-right,#gjs-sm-padding-left{flex:999 1 60px}#gjs-sm-border-width,#gjs-sm-border-style,#gjs-sm-border-color{flex:999 1 80px}#gjs-sm-margin-left,#gjs-sm-padding-left{order:2}#gjs-sm-margin-right,#gjs-sm-padding-right{order:3}#gjs-sm-margin-bottom,#gjs-sm-padding-bottom{order:4}.gjs-field-radio{width:100%}.gjs-field-radio #gjs-sm-input-holder{display:flex}.gjs-radio-item{flex:1 0 auto;text-align:center}.gjs-sm-sector .gjs-sm-property.gjs-sm-list{width:50%}.gjs-mdl-content{border-top:none}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-active{background-color:hsla(0,0%,100%,.09)}.gjs-f-button::before{content:"B"}.gjs-f-divider::before{content:"D"}.gjs-mdl-dialog-sm{width:300px}.gjs-mdl-dialog form .gjs-sm-property{font-size:12px;margin-bottom:15px}.gjs-mdl-dialog form .gjs-sm-label{margin-bottom:5px}#gjs-clm-status-c{display:none}.anim-spin{animation:.5s linear 0s normal none infinite running spin}.form-status{float:right;font-size:14px}.text-danger{color:#f92929}#alert-msg-overlay{position:absolute;top:0;left:0;width:100%;height:401px;z-index:990}.alert-msg{position:absolute;background-color:#fff;top:50px;left:20%;width:60%;min-width:300px;z-index:999;border-radius:5px;box-shadow:0 0 11px rgba(0,0,0,.5)}.alert-msg .header{background-color:#ff8200;color:#fff;padding:15px;border-top-left-radius:5px;border-top-right-radius:5px;height:50px;box-sizing:border-box}.alert-msg .header h3{margin:0}.alert-msg .header h3 span{margin-right:10px}.alert-msg .content{padding:20px;box-sizing:border-box}.alert-msg .content .files{overflow-y:auto;margin:15px 0}.alert-msg .content .files ul{margin:5px;padding:0 0 0 15px}.alert-msg .content .files ul ::marker{content:"×"}.alert-msg .content .files ul li{padding-left:5px}.alert-msg .content strong{font-weight:bold}.alert-msg .content button.ok{margin:15px auto;display:flex;background-color:#fff;padding:5px 15px;text-transform:uppercase;color:currentColor;border:none;font-weight:normal;font-size:1.1rem;cursor:pointer}.alert-msg .content button.ok:hover{background-color:#dfdfdf}.gjs-mdl-header{display:flex;padding:10px 15px;line-height:25px}.gjs-mdl-btn-close{position:inherit;right:inherit;top:inherit;margin-left:auto;border-color:rgba(59,89,152,.2);line-height:25px;font-size:2rem}.gjs-mdl-container.alertModalOstBlocks .gjs-mdl-dialog{width:500px;max-width:100%;border-radius:5px}.gjs-mdl-container.alertModalOstBlocks .gjs-mdl-header{background-color:#ff8200;color:#fff;border:none;border-top-left-radius:5px;border-top-right-radius:5px;font-weight:bold}.gjs-mdl-container.alertModalOstBlocks .gjs-mdl-btn-close{color:#fff}.gjs-mdl-container.alertModalOstBlocks .gjs-mdl-content{padding:20px}.gjs-mdl-container.alertModalOstBlocks button.ok{margin:15px auto;display:flex;background-color:#fff;padding:5px 15px;text-transform:uppercase;color:currentColor;border:none;font-weight:normal;font-size:1.1rem;cursor:pointer}.gjs-mdl-container.alertModalOstBlocks button.ok:hover{background-color:#dfdfdf}.gjs-editor-cont .sp-container .sp-choose{background:#3b5998;border-color:#3b5998;color:#fff;border-radius:0}.gjs-editor-cont .sp-container .sp-choose:hover,.gjs-editor-cont .sp-container .sp-choose:active{background:#3b5998;border-color:#3b5998;color:#657390}.gjs-trt-trait{padding:10px;flex-wrap:wrap}.gjs-trt-trait .gjs-label-wrp{width:100%}.gjs-select-option-ok,.gjs-select-option-ok:checked{background-color:#b9ffb2;color:#006400}.gjs-select-option-nok,.gjs-select-option-nok:checked{background-color:#ffb3b3;color:#680000}.gjs-trt-traits .sp-container{top:30px !important;left:-200px !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#paste-from-word-text{margin-bottom:15px;color:#657390;font-size:14px}#paste-from-word-content{box-sizing:border-box;width:100%;height:300px;padding:10px;border:1px solid #ddd;border-radius:4px;color:#657390;font-size:14px;line-height:1.4;resize:vertical}#paste-from-word-content:focus{outline:1px solid #3b5998}#paste-from-word-footer{margin-top:20px;display:flex;justify-content:flex-end;gap:10px}#paste-from-word-apply{padding:10px 20px;background:#3b5998;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}#paste-from-word-apply:focus{outline:1px solid #2e4576}
|
|
@@ -1281,22 +1281,51 @@ const plugin = (editor_1, ...args_1) => __awaiter(void 0, [editor_1, ...args_1],
|
|
|
1281
1281
|
var _a, _b, _c;
|
|
1282
1282
|
let selected = editor.getSelected();
|
|
1283
1283
|
if (selected != undefined) {
|
|
1284
|
+
// Disable all actions for all components
|
|
1284
1285
|
selected.set({
|
|
1285
1286
|
draggable: false,
|
|
1286
1287
|
removable: false,
|
|
1287
1288
|
copyable: false,
|
|
1288
1289
|
});
|
|
1289
1290
|
if (selected.is("ulistitem")) {
|
|
1291
|
+
// LI itself - show only select-parent
|
|
1292
|
+
selected.set({
|
|
1293
|
+
toolbar: [
|
|
1294
|
+
{
|
|
1295
|
+
attributes: { class: "fa-solid fa-arrow-up" },
|
|
1296
|
+
command: "select-parent",
|
|
1297
|
+
},
|
|
1298
|
+
],
|
|
1299
|
+
});
|
|
1290
1300
|
showOstToolbar(selected);
|
|
1291
1301
|
}
|
|
1292
1302
|
else if (selected.isChildOf("ulistitem")) {
|
|
1303
|
+
// Content inside LI - show only select-parent
|
|
1304
|
+
const liContentToolbar = [
|
|
1305
|
+
{
|
|
1306
|
+
attributes: { class: "fa-solid fa-arrow-up" },
|
|
1307
|
+
command: "select-parent",
|
|
1308
|
+
},
|
|
1309
|
+
];
|
|
1310
|
+
selected.set({
|
|
1311
|
+
toolbar: liContentToolbar,
|
|
1312
|
+
});
|
|
1293
1313
|
showOstToolbar(selected.closestType("ulistitem"));
|
|
1294
1314
|
}
|
|
1295
1315
|
else if (((_a = selected.getEl()) === null || _a === void 0 ? void 0 : _a.tagName) === "LI") {
|
|
1316
|
+
// Regular LI - show only select-parent
|
|
1317
|
+
selected.set({
|
|
1318
|
+
toolbar: [
|
|
1319
|
+
{
|
|
1320
|
+
attributes: { class: "fa-solid fa-arrow-up" },
|
|
1321
|
+
command: "select-parent",
|
|
1322
|
+
},
|
|
1323
|
+
],
|
|
1324
|
+
});
|
|
1296
1325
|
//If list element is empty replace with placeholder text (M&E case:)
|
|
1297
1326
|
if (selected.components().length === 0 && !selected.get("content")) {
|
|
1298
|
-
|
|
1299
|
-
|
|
1327
|
+
const selectedPosition = selected.index();
|
|
1328
|
+
const newComponent = (_b = selected
|
|
1300
1329
|
.parent()) === null || _b === void 0 ? void 0 : _b.append("<li>Text</li>", { at: selectedPosition });
|
|
1301
1330
|
selected.remove();
|
|
1302
1331
|
editor.select(newComponent);
|
|
@@ -1305,10 +1334,20 @@ const plugin = (editor_1, ...args_1) => __awaiter(void 0, [editor_1, ...args_1],
|
|
|
1305
1334
|
showOstToolbar(selected);
|
|
1306
1335
|
}
|
|
1307
1336
|
else if (isChildOfElement(selected.getEl(), "LI")) {
|
|
1337
|
+
// Content inside regular LI - show only select-parent
|
|
1338
|
+
const liContentToolbar = [
|
|
1339
|
+
{
|
|
1340
|
+
attributes: { class: "fa-solid fa-arrow-up" },
|
|
1341
|
+
command: "select-parent",
|
|
1342
|
+
},
|
|
1343
|
+
];
|
|
1344
|
+
selected.set({
|
|
1345
|
+
toolbar: liContentToolbar,
|
|
1346
|
+
});
|
|
1308
1347
|
showOstToolbar(selected.closest("li"));
|
|
1309
1348
|
}
|
|
1310
1349
|
else if (((_c = selected.getEl()) === null || _c === void 0 ? void 0 : _c.tagName) === "UL") {
|
|
1311
|
-
// UL is selected - show
|
|
1350
|
+
// UL is selected - show paste button first, select-parent at the end
|
|
1312
1351
|
const ulToolbar = [
|
|
1313
1352
|
{
|
|
1314
1353
|
attributes: {
|
|
@@ -1318,46 +1357,38 @@ const plugin = (editor_1, ...args_1) => __awaiter(void 0, [editor_1, ...args_1],
|
|
|
1318
1357
|
},
|
|
1319
1358
|
command: "paste-from-word",
|
|
1320
1359
|
},
|
|
1360
|
+
{
|
|
1361
|
+
label: '<svg viewBox="0 0 24 24"><path fill="currentColor" d="M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z"></path></svg>',
|
|
1362
|
+
command: "select-parent",
|
|
1363
|
+
},
|
|
1321
1364
|
];
|
|
1322
1365
|
selected.set({
|
|
1323
1366
|
toolbar: ulToolbar,
|
|
1324
1367
|
});
|
|
1325
1368
|
// Hide OST toolbar for UL elements
|
|
1326
|
-
|
|
1369
|
+
const ostToolbar = document.querySelector(".gjs-ost-toolbar");
|
|
1327
1370
|
ostToolbar === null || ostToolbar === void 0 ? void 0 : ostToolbar.classList.remove("show");
|
|
1328
1371
|
}
|
|
1329
1372
|
else {
|
|
1330
|
-
// For other elements, show default toolbar
|
|
1373
|
+
// For other elements, show default toolbar with only select-parent
|
|
1331
1374
|
const defaultToolbar = [
|
|
1332
1375
|
{
|
|
1333
|
-
|
|
1376
|
+
label: '<svg viewBox="0 0 24 24"><path fill="currentColor" d="M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z"></path></svg>',
|
|
1334
1377
|
command: "select-parent",
|
|
1335
1378
|
},
|
|
1336
|
-
{
|
|
1337
|
-
attributes: { class: "fa-solid fa-arrows-up-down-left-right" },
|
|
1338
|
-
command: "tlb-move",
|
|
1339
|
-
},
|
|
1340
|
-
{
|
|
1341
|
-
attributes: { class: "fa-regular fa-copy" },
|
|
1342
|
-
command: "tlb-clone"
|
|
1343
|
-
},
|
|
1344
|
-
{
|
|
1345
|
-
attributes: { class: "fa-solid fa-trash" },
|
|
1346
|
-
command: "tlb-delete"
|
|
1347
|
-
},
|
|
1348
1379
|
];
|
|
1349
1380
|
selected.set({
|
|
1350
1381
|
toolbar: defaultToolbar,
|
|
1351
1382
|
});
|
|
1352
1383
|
// Hide OST toolbar for other elements
|
|
1353
|
-
|
|
1384
|
+
const ostToolbar = document.querySelector(".gjs-ost-toolbar");
|
|
1354
1385
|
ostToolbar === null || ostToolbar === void 0 ? void 0 : ostToolbar.classList.remove("show");
|
|
1355
1386
|
}
|
|
1356
1387
|
}
|
|
1357
1388
|
});
|
|
1358
1389
|
// On deselected components
|
|
1359
1390
|
editor.on("component:deselected", () => {
|
|
1360
|
-
|
|
1391
|
+
const ostToolbar = document.querySelector(".gjs-ost-toolbar");
|
|
1361
1392
|
ostToolbar === null || ostToolbar === void 0 ? void 0 : ostToolbar.classList.remove("show");
|
|
1362
1393
|
});
|
|
1363
1394
|
function isChildOfElement(element, tag) {
|
|
@@ -1370,9 +1401,9 @@ const plugin = (editor_1, ...args_1) => __awaiter(void 0, [editor_1, ...args_1],
|
|
|
1370
1401
|
}
|
|
1371
1402
|
function showOstToolbar(listItem) {
|
|
1372
1403
|
var _a;
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1404
|
+
const elPos = (listItem === null || listItem === void 0 ? void 0 : listItem.index()) || 0;
|
|
1405
|
+
const elLast = (_a = listItem === null || listItem === void 0 ? void 0 : listItem.parent()) === null || _a === void 0 ? void 0 : _a.getLastChild().index();
|
|
1406
|
+
const ostToolbar = document.querySelector(".gjs-ost-toolbar");
|
|
1376
1407
|
if (ostToolbar != undefined) {
|
|
1377
1408
|
ostToolbar.innerHTML = "";
|
|
1378
1409
|
// Add clone button
|
|
@@ -1431,7 +1462,7 @@ const plugin = (editor_1, ...args_1) => __awaiter(void 0, [editor_1, ...args_1],
|
|
|
1431
1462
|
dwnBtn.title = options.t9n.ostToolbarDown;
|
|
1432
1463
|
dwnBtn.classList.add("gjs-ost-toolbar-item", "down");
|
|
1433
1464
|
if (elPos != elLast) {
|
|
1434
|
-
|
|
1465
|
+
let toPos = elPos + 2;
|
|
1435
1466
|
if (elPos == elLast) {
|
|
1436
1467
|
toPos = 0;
|
|
1437
1468
|
}
|
|
@@ -1454,48 +1485,6 @@ const plugin = (editor_1, ...args_1) => __awaiter(void 0, [editor_1, ...args_1],
|
|
|
1454
1485
|
ostToolbar.classList.add("show");
|
|
1455
1486
|
}
|
|
1456
1487
|
}
|
|
1457
|
-
// On storage start
|
|
1458
|
-
editor.on("storage:start", () => {
|
|
1459
|
-
// Reset all Components
|
|
1460
|
-
const getAllComponents = (model, result = []) => {
|
|
1461
|
-
result.push(model);
|
|
1462
|
-
model.components().each((mod) => getAllComponents(mod, result));
|
|
1463
|
-
return result;
|
|
1464
|
-
};
|
|
1465
|
-
var allComponents = getAllComponents(editor.DomComponents.getWrapper());
|
|
1466
|
-
allComponents.forEach((compo) => {
|
|
1467
|
-
var _a;
|
|
1468
|
-
const defaultToolbar = [
|
|
1469
|
-
{
|
|
1470
|
-
attributes: { class: "fa-solid fa-arrow-up" },
|
|
1471
|
-
command: "select-parent",
|
|
1472
|
-
},
|
|
1473
|
-
{
|
|
1474
|
-
attributes: { class: "fa-solid fa-arrows-up-down-left-right" },
|
|
1475
|
-
command: "tlb-move",
|
|
1476
|
-
},
|
|
1477
|
-
{ attributes: { class: "fa-regular fa-copy" }, command: "tlb-clone" },
|
|
1478
|
-
{ attributes: { class: "fa-solid fa-trash" }, command: "tlb-delete" },
|
|
1479
|
-
];
|
|
1480
|
-
// Add paste button only for UL elements
|
|
1481
|
-
if (compo.getEl && ((_a = compo.getEl()) === null || _a === void 0 ? void 0 : _a.tagName) === "UL") {
|
|
1482
|
-
defaultToolbar.push({
|
|
1483
|
-
attributes: {
|
|
1484
|
-
class: "fa-solid fa-file-word",
|
|
1485
|
-
"data-tooltip": options.t9n.ostToolbarPasteFromWord,
|
|
1486
|
-
"data-tooltip-pos": "bottom"
|
|
1487
|
-
},
|
|
1488
|
-
command: "paste-from-word",
|
|
1489
|
-
});
|
|
1490
|
-
}
|
|
1491
|
-
compo.set({
|
|
1492
|
-
draggable: true,
|
|
1493
|
-
removable: true,
|
|
1494
|
-
copyable: true,
|
|
1495
|
-
toolbar: defaultToolbar,
|
|
1496
|
-
});
|
|
1497
|
-
});
|
|
1498
|
-
});
|
|
1499
1488
|
});
|
|
1500
1489
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugin);
|
|
1501
1490
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grapesjs-preset-ostendis-simple.min.js","mappings":"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","sources":["webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/universalModuleDefinition","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/blocks.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/commands.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/components.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/consts.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/ostTranslations.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/panels.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/rte.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/traits.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/bootstrap","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/runtime/define property getters","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/runtime/hasOwnProperty shorthand","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/runtime/make namespace object","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@ostendis/grapesjs-preset-ostendis-simple\"] = factory();\n\telse\n\t\troot[\"@ostendis/grapesjs-preset-ostendis-simple\"] = factory();\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), () => {\nreturn ","import type { Editor, BlockProperties } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\n\r\nexport default function (editor: Editor, opts: Required<PluginOptions>) {\r\n const { Blocks } = editor;\r\n\r\n const addBlock = (id: string, blockDef: BlockProperties) => {\r\n opts.blocks.indexOf(id)! >= 0 &&\r\n editor.Blocks.add(id, {\r\n select: true,\r\n ...blockDef,\r\n ...opts.block(id),\r\n });\r\n };\r\n\r\n Blocks.getAll().reset();\r\n}\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport { BULLET_PATTERNS, cmdDeviceDesktop, cmdDeviceMobile, cmdDeviceTablet } from \"./consts\";\r\n\r\nexport default async (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { Commands } = editor;\r\n\r\n Commands.add(cmdDeviceDesktop, {\r\n run: (ed) => ed.setDevice(\"Desktop\"),\r\n stop: () => {},\r\n });\r\n\r\n Commands.add(cmdDeviceTablet, {\r\n run: (ed) => ed.setDevice(\"Tablet\"),\r\n stop: () => {},\r\n });\r\n\r\n Commands.add(cmdDeviceMobile, {\r\n run: (ed) => ed.setDevice(\"Mobile portrait\"),\r\n stop: () => {},\r\n });\r\n\r\n // Helper function to check if a line is a bullet point\r\n function isBulletPoint(line: string): boolean {\r\n const trimmedLine = line.trim();\r\n return BULLET_PATTERNS.some(pattern => pattern.test(trimmedLine));\r\n }\r\n\r\n // Helper function to remove bullet point markers\r\n function removeBulletPoint(line: string): string {\r\n let trimmedLine = line.trim();\r\n\r\n for (const pattern of BULLET_PATTERNS) {\r\n trimmedLine = trimmedLine.replace(pattern, '');\r\n }\r\n\r\n return trimmedLine.trim() || 'Text';\r\n }\r\n\r\n // Helper function to clean individual item content\r\n function cleanItemContent(content: string): string {\r\n content = content.replace(/<br\\s*\\/?>/gi, ' ');\r\n content = content.replace(/<[^>]+>/g, '');\r\n\r\n const entityMap: { [key: string]: string } = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '"': '\"',\r\n ''': \"'\",\r\n ' ': ' ',\r\n '•': '•',\r\n '‣': '‣',\r\n '⁃': '⁃',\r\n '•': '•',\r\n '·': '·'\r\n };\r\n\r\n for (const [entity, char] of Object.entries(entityMap)) {\r\n content = content.replace(new RegExp(entity, 'g'), char);\r\n }\r\n\r\n content = content.replace(/\\s+/g, ' ').trim();\r\n\r\n if (!content || /^[•·▪▫‣⁃◦‧⦿⦾\\-*+.()]+$/.test(content)) {\r\n content = 'Text';\r\n }\r\n\r\n return content;\r\n }\r\n\r\n // Helper function to clean Word content and convert to list items\r\n function cleanWordContentToListItems(content: string): string[] {\r\n content = content.replace(/<!--[\\s\\S]*?-->/g, '');\r\n content = content.replace(/<o:p\\s*\\/?>|<\\/o:p>/gi, '');\r\n content = content.replace(/<w:[\\s\\S]*?>/gi, '');\r\n content = content.replace(/\\s*mso-[^:]+:[^;\"]*;?/gi, '');\r\n content = content.replace(/\\s*class=\"[^\"]*Mso[^\"]*\"/gi, '');\r\n content = content.replace(/<span[^>]*>\\s*<\\/span>/gi, '');\r\n content = content.replace(/<p[^>]*>/gi, '\\n').replace(/<\\/p>/gi, '');\r\n content = content.replace(/[ \\t]+/g, ' ');\r\n content = content.replace(/\\n\\s+/g, '\\n');\r\n content = content.trim();\r\n\r\n let items: string[] = [];\r\n\r\n if (content.includes('<li>') || content.includes('<LI>')) {\r\n const liMatches = content.match(/<li[^>]*>(.*?)<\\/li>/gi);\r\n if (liMatches) {\r\n items = liMatches.map(li => {\r\n const itemContent = li.replace(/<li[^>]*>|<\\/li>/gi, '').trim();\r\n return cleanItemContent(itemContent);\r\n });\r\n }\r\n } else {\r\n const lines = content.split(/\\r?\\n/).map(line => line.trim()).filter(line => line.length > 0);\r\n\r\n for (const line of lines) {\r\n if (isBulletPoint(line)) {\r\n const itemContent = removeBulletPoint(line);\r\n const cleaned = cleanItemContent(itemContent);\r\n if (cleaned.trim().length > 0) {\r\n items.push(cleaned);\r\n }\r\n } else if (line.trim().length > 0) {\r\n const cleaned = cleanItemContent(line);\r\n if (cleaned.trim().length > 0) {\r\n items.push(cleaned);\r\n }\r\n }\r\n }\r\n }\r\n\r\n items = items.filter(item => item.trim().length > 0);\r\n if (items.length === 0) {\r\n items = ['Text'];\r\n }\r\n\r\n return items;\r\n }\r\n\r\n // Add Word paste command\r\n Commands.add(\"paste-from-word\", {\r\n run(editor) {\r\n const selected = editor.getSelected();\r\n if (!selected) return;\r\n\r\n if (selected.getEl()?.tagName !== \"UL\") {\r\n console.warn(\"Paste from Word is only available for UL elements\");\r\n return;\r\n }\r\n\r\n const modal = editor.Modal;\r\n const modalContent = `\r\n <div>\r\n <p id=\"paste-from-word-text\">${opts.t9n.labelPasteFromWordText}</p>\r\n <textarea id=\"paste-from-word-content\" placeholder=\"${opts.t9n.labelPasteFromWordPlaceholder}\"></textarea>\r\n <div id=\"paste-from-word-footer\">\r\n <button id=\"paste-from-word-apply\">${opts.t9n.labelPasteFromWordButton}</button>\r\n </div>\r\n </div>\r\n `;\r\n\r\n modal.setTitle(opts.t9n.labelPasteFromWord);\r\n modal.setContent(modalContent);\r\n modal.open();\r\n\r\n setTimeout(() => {\r\n const textarea = document.getElementById('paste-from-word-content') as HTMLTextAreaElement;\r\n const applyBtn = document.getElementById('paste-from-word-apply');\r\n\r\n if (textarea) {\r\n textarea.focus();\r\n }\r\n\r\n if (applyBtn) {\r\n applyBtn.addEventListener('click', () => {\r\n if (textarea && selected) {\r\n const content = textarea.value;\r\n const listItems = cleanWordContentToListItems(content);\r\n\r\n selected.components().reset();\r\n\r\n selected.addAttributes({\r\n 'class': 'ulist fa-ul',\r\n 'style': 'padding: 0.2em 0; margin-left: 2em; line-height: 1.4em;'\r\n });\r\n\r\n listItems.forEach(itemContent => {\r\n const liHtml = `<li class=\"ulistitem\" style=\"text-align: left;\"><span class=\"fa-li\" style=\"left: -2em; width: 2em;\"><i class=\"fas fa-circle\" style=\"font-size: 0.4em; line-height: inherit; display: block;\"></i></span><p style=\"margin: 0; padding: 0; text-align: left;\">${itemContent}</p></li>`;\r\n selected.append(liHtml);\r\n });\r\n\r\n modal.close();\r\n editor.trigger('component:update', selected);\r\n }\r\n });\r\n }\r\n\r\n if (textarea) {\r\n textarea.addEventListener('keydown', (e) => {\r\n if (e.ctrlKey && e.key === 'Enter') {\r\n applyBtn?.click();\r\n } else if (e.key === 'Escape') {\r\n modal.close();\r\n }\r\n });\r\n }\r\n }, 100);\r\n },\r\n });\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport {\r\n uListItemContent,\r\n ulListItem,\r\n ostTypeTextTrait,\r\n ostTypeImageTrait,\r\n ostTypeHideInSimpleHtmlTrait,\r\n iconTrait,\r\n nameTrait,\r\n valueTrait,\r\n} from \"./consts\";\r\n\r\nexport default (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { DomComponents } = editor;\r\n\r\n // Add ostendis block trait to video components\r\n var dType = DomComponents.getType(\"video\");\r\n var dModel = dType?.model;\r\n var dView = dType?.view;\r\n const yt = \"yt\";\r\n const vi = \"vi\";\r\n const ytnc = \"ytnc\";\r\n\r\n DomComponents.addType(\"video\", {\r\n model: dModel.extend({\r\n updateTraits() {\r\n const { em } = this;\r\n const prov = this.get(\"provider\");\r\n let tagName = \"iframe\";\r\n let traits;\r\n\r\n switch (prov) {\r\n case yt:\r\n case ytnc:\r\n traits = this.getYoutubeTraits();\r\n break;\r\n case vi:\r\n traits = this.getVimeoTraits();\r\n break;\r\n default:\r\n tagName = \"video\";\r\n traits = this.getSourceTraits();\r\n }\r\n\r\n traits.push({\r\n type: \"select\",\r\n label: \"Ostendis Blocks\",\r\n name: \"data-ost-type\",\r\n options: [\r\n { id: \"\", name: opts.t9n.traitOstNone },\r\n { id: \"videoURL\", name: opts.t9n.traitOstVideoURL },\r\n ],\r\n });\r\n\r\n this.set({ tagName }, { silent: true }); // avoid break in view\r\n this.set({ traits });\r\n em.get(\"ready\") && em.trigger(\"component:toggled\");\r\n },\r\n }),\r\n view: dView,\r\n });\r\n\r\n // Scale the new range\r\n DomComponents.addType(\"scale\", {\r\n isComponent: (el) => {\r\n return (\r\n el.tagName === \"DIV\" &&\r\n (el.getAttribute(\"data-scale\") === \"true\" ||\r\n el.classList.contains(\"scale\"))\r\n );\r\n },\r\n\r\n model: {\r\n defaults: {\r\n tagName: \"div\",\r\n attributes: {\r\n \"data-scale\": \"true\",\r\n \"data-percent\": \"66\",\r\n \"data-fcolor\": \"#3b5998\",\r\n \"data-bgcolor\": \"#CCCCCC\",\r\n \"aria-label\": \"66 %\",\r\n role: \"img\",\r\n },\r\n style: {\r\n \"box-sizing\": \"border-box\",\r\n padding: \"0\",\r\n height: \"20px\",\r\n \"max-width\": \"100%\",\r\n border: \"0px solid #666666\",\r\n background: \"linear-gradient(to right, #3b5998 66%, #CCCCCC 66%)\",\r\n },\r\n traits: [\r\n {\r\n name: \"percent\",\r\n type: \"number\",\r\n min: 0,\r\n max: 100,\r\n label: opts.t9n.labelScalePercent,\r\n changeProp: true,\r\n },\r\n {\r\n name: \"fcolor\",\r\n type: \"color\",\r\n label: opts.t9n.labelScaleBarColor,\r\n placeholder: \"#222222\",\r\n changeProp: true,\r\n },\r\n {\r\n name: \"bgcolor\",\r\n type: \"color\",\r\n label: opts.t9n.labelScaleBgColor,\r\n placeholder: \"#cccccc\",\r\n changeProp: true,\r\n },\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n\r\n init() {\r\n const attr = this.getAttributes();\r\n const el = this.view?.el;\r\n\r\n let p = parseInt(attr[\"data-percent\"]);\r\n let f = attr[\"data-fcolor\"];\r\n let b = attr[\"data-bgcolor\"];\r\n\r\n if (isNaN(p)) p = 66;\r\n if (!f) f = \"#3b5998\";\r\n if (!b) b = \"#CCCCCC\";\r\n\r\n this.set(\"percent\", Math.max(0, Math.min(100, p)));\r\n this.set(\"bgcolor\", b);\r\n this.set(\"fcolor\", f);\r\n\r\n this.on(\"change:percent\", this.updateScale);\r\n this.on(\"change:bgcolor\", this.updateScale);\r\n this.on(\"change:fcolor\", this.updateScale);\r\n },\r\n\r\n updateScale() {\r\n let p = parseInt(this.get(\"percent\"));\r\n const f = this.get(\"fcolor\") || \"#3b5998\";\r\n const b = this.get(\"bgcolor\") || \"#CCCCCC\";\r\n\r\n if (isNaN(p)) p = 0;\r\n p = Math.max(0, Math.min(100, p));\r\n\r\n this.set(\"attributes\", {\r\n \"data-scale\": \"true\",\r\n \"data-percent\": p,\r\n \"data-fcolor\": f,\r\n \"data-bgcolor\": b,\r\n \"aria-label\": `${p} %`,\r\n });\r\n\r\n this.addStyle({\r\n background: `linear-gradient(to right, ${f} ${p}%, ${b} ${p}%)`,\r\n });\r\n },\r\n },\r\n });\r\n\r\n // INPUT\r\n DomComponents.addType(\"range\", {\r\n isComponent: (el) => el.tagName == \"INPUT\",\r\n model: {\r\n defaults: {\r\n tagName: \"input\",\r\n droppable: true,\r\n highlightable: true,\r\n traits: [nameTrait, valueTrait],\r\n attributes: { type: \"range\", disabled: true },\r\n },\r\n },\r\n extendFnView: [\"updateAttributes\"],\r\n view: {\r\n updateAttributes() {\r\n this.el.setAttribute(\"autocomplete\", \"on\");\r\n },\r\n },\r\n });\r\n\r\n // Unsorted list item component\r\n DomComponents.addType(\"ulistitem\", {\r\n isComponent: (el) => {\r\n if (el.tagName === \"LI\" && el.classList.contains(\"ulistitem\")) {\r\n return { type: \"ulistitem\" };\r\n }\r\n },\r\n model: {\r\n defaults: {\r\n tagName: \"li\",\r\n draggable: \"ul\",\r\n attributes: { class: \"ulistitem\" },\r\n style: { \"text-align\": \"left\" },\r\n components: uListItemContent,\r\n traits: [\"id\", \"title\", ostTypeTextTrait(opts)],\r\n },\r\n },\r\n });\r\n\r\n // Unsorted list component with fontawesome\r\n DomComponents.addType(\"ulist\", {\r\n isComponent: (el) => {\r\n if (el.tagName === \"UL\" && el.classList.contains(\"ulist\")) {\r\n return { type: \"ulist\" };\r\n }\r\n },\r\n model: {\r\n defaults: {\r\n tagName: \"ul\",\r\n attributes: { class: \"ulist fa-ul\" },\r\n style: {\r\n padding: \"0.2em 0\",\r\n \"margin-left\": \"2em\",\r\n \"line-height\": \"1.4em\",\r\n },\r\n components: ulListItem + ulListItem + ulListItem,\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Header component\r\n DomComponents.addType(\"header\", {\r\n isComponent: (el) => {\r\n const headings = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\r\n if (el.tagName && headings.includes(el.tagName.toLowerCase())) {\r\n return { type: \"header\" };\r\n }\r\n },\r\n extend: \"text\",\r\n model: {\r\n defaults: {\r\n tagName: \"h1\", //Default\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Icon component\r\n DomComponents.addType(\"icon\", {\r\n isComponent: (el) => {\r\n var classNames = [\r\n \"fa\",\r\n \"fas\",\r\n \"far\",\r\n \"fab\",\r\n \"fa-solid\",\r\n \"fa-regular\",\r\n \"fa-brands\",\r\n ];\r\n if (\r\n el.tagName === \"I\" &&\r\n classNames.some((className) => el.classList.contains(className))\r\n ) {\r\n return { type: \"icon\" };\r\n }\r\n },\r\n model: {\r\n defaults: {\r\n tagName: \"i\",\r\n attributes: { class: \"fas fa-star\" },\r\n draggable: false,\r\n droppable: false,\r\n removable: false,\r\n copyable: false,\r\n traits: [iconTrait(opts), ostTypeHideInSimpleHtmlTrait(opts)],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to table components\r\n DomComponents.addType(\"table\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to link components\r\n DomComponents.addType(\"link\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n \"href\",\r\n \"target\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to image components\r\n DomComponents.addType(\"image\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n \"alt\",\r\n ostTypeImageTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to text components\r\n DomComponents.addType(\"textnode\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to text components\r\n DomComponents.addType(\"text\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to default components\r\n DomComponents.addType(\"default\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n};\r\n","import PluginOptions from \"./pluginOptions\";\r\nimport { ostTrans } from \"./ostTranslations\";\r\n\r\nexport const cmdDeviceDesktop = \"set-device-desktop\";\r\nexport const cmdDeviceTablet = \"set-device-tablet\";\r\nexport const cmdDeviceMobile = \"set-device-mobile\";\r\n\r\nexport const nameTrait = {\r\n name: \"name\",\r\n};\r\n\r\nexport const valueTrait = {\r\n name: \"value\",\r\n label: ostTrans.traitBlkValue,\r\n};\r\n\r\nexport const uListItemContent = `\r\n <span class=\"fa-li\" style=\"left:-2em;width:2em;\" draggable=\"false\" removable=\"false\" editable=\"false\" copyable=\"false\">\r\n <i class=\"fas fa-circle\" data-gjs-type=\"icon\" style=\"font-size:0.4em;line-height:inherit;display:block;\" draggable=\"false\" removable=\"false\" editable=\"false\" copyable=\"false\"></i>\r\n </span>\r\n <p style=\"margin:0;padding:0;text-align:left;\" draggable=\"false\" removable=\"false\" copyable=\"false\">Text</p>`;\r\n\r\nexport const ulListItem =\r\n `<li style=\"text-align:left\" data-gjs-type=\"ulistitem\">` +\r\n uListItemContent +\r\n `</li>`;\r\n\r\n// Comprehensive bullet point patterns for detection and removal\r\nexport const BULLET_PATTERNS: readonly RegExp[] = [\r\n // Parenthesized numeric/alphabetic markers: (1), (a), (A)\r\n /^\\(\\d+\\)\\s+/,\r\n /^\\([a-zA-Z]\\)\\s+/,\r\n\r\n // Hierarchical numbering: 1. / 1) / 1.2. / 2.3.4)\r\n /^\\d+(?:\\.\\d+)*[.)]\\s+/,\r\n\r\n // Single alphabetic list markers: a) a. A) A.\r\n /^[a-zA-Z][.)]\\s+/,\r\n\r\n // Roman numerals (bounded, followed by . or ) and space)\r\n /^[IVXLCDM]{1,12}[.)]\\s+/i,\r\n\r\n // Word style lowercase o bullet (kept broad per request)\r\n /^o\\s+/i,\r\n\r\n // Basic ASCII bullets (hyphen, asterisk, plus)\r\n /^[-*+]\\s+/,\r\n\r\n // Dashes often used as bullets (en/em)\r\n /^[–—]\\s+/,\r\n\r\n // Common Unicode bullets & similar symbols\r\n /^[•·▪▫‣⁃◦‧⦿⦾⚬]/u,\r\n\r\n // Private use (Word/Wingdings)\r\n /^[\\uF0A7\\uF0B6\\uF0FC\\uF0A8\\uF076\\uF0D8\\uF0E0]/u,\r\n\r\n // Section sign\r\n /^§\\s+/u,\r\n\r\n // Circles and dots\r\n /^[○●◘◙]/u,\r\n\r\n // Squares\r\n /^[■□]/u,\r\n\r\n // Diamonds\r\n /^[◆◇⬥❖]/u,\r\n\r\n // Arrows (incl. guillemets)\r\n /^[►➔➢➤→⇒▸▹⏵⮚›»]/u,\r\n\r\n // Checkmarks\r\n /^[✓✗]/u,\r\n\r\n // Stars and similar asterisks\r\n /^[⭐✦✧✱✲✳✴]/u,\r\n\r\n // Circled numbers ①-⑳\r\n /^[\\u2460-\\u2473]/u,\r\n\r\n // Circled zero variants\r\n /^[⓪⓿]/u,\r\n\r\n // Circled lowercase letters ⓐ-ⓩ\r\n /^[\\u24D0-\\u24E9]/u,\r\n\r\n // Circled uppercase letters Ⓐ-Ⓩ\r\n /^[\\u24B6-\\u24CF]/u,\r\n\r\n // HTML named entities\r\n /^•\\s+/,\r\n /^·\\s+/,\r\n\r\n // HTML decimal entities (selected)\r\n /^•\\s+/, // •\r\n /^‣\\s+/, // ‣\r\n /^⁃\\s+/, // ⁃\r\n /^→\\s+/, // →\r\n /^⇒\\s+/, // ⇒\r\n /^■\\s+/, // ■\r\n /^□\\s+/, // □\r\n /^◆\\s+/, // ◆\r\n /^◇\\s+/, // ◇\r\n /^○\\s+/, // ○\r\n /^●\\s+/, // ●\r\n /^➤\\s+/, // ➤\r\n] as const;\r\n\r\n// Define ostendis type trait for text and default components\r\nexport function ostTypeTextTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"ost-blocks-select\",\r\n label: \"Ostendis Blocks\",\r\n name: \"data-ost-type\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.traitBlkOstendisTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n options: [\r\n { id: \"\", name: opts.t9n.traitOstNone },\r\n { id: \"organizationHeading\", name: opts.t9n.traitOstOrganizationHeading },\r\n { id: \"organization\", name: opts.t9n.traitOstOrganization },\r\n { id: \"introductionHeading\", name: opts.t9n.traitOstIntroductionHeading },\r\n { id: \"introduction\", name: opts.t9n.traitOstIntroduction },\r\n { id: \"descriptionHeading\", name: opts.t9n.traitOstDescriptionHeading },\r\n { id: \"description\", name: opts.t9n.traitOstDescription },\r\n { id: \"tasksHeading\", name: opts.t9n.traitOstTasksHeading },\r\n { id: \"tasks\", name: opts.t9n.traitOstTasks },\r\n { id: \"requirementsHeading\", name: opts.t9n.traitOstRequirementsHeading },\r\n { id: \"requirements\", name: opts.t9n.traitOstRequirements },\r\n { id: \"benefitsHeading\", name: opts.t9n.traitOstBenefitsHeading },\r\n { id: \"benefits\", name: opts.t9n.traitOstBenefits },\r\n { id: \"contactHeading\", name: opts.t9n.traitOstContactHeading },\r\n { id: \"contact\", name: opts.t9n.traitOstContact },\r\n { id: \"calltoaction\", name: opts.t9n.traitOstCallToAction },\r\n ],\r\n };\r\n}\r\n// Define ostendis type trait for images\r\nexport function ostTypeImageTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"ost-blocks-select\",\r\n label: \"Ostendis Blocks\",\r\n name: \"data-ost-type\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.traitBlkOstendisTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n options: [\r\n { id: \"\", name: opts.t9n.traitOstNone },\r\n { id: \"logoPicURL\", name: opts.t9n.traitOstLogoPicURL },\r\n { id: \"headerPic1URL\", name: opts.t9n.traitOstHeaderPic1URL },\r\n { id: \"headerPic2URL\", name: opts.t9n.traitOstHeaderPic2URL },\r\n { id: \"headerPic3URL\", name: opts.t9n.traitOstHeaderPic3URL },\r\n { id: \"footerPic1URL\", name: opts.t9n.traitOstFooterPic1URL },\r\n { id: \"footerPic2URL\", name: opts.t9n.traitOstFooterPic2URL },\r\n { id: \"footerPic3URL\", name: opts.t9n.traitOstFooterPic3URL },\r\n { id: \"additionalPic1URL\", name: opts.t9n.traitOstAdditionalPic1URL },\r\n { id: \"additionalPic2URL\", name: opts.t9n.traitOstAdditionalPic2URL },\r\n { id: \"additionalPic3URL\", name: opts.t9n.traitOstAdditionalPic3URL },\r\n ],\r\n };\r\n}\r\n// Define ostendis type \"hide in simple html\"\r\nexport function ostTypeHideInSimpleHtmlTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"checkbox\",\r\n label: opts.t9n.hideInSimpleHtmlLabel,\r\n name: \"data-ost-simple-hide\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.hideInSimpleHtmlTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n valueTrue: \"1\",\r\n valueFalse: \"\",\r\n };\r\n}\r\n// Define ostendis type trait for icons\r\nexport function iconTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"select\",\r\n label: \"Icon\",\r\n name: \"class\",\r\n attributes: {\r\n id: \"select-fontawesome\",\r\n \"data-tooltip\": opts.t9n.labelIconTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n options: [\r\n { id: \"fas fa-minus\", name: opts.t9n.labelIconSelectMinus },\r\n { id: \"fas fa-circle\", name: opts.t9n.labelIconSelectCircleSolid },\r\n { id: \"far fa-circle\", name: opts.t9n.labelIconSelectCircle },\r\n { id: \"fas fa-check\", name: opts.t9n.labelIconSelectCheck },\r\n { id: \"fas fa-square\", name: opts.t9n.labelIconSelectSquare },\r\n { id: \"fas fa-arrow-right\", name: opts.t9n.labelIconSelectArrowRight },\r\n { id: \"fas fa-check-circle\", name: opts.t9n.labelIconSelectCheckCircle },\r\n { id: \"far fa-clock\", name: opts.t9n.labelIconSelectClock },\r\n { id: \"fas fa-percent\", name: opts.t9n.labelIconSelectPercent },\r\n { id: \"far fa-building\", name: opts.t9n.labelIconSelectBuilding },\r\n { id: \"fas fa-home\", name: opts.t9n.labelIconSelectHome },\r\n { id: \"fas fa-globe\", name: opts.t9n.labelIconSelectGlobe },\r\n { id: \"far fa-file\", name: opts.t9n.labelIconSelectFile },\r\n { id: \"fas fa-utensils\", name: opts.t9n.labelIconSelectUtensils },\r\n { id: \"far fa-calendar-alt\", name: opts.t9n.labelIconSelectCalendar },\r\n { id: \"far fa-hourglass\", name: opts.t9n.labelIconSelectHourglass },\r\n { id: \"fas fa-map-marker-alt\", name: opts.t9n.labelIconSelectMapMarker },\r\n { id: \"fas fa-road\", name: opts.t9n.labelIconSelectRoad },\r\n { id: \"fas fa-coffee\", name: opts.t9n.labelIconSelectCoffee },\r\n { id: \"fas fa-phone\", name: opts.t9n.labelIconSelectPhone },\r\n { id: \"fas fa-envelope\", name: opts.t9n.labelIconSelectEnvelope },\r\n { id: \"fas fa-star\", name: opts.t9n.labelIconSelectStar },\r\n ],\r\n };\r\n}\r\n","import type { OstTranslations } from \"./pluginOptions\";\r\n\r\nexport const ostTrans: OstTranslations = {\r\n cmdBtnDesktopLabel: \"Desktop\",\r\n cmdBtnTabletLabel: \"Tablet\",\r\n cmdBtnMobileLabel: \"Mobile\",\r\n\r\n cmdBtnViewCompLabel: \"View components\",\r\n cmdBtnUndoLabel: \"Undo\",\r\n cmdBtnRedoLabel: \"Redo\",\r\n\r\n openTraits: \"Open Parameter\",\r\n\r\n categoryLabel: \"Basic\",\r\n smSitesCategoryLabel: \"Social media sites\",\r\n smSharesCategoryLabel: \"Social media shares\",\r\n sharesCategoryLabel: \"Shares\",\r\n\r\n traitBlkValue: \"Value\",\r\n\r\n traitHeaderLabel: \"Header Level\",\r\n traitHeaderSelectH1: \"H1 (highest)\",\r\n traitHeaderSelectH2: \"H2\",\r\n traitHeaderSelectH3: \"H3\",\r\n traitHeaderSelectH4: \"H4\",\r\n traitHeaderSelectH5: \"H5\",\r\n traitHeaderSelectH6: \"H6 (lowest)\",\r\n\r\n traitBlkOstendisTooltip: \"Define Ostendis block.\",\r\n traitOstNone: \"None\",\r\n traitOstOrganizationHeading: \"Organization Heading\",\r\n traitOstOrganization: \"Organization\",\r\n traitOstIntroductionHeading: \"Introduction Heading\",\r\n traitOstIntroduction: \"Introduction\",\r\n traitOstDescriptionHeading: \"Description Heading\",\r\n traitOstDescription: \"Description\",\r\n traitOstTasksHeading: \"Tasks Heading\",\r\n traitOstTasks: \"Tasks\",\r\n traitOstRequirementsHeading: \"Requirements Heading\",\r\n traitOstRequirements: \"Requirements\",\r\n traitOstBenefitsHeading: \"Benefits Heading\",\r\n traitOstBenefits: \"Benefits\",\r\n traitOstContactHeading: \"Contact Heading\",\r\n traitOstContact: \"Contact\",\r\n traitOstCallToAction: \"Call to action\",\r\n\r\n traitOstLogoPicURL: \"Logo Image\",\r\n traitOstHeaderPic1URL: \"Header Image 1\",\r\n traitOstHeaderPic2URL: \"Header Image 2\",\r\n traitOstHeaderPic3URL: \"Header Image 3\",\r\n traitOstFooterPic1URL: \"Footer Image 1\",\r\n traitOstFooterPic2URL: \"Footer Image 2\",\r\n traitOstFooterPic3URL: \"Footer Image 3\",\r\n traitOstAdditionalPic1URL: \"Additional Image 1\",\r\n traitOstAdditionalPic2URL: \"Additional Image 2\",\r\n traitOstAdditionalPic3URL: \"Additional Image 3\",\r\n traitOstVideoURL: \"Video\",\r\n\r\n hideInSimpleHtmlLabel: \"Hide\",\r\n hideInSimpleHtmlTooltip: \"Hide element in simple HTML (jobs.ch)\",\r\n\r\n labelIconTooltip: \"For more icons: change class name in style manager.\",\r\n labelIconSelectMinus: \"minus\",\r\n labelIconSelectCircleSolid: \"circle solid\",\r\n labelIconSelectCircle: \"circle\",\r\n labelIconSelectCheck: \"check\",\r\n labelIconSelectSquare: \"square\",\r\n labelIconSelectArrowRight: \"arrow right\",\r\n labelIconSelectCheckCircle: \"check circle\",\r\n labelIconSelectClock: \"clock\",\r\n labelIconSelectPercent: \"percent\",\r\n labelIconSelectBuilding: \"building\",\r\n labelIconSelectHome: \"home\",\r\n labelIconSelectGlobe: \"globe\",\r\n labelIconSelectFile: \"file\",\r\n labelIconSelectUtensils: \"utensils\",\r\n labelIconSelectCalendar: \"calendar\",\r\n labelIconSelectHourglass: \"hourglass\",\r\n labelIconSelectMapMarker: \"map marker\",\r\n labelIconSelectRoad: \"road\",\r\n labelIconSelectCoffee: \"coffee\",\r\n labelIconSelectPhone: \"phone\",\r\n labelIconSelectEnvelope: \"envelope\",\r\n labelIconSelectStar: \"star\",\r\n\r\n labelScalePercent: \"Percent\",\r\n labelScaleBarColor: \"Color 1\",\r\n labelScaleBgColor: \"Color 2\",\r\n\r\n labelPasteFromWord: \"Paste from Word\",\r\n labelPasteFromWordButton: \"Replace List Content\",\r\n labelPasteFromWordPlaceholder: \"Paste your Word list content here...\",\r\n labelPasteFromWordText: \"Paste your list content from Word text editor below.</br>The formatting will be cleaned and converted to list items. This will replace all existing content in the list.\",\r\n ostToolbarPasteFromWord: \"Paste from Word\",\r\n\r\n ostToolbarClone: \"Clone list element\",\r\n ostToolbarDelete: \"Delete list element\",\r\n ostToolbarUp: \"Move list element up\",\r\n ostToolbarDown: \"Move list element down\",\r\n cmdRteRemoveFormat: \"Remove format\"\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport { cmdDeviceDesktop, cmdDeviceMobile, cmdDeviceTablet } from \"./consts\";\r\n\r\nexport default (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { Panels } = editor;\r\n const openTraits = \"open-tm\";\r\n const activateOutline = \"sw-visibility\";\r\n\r\n // Turn off default devices select and create new one\r\n editor.getConfig().showDevices = false;\r\n\r\n Panels.getPanels().reset([\r\n {\r\n id: \"commands\",\r\n buttons: [{}],\r\n },\r\n {\r\n id: \"devices-c\",\r\n buttons: [\r\n {\r\n id: cmdDeviceDesktop,\r\n command: cmdDeviceDesktop,\r\n className: \"fa-solid fa-desktop\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnDesktopLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n active: true,\r\n },\r\n {\r\n id: cmdDeviceTablet,\r\n command: cmdDeviceTablet,\r\n className: \"fa-solid fa-tablet-screen-button\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnTabletLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n {\r\n id: cmdDeviceMobile,\r\n command: cmdDeviceMobile,\r\n className: \"fa-solid fa-mobile-screen-button\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnMobileLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"options\",\r\n buttons: [\r\n {\r\n id: activateOutline,\r\n command: activateOutline,\r\n context: activateOutline,\r\n className: \"fa-solid fa-border-none\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnViewCompLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n {\r\n id: \"undo\",\r\n command: \"core:undo\",\r\n className: \"fa-solid fa-rotate-left\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnUndoLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n {\r\n id: \"redo\",\r\n command: \"core:redo\",\r\n className: \"fa-solid fa-rotate-right\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnRedoLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"views\",\r\n buttons: [\r\n {\r\n id: openTraits,\r\n command: openTraits,\r\n togglable: false,\r\n className: \"fa-solid fa-gear\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.openTraits,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n ],\r\n },\r\n ]);\r\n\r\n // Do stuff on load\r\n editor.onReady(() => {\r\n if (opts.showOutlineOnLoad) {\r\n const btn = Panels.getButton(\"options\", activateOutline);\r\n btn?.set(\"active\", true);\r\n }\r\n\r\n if (opts.showTraitsOnLoad) {\r\n const btn = Panels.getButton(\"views\", openTraits);\r\n btn?.set(\"active\", true);\r\n }\r\n //Beautify tooltips\r\n document.querySelectorAll(\"*[data-tooltip-pos]\").forEach((el) => {\r\n const title = el.getAttribute(\"title\")?.trim();\r\n if (title) {\r\n el.setAttribute(\"data-tooltip\", title);\r\n el.removeAttribute(\"title\");\r\n }\r\n });\r\n });\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\n\r\nexport default async (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { RichTextEditor } = editor;\r\n\r\n RichTextEditor.add(\"removeFormat\", {\r\n icon: '<i class=\"fa-solid fa-text-slash\"></i>',\r\n attributes: { title: opts.t9n.cmdRteRemoveFormat },\r\n\r\n result: (rte) => rte.exec(\"removeFormat\"),\r\n });\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\n\r\nexport default (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { TraitManager } = editor;\r\n\r\n // Ostendis-Blocks trait\r\n TraitManager.addType(\"ost-blocks-select\", {\r\n createInput({ trait }) {\r\n const traitOpts = trait.get(\"options\") || [];\r\n const traitName = trait.get(\"name\") || \"ost-block-select\";\r\n const options = traitOpts.length\r\n ? traitOpts\r\n : [{ id: \"\", name: \"None\", disabled: \"disabled\" }];\r\n\r\n const el = document.createElement(\"div\");\r\n el.innerHTML = `\r\n <select class=\"ost-blocks-select\" id=\"${traitName}\">\r\n ${options\r\n .map(\r\n (opt) =>\r\n `<option value=\"${opt.id}\" ${opt.disabled}>${opt.name}</option>`\r\n )\r\n .join(\"\")}\r\n </select>\r\n <div class=\"gjs-sel-arrow\">\r\n <div class=\"gjs-d-s-arrow\"></div>\r\n </div>`;\r\n return el;\r\n },\r\n onEvent({ elInput, component, trait }) {\r\n const traitName = trait.get(\"name\") || \"ost-block-select-default\";\r\n let element = elInput.querySelector(\r\n \"#\" + [traitName]\r\n ) as HTMLSelectElement;\r\n const dataOstType = element.value;\r\n\r\n if (dataOstType == \"\") {\r\n component.removeAttributes(traitName);\r\n } else {\r\n component.addAttributes({ [traitName]: dataOstType });\r\n }\r\n updateTrait(element);\r\n },\r\n onUpdate({ elInput, component, trait }) {\r\n const traitName = trait.get(\"name\") || \"ost-block-select-default\";\r\n\r\n if (elInput !== null) {\r\n let element = elInput.querySelector(\r\n \"#\" + [traitName]\r\n ) as HTMLSelectElement;\r\n updateTrait(element);\r\n\r\n // Set select\r\n const dataOstType = component.getAttributes()[traitName] || \"\";\r\n element = elInput.querySelector(\"#\" + [traitName]) as HTMLSelectElement;\r\n element.value = dataOstType;\r\n }\r\n },\r\n });\r\n\r\n // Range trait\r\n TraitManager.addType(\"value\", {\r\n label: opts.t9n.traitBlkValue,\r\n min: 0, // Minimum number value\r\n max: 100, // Maximum number value\r\n events: {\r\n keyup: \"onChange\",\r\n },\r\n\r\n onValueChange() {\r\n const { model, target } = this;\r\n const optionsStr = model.get(\"value\").trim();\r\n const options = optionsStr.split(\"\\n\");\r\n const optComps = [];\r\n\r\n for (let i = 0; i < options.length; i++) {\r\n const optionStr = options[i];\r\n const option = optionStr.split(\"::\");\r\n optComps.push({\r\n type: \"range\",\r\n components: option[1] || option[0],\r\n attributes: { value: option[0] },\r\n });\r\n }\r\n\r\n target.components().reset(optComps);\r\n target?.view?.render();\r\n },\r\n });\r\n\r\n function updateTrait(element: HTMLSelectElement) {\r\n // Set Array to 0\r\n opts.usedOstBlocks.forEach((el) => {\r\n el.count = 0;\r\n });\r\n\r\n var wrapper = editor.DomComponents.getWrapper();\r\n var elements = wrapper?.view?.$el.find(\"[data-ost-type]\").get();\r\n\r\n // List all data-ost-type\r\n elements?.forEach((element) => {\r\n var type = element.getAttribute(\"data-ost-type\") || \"\";\r\n let index = opts.usedOstBlocks.findIndex((item) => item.name === type);\r\n if (index === -1) {\r\n opts.usedOstBlocks.push({ name: type, count: 1 });\r\n } else {\r\n opts.usedOstBlocks[index].count++;\r\n }\r\n });\r\n\r\n // Display update select input\r\n Array.from(element.options).forEach(function (optionElement, optionIndex) {\r\n if (optionElement.value != \"\") {\r\n const usedOstBlockIndex = opts.usedOstBlocks.findIndex(\r\n (e) => e.name === optionElement.value\r\n );\r\n\r\n // Reset\r\n var optionEl = element.options[optionIndex];\r\n optionEl.text = optionEl.text.replace(/^\\(.*\\)\\s*/g, \"\");\r\n optionEl.removeAttribute(\"class\");\r\n optionEl.removeAttribute(\"disabled\");\r\n\r\n if (usedOstBlockIndex > -1) {\r\n if (opts.usedOstBlocks[usedOstBlockIndex].count == 1) {\r\n optionEl.innerHTML = \"(✓) \" + optionEl.text;\r\n optionEl.classList.add(\"gjs-select-option-ok\");\r\n optionEl.disabled = true;\r\n } else if (opts.usedOstBlocks[usedOstBlockIndex].count > 1) {\r\n optionEl.innerHTML =\r\n \"(! \" +\r\n opts.usedOstBlocks[usedOstBlockIndex].count +\r\n \"×) \" +\r\n optionEl.text;\r\n optionEl.classList.add(\"gjs-select-option-nok\");\r\n optionEl.disabled = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n};\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { Component, Plugin } from \"grapesjs\";\r\nimport loadBlocks from \"./blocks\";\r\nimport loadCommands from \"./commands\";\r\nimport loadPanels from \"./panels\";\r\nimport loadTraits from \"./traits\";\r\nimport loadComponents from \"./components\";\r\nimport loadRte from \"./rte\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport { ostTrans } from \"./ostTranslations\";\r\n\r\nexport type RequiredPluginOptions = Required<PluginOptions>;\r\n\r\ntype ToolbarButton = {\r\n attributes: {\r\n class: string;\r\n \"data-tooltip\"?: string;\r\n \"data-tooltip-pos\"?: \"bottom\",\r\n };\r\n command: string;\r\n};\r\n\r\nconst plugin: Plugin<PluginOptions> = async (\r\n editor,\r\n opts: Partial<PluginOptions> = {}\r\n) => {\r\n let config = editor.getConfig();\r\n\r\n const options: RequiredPluginOptions = {\r\n blocks: [],\r\n block: () => ({}),\r\n usedOstBlocks: [],\r\n cmdOpenImport: \"gjs-open-import-template\",\r\n codeViewerTheme: \"hopscotch\",\r\n inlineCss: true,\r\n showStylesOnChange: true,\r\n showTraitsOnLoad: true,\r\n showOutlineOnLoad: true,\r\n t9n: ostTrans,\r\n ...opts,\r\n };\r\n\r\n // Change some config\r\n config.devicePreviewMode = true;\r\n\r\n loadComponents(editor, options);\r\n loadTraits(editor, options);\r\n await loadCommands(editor, options);\r\n loadBlocks(editor, options);\r\n loadPanels(editor, options);\r\n await loadRte(editor, options);\r\n\r\n // On load\r\n editor.on(\"load\", () => {\r\n // Create ostendis toolbar\r\n const tools = document.getElementById(\"gjs-tools\");\r\n const ostTools = document.createElement(\"div\");\r\n ostTools.classList.add(\"gjs-ost-toolbar\");\r\n tools?.append(ostTools);\r\n });\r\n\r\n // On selected components\r\n editor.on(\"component:selected\", () => {\r\n let selected = editor.getSelected();\r\n\r\n if (selected != undefined) {\r\n selected.set({\r\n draggable: false,\r\n removable: false,\r\n copyable: false,\r\n });\r\n\r\n if (selected.is(\"ulistitem\")) {\r\n showOstToolbar(selected);\r\n } else if (selected.isChildOf(\"ulistitem\")) {\r\n showOstToolbar(selected.closestType(\"ulistitem\"));\r\n } else if (selected.getEl()?.tagName === \"LI\") {\r\n //If list element is empty replace with placeholder text (M&E case:)\r\n if (selected.components().length === 0 && !selected.get(\"content\")) {\r\n var selectedPosition = selected.index();\r\n var newComponent = selected\r\n .parent()\r\n ?.append(\"<li>Text</li>\", { at: selectedPosition });\r\n selected.remove();\r\n editor.select(newComponent);\r\n selected = editor.getSelected();\r\n }\r\n showOstToolbar(selected);\r\n } else if (isChildOfElement(selected.getEl(), \"LI\")) {\r\n showOstToolbar(selected.closest(\"li\"));\r\n } else if (selected.getEl()?.tagName === \"UL\") {\r\n // UL is selected - show built-in toolbar with paste button\r\n const ulToolbar = [\r\n {\r\n attributes: {\r\n class: \"fa-solid fa-file-word\",\r\n \"data-tooltip\": options.t9n.ostToolbarPasteFromWord,\r\n \"data-tooltip-pos\": \"bottom\"\r\n },\r\n command: \"paste-from-word\",\r\n },\r\n ];\r\n\r\n selected.set({\r\n toolbar: ulToolbar,\r\n });\r\n\r\n // Hide OST toolbar for UL elements\r\n var ostToolbar = document.querySelector(\".gjs-ost-toolbar\");\r\n ostToolbar?.classList.remove(\"show\");\r\n } else {\r\n // For other elements, show default toolbar without paste button\r\n const defaultToolbar: ToolbarButton[] = [\r\n {\r\n attributes: { class: \"fa-solid fa-arrow-up\" },\r\n command: \"select-parent\",\r\n },\r\n {\r\n attributes: { class: \"fa-solid fa-arrows-up-down-left-right\" },\r\n command: \"tlb-move\",\r\n },\r\n { \r\n attributes: { class: \"fa-regular fa-copy\" }, \r\n command: \"tlb-clone\" \r\n },\r\n { \r\n attributes: { class: \"fa-solid fa-trash\" }, \r\n command: \"tlb-delete\" \r\n },\r\n ];\r\n\r\n selected.set({\r\n toolbar: defaultToolbar,\r\n });\r\n\r\n // Hide OST toolbar for other elements\r\n var ostToolbar = document.querySelector(\".gjs-ost-toolbar\");\r\n ostToolbar?.classList.remove(\"show\");\r\n }\r\n }\r\n });\r\n\r\n // On deselected components\r\n editor.on(\"component:deselected\", () => {\r\n var ostToolbar = document.querySelector(\".gjs-ost-toolbar\");\r\n ostToolbar?.classList.remove(\"show\");\r\n });\r\n\r\n function isChildOfElement(element: HTMLElement | undefined, tag: string) {\r\n while (element?.parentNode) {\r\n element = element.parentNode as HTMLElement;\r\n if (element.tagName === tag) return element;\r\n }\r\n return false;\r\n }\r\n\r\n function showOstToolbar(listItem: Component | undefined) {\r\n var elPos = listItem?.index() || 0;\r\n var elLast = listItem?.parent()?.getLastChild().index();\r\n\r\n var ostToolbar = document.querySelector(\".gjs-ost-toolbar\") as HTMLElement;\r\n if (ostToolbar != undefined) {\r\n ostToolbar.innerHTML = \"\";\r\n\r\n // Add clone button\r\n const cBtn = document.createElement(\"div\");\r\n cBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M12 3a9 9 0 0 0 0 18 9 9 0 0 0 0-18zm-1.3 3.88h2.6v3.82h3.82v2.6H13.3v3.82h-2.6V13.3H6.88v-2.6h3.82z\"/></svg>';\r\n cBtn.classList.add(\"gjs-ost-toolbar-item\", \"clone\");\r\n cBtn.title = options.t9n.ostToolbarClone;\r\n cBtn.addEventListener(\"click\", () => {\r\n listItem?.parent()?.append(listItem?.clone(), { at: elPos + 1 });\r\n });\r\n ostToolbar.appendChild(cBtn);\r\n\r\n //Add delete button\r\n const dBtn = document.createElement(\"div\");\r\n dBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zm5.12 7.7v2.6H6.88v-2.6z\"/></svg>';\r\n dBtn.title = options.t9n.ostToolbarDelete;\r\n dBtn.classList.add(\"gjs-ost-toolbar-item\", \"del\");\r\n if (elLast != 0) {\r\n dBtn.addEventListener(\"click\", () => {\r\n listItem?.remove();\r\n ostToolbar?.classList.remove(\"show\");\r\n });\r\n } else {\r\n dBtn.classList.add(\"disable\");\r\n }\r\n ostToolbar.appendChild(dBtn);\r\n\r\n // Add move up button\r\n const upBtn = document.createElement(\"div\");\r\n upBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M1.9 20.75 12 3.25l10.1 17.5Z\"/></svg>';\r\n upBtn.title = options.t9n.ostToolbarUp;\r\n upBtn.classList.add(\"gjs-ost-toolbar-item\", \"up\");\r\n if (elPos > 0) {\r\n upBtn.addEventListener(\"click\", () => {\r\n if (elPos && listItem?.parent() != undefined) {\r\n let parent = listItem.parent();\r\n if (parent) {\r\n listItem?.move(parent, { at: elPos - 1 });\r\n }\r\n editor.selectRemove(listItem);\r\n editor.select(listItem);\r\n }\r\n });\r\n } else {\r\n upBtn.classList.add(\"disable\");\r\n }\r\n ostToolbar.appendChild(upBtn);\r\n\r\n // Add move down button\r\n const dwnBtn = document.createElement(\"div\");\r\n dwnBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M22.4 3.25 12 20.75 1.6 3.25Z\"/></svg>';\r\n dwnBtn.title = options.t9n.ostToolbarDown;\r\n dwnBtn.classList.add(\"gjs-ost-toolbar-item\", \"down\");\r\n if (elPos != elLast) {\r\n var toPos = elPos + 2;\r\n if (elPos == elLast) {\r\n toPos = 0;\r\n }\r\n dwnBtn.addEventListener(\"click\", () => {\r\n if (toPos && listItem?.parent() != undefined) {\r\n let parent = listItem.parent();\r\n if (parent) {\r\n listItem.move(parent, { at: toPos });\r\n }\r\n editor.selectRemove(listItem);\r\n editor.select(listItem);\r\n }\r\n });\r\n } else {\r\n dwnBtn.classList.add(\"disable\");\r\n }\r\n ostToolbar.appendChild(dwnBtn);\r\n\r\n // Add show\r\n ostToolbar.classList.add(\"show\");\r\n }\r\n }\r\n\r\n // On storage start\r\n editor.on(\"storage:start\", () => {\r\n // Reset all Components\r\n const getAllComponents = (model: any, result: any[] = []) => {\r\n result.push(model);\r\n model.components().each((mod: any) => getAllComponents(mod, result));\r\n return result;\r\n };\r\n var allComponents = getAllComponents(editor.DomComponents.getWrapper());\r\n allComponents.forEach((compo) => {\r\n const defaultToolbar: ToolbarButton[] = [\r\n {\r\n attributes: { class: \"fa-solid fa-arrow-up\" },\r\n command: \"select-parent\",\r\n },\r\n {\r\n attributes: { class: \"fa-solid fa-arrows-up-down-left-right\" },\r\n command: \"tlb-move\",\r\n },\r\n { attributes: { class: \"fa-regular fa-copy\" }, command: \"tlb-clone\" },\r\n { attributes: { class: \"fa-solid fa-trash\" }, command: \"tlb-delete\" },\r\n ];\r\n\r\n // Add paste button only for UL elements\r\n if (compo.getEl && compo.getEl()?.tagName === \"UL\") {\r\n defaultToolbar.push({\r\n attributes: {\r\n class: \"fa-solid fa-file-word\",\r\n \"data-tooltip\": options.t9n.ostToolbarPasteFromWord,\r\n \"data-tooltip-pos\": \"bottom\"\r\n },\r\n command: \"paste-from-word\",\r\n });\r\n }\r\n\r\n compo.set({\r\n draggable: true,\r\n removable: true,\r\n copyable: true,\r\n toolbar: defaultToolbar,\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport default plugin;\r\n"],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"grapesjs-preset-ostendis-simple.min.js","mappings":"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","sources":["webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/universalModuleDefinition","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/blocks.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/commands.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/components.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/consts.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/ostTranslations.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/panels.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/rte.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/traits.ts","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/bootstrap","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/runtime/define property getters","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/runtime/hasOwnProperty shorthand","webpack://@ostendis/grapesjs-preset-ostendis-simple/webpack/runtime/make namespace object","webpack://@ostendis/grapesjs-preset-ostendis-simple/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@ostendis/grapesjs-preset-ostendis-simple\"] = factory();\n\telse\n\t\troot[\"@ostendis/grapesjs-preset-ostendis-simple\"] = factory();\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), () => {\nreturn ","import type { Editor, BlockProperties } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\n\r\nexport default function (editor: Editor, opts: Required<PluginOptions>) {\r\n const { Blocks } = editor;\r\n\r\n const addBlock = (id: string, blockDef: BlockProperties) => {\r\n opts.blocks.indexOf(id)! >= 0 &&\r\n editor.Blocks.add(id, {\r\n select: true,\r\n ...blockDef,\r\n ...opts.block(id),\r\n });\r\n };\r\n\r\n Blocks.getAll().reset();\r\n}\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport { BULLET_PATTERNS, cmdDeviceDesktop, cmdDeviceMobile, cmdDeviceTablet } from \"./consts\";\r\n\r\nexport default async (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { Commands } = editor;\r\n\r\n Commands.add(cmdDeviceDesktop, {\r\n run: (ed) => ed.setDevice(\"Desktop\"),\r\n stop: () => {},\r\n });\r\n\r\n Commands.add(cmdDeviceTablet, {\r\n run: (ed) => ed.setDevice(\"Tablet\"),\r\n stop: () => {},\r\n });\r\n\r\n Commands.add(cmdDeviceMobile, {\r\n run: (ed) => ed.setDevice(\"Mobile portrait\"),\r\n stop: () => {},\r\n });\r\n\r\n // Helper function to check if a line is a bullet point\r\n function isBulletPoint(line: string): boolean {\r\n const trimmedLine = line.trim();\r\n return BULLET_PATTERNS.some(pattern => pattern.test(trimmedLine));\r\n }\r\n\r\n // Helper function to remove bullet point markers\r\n function removeBulletPoint(line: string): string {\r\n let trimmedLine = line.trim();\r\n\r\n for (const pattern of BULLET_PATTERNS) {\r\n trimmedLine = trimmedLine.replace(pattern, '');\r\n }\r\n\r\n return trimmedLine.trim() || 'Text';\r\n }\r\n\r\n // Helper function to clean individual item content\r\n function cleanItemContent(content: string): string {\r\n content = content.replace(/<br\\s*\\/?>/gi, ' ');\r\n content = content.replace(/<[^>]+>/g, '');\r\n\r\n const entityMap: { [key: string]: string } = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '"': '\"',\r\n ''': \"'\",\r\n ' ': ' ',\r\n '•': '•',\r\n '‣': '‣',\r\n '⁃': '⁃',\r\n '•': '•',\r\n '·': '·'\r\n };\r\n\r\n for (const [entity, char] of Object.entries(entityMap)) {\r\n content = content.replace(new RegExp(entity, 'g'), char);\r\n }\r\n\r\n content = content.replace(/\\s+/g, ' ').trim();\r\n\r\n if (!content || /^[•·▪▫‣⁃◦‧⦿⦾\\-*+.()]+$/.test(content)) {\r\n content = 'Text';\r\n }\r\n\r\n return content;\r\n }\r\n\r\n // Helper function to clean Word content and convert to list items\r\n function cleanWordContentToListItems(content: string): string[] {\r\n content = content.replace(/<!--[\\s\\S]*?-->/g, '');\r\n content = content.replace(/<o:p\\s*\\/?>|<\\/o:p>/gi, '');\r\n content = content.replace(/<w:[\\s\\S]*?>/gi, '');\r\n content = content.replace(/\\s*mso-[^:]+:[^;\"]*;?/gi, '');\r\n content = content.replace(/\\s*class=\"[^\"]*Mso[^\"]*\"/gi, '');\r\n content = content.replace(/<span[^>]*>\\s*<\\/span>/gi, '');\r\n content = content.replace(/<p[^>]*>/gi, '\\n').replace(/<\\/p>/gi, '');\r\n content = content.replace(/[ \\t]+/g, ' ');\r\n content = content.replace(/\\n\\s+/g, '\\n');\r\n content = content.trim();\r\n\r\n let items: string[] = [];\r\n\r\n if (content.includes('<li>') || content.includes('<LI>')) {\r\n const liMatches = content.match(/<li[^>]*>(.*?)<\\/li>/gi);\r\n if (liMatches) {\r\n items = liMatches.map(li => {\r\n const itemContent = li.replace(/<li[^>]*>|<\\/li>/gi, '').trim();\r\n return cleanItemContent(itemContent);\r\n });\r\n }\r\n } else {\r\n const lines = content.split(/\\r?\\n/).map(line => line.trim()).filter(line => line.length > 0);\r\n\r\n for (const line of lines) {\r\n if (isBulletPoint(line)) {\r\n const itemContent = removeBulletPoint(line);\r\n const cleaned = cleanItemContent(itemContent);\r\n if (cleaned.trim().length > 0) {\r\n items.push(cleaned);\r\n }\r\n } else if (line.trim().length > 0) {\r\n const cleaned = cleanItemContent(line);\r\n if (cleaned.trim().length > 0) {\r\n items.push(cleaned);\r\n }\r\n }\r\n }\r\n }\r\n\r\n items = items.filter(item => item.trim().length > 0);\r\n if (items.length === 0) {\r\n items = ['Text'];\r\n }\r\n\r\n return items;\r\n }\r\n\r\n // Add Word paste command\r\n Commands.add(\"paste-from-word\", {\r\n run(editor) {\r\n const selected = editor.getSelected();\r\n if (!selected) return;\r\n\r\n if (selected.getEl()?.tagName !== \"UL\") {\r\n console.warn(\"Paste from Word is only available for UL elements\");\r\n return;\r\n }\r\n\r\n const modal = editor.Modal;\r\n const modalContent = `\r\n <div>\r\n <p id=\"paste-from-word-text\">${opts.t9n.labelPasteFromWordText}</p>\r\n <textarea id=\"paste-from-word-content\" placeholder=\"${opts.t9n.labelPasteFromWordPlaceholder}\"></textarea>\r\n <div id=\"paste-from-word-footer\">\r\n <button id=\"paste-from-word-apply\">${opts.t9n.labelPasteFromWordButton}</button>\r\n </div>\r\n </div>\r\n `;\r\n\r\n modal.setTitle(opts.t9n.labelPasteFromWord);\r\n modal.setContent(modalContent);\r\n modal.open();\r\n\r\n setTimeout(() => {\r\n const textarea = document.getElementById('paste-from-word-content') as HTMLTextAreaElement;\r\n const applyBtn = document.getElementById('paste-from-word-apply');\r\n\r\n if (textarea) {\r\n textarea.focus();\r\n }\r\n\r\n if (applyBtn) {\r\n applyBtn.addEventListener('click', () => {\r\n if (textarea && selected) {\r\n const content = textarea.value;\r\n const listItems = cleanWordContentToListItems(content);\r\n\r\n selected.components().reset();\r\n\r\n selected.addAttributes({\r\n 'class': 'ulist fa-ul',\r\n 'style': 'padding: 0.2em 0; margin-left: 2em; line-height: 1.4em;'\r\n });\r\n\r\n listItems.forEach(itemContent => {\r\n const liHtml = `<li class=\"ulistitem\" style=\"text-align: left;\"><span class=\"fa-li\" style=\"left: -2em; width: 2em;\"><i class=\"fas fa-circle\" style=\"font-size: 0.4em; line-height: inherit; display: block;\"></i></span><p style=\"margin: 0; padding: 0; text-align: left;\">${itemContent}</p></li>`;\r\n selected.append(liHtml);\r\n });\r\n\r\n modal.close();\r\n editor.trigger('component:update', selected);\r\n }\r\n });\r\n }\r\n\r\n if (textarea) {\r\n textarea.addEventListener('keydown', (e) => {\r\n if (e.ctrlKey && e.key === 'Enter') {\r\n applyBtn?.click();\r\n } else if (e.key === 'Escape') {\r\n modal.close();\r\n }\r\n });\r\n }\r\n }, 100);\r\n },\r\n });\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport {\r\n uListItemContent,\r\n ulListItem,\r\n ostTypeTextTrait,\r\n ostTypeImageTrait,\r\n ostTypeHideInSimpleHtmlTrait,\r\n iconTrait,\r\n nameTrait,\r\n valueTrait,\r\n} from \"./consts\";\r\n\r\nexport default (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { DomComponents } = editor;\r\n\r\n // Add ostendis block trait to video components\r\n var dType = DomComponents.getType(\"video\");\r\n var dModel = dType?.model;\r\n var dView = dType?.view;\r\n const yt = \"yt\";\r\n const vi = \"vi\";\r\n const ytnc = \"ytnc\";\r\n\r\n DomComponents.addType(\"video\", {\r\n model: dModel.extend({\r\n updateTraits() {\r\n const { em } = this;\r\n const prov = this.get(\"provider\");\r\n let tagName = \"iframe\";\r\n let traits;\r\n\r\n switch (prov) {\r\n case yt:\r\n case ytnc:\r\n traits = this.getYoutubeTraits();\r\n break;\r\n case vi:\r\n traits = this.getVimeoTraits();\r\n break;\r\n default:\r\n tagName = \"video\";\r\n traits = this.getSourceTraits();\r\n }\r\n\r\n traits.push({\r\n type: \"select\",\r\n label: \"Ostendis Blocks\",\r\n name: \"data-ost-type\",\r\n options: [\r\n { id: \"\", name: opts.t9n.traitOstNone },\r\n { id: \"videoURL\", name: opts.t9n.traitOstVideoURL },\r\n ],\r\n });\r\n\r\n this.set({ tagName }, { silent: true }); // avoid break in view\r\n this.set({ traits });\r\n em.get(\"ready\") && em.trigger(\"component:toggled\");\r\n },\r\n }),\r\n view: dView,\r\n });\r\n\r\n // Scale the new range\r\n DomComponents.addType(\"scale\", {\r\n isComponent: (el) => {\r\n return (\r\n el.tagName === \"DIV\" &&\r\n (el.getAttribute(\"data-scale\") === \"true\" ||\r\n el.classList.contains(\"scale\"))\r\n );\r\n },\r\n\r\n model: {\r\n defaults: {\r\n tagName: \"div\",\r\n attributes: {\r\n \"data-scale\": \"true\",\r\n \"data-percent\": \"66\",\r\n \"data-fcolor\": \"#3b5998\",\r\n \"data-bgcolor\": \"#CCCCCC\",\r\n \"aria-label\": \"66 %\",\r\n role: \"img\",\r\n },\r\n style: {\r\n \"box-sizing\": \"border-box\",\r\n padding: \"0\",\r\n height: \"20px\",\r\n \"max-width\": \"100%\",\r\n border: \"0px solid #666666\",\r\n background: \"linear-gradient(to right, #3b5998 66%, #CCCCCC 66%)\",\r\n },\r\n traits: [\r\n {\r\n name: \"percent\",\r\n type: \"number\",\r\n min: 0,\r\n max: 100,\r\n label: opts.t9n.labelScalePercent,\r\n changeProp: true,\r\n },\r\n {\r\n name: \"fcolor\",\r\n type: \"color\",\r\n label: opts.t9n.labelScaleBarColor,\r\n placeholder: \"#222222\",\r\n changeProp: true,\r\n },\r\n {\r\n name: \"bgcolor\",\r\n type: \"color\",\r\n label: opts.t9n.labelScaleBgColor,\r\n placeholder: \"#cccccc\",\r\n changeProp: true,\r\n },\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n\r\n init() {\r\n const attr = this.getAttributes();\r\n const el = this.view?.el;\r\n\r\n let p = parseInt(attr[\"data-percent\"]);\r\n let f = attr[\"data-fcolor\"];\r\n let b = attr[\"data-bgcolor\"];\r\n\r\n if (isNaN(p)) p = 66;\r\n if (!f) f = \"#3b5998\";\r\n if (!b) b = \"#CCCCCC\";\r\n\r\n this.set(\"percent\", Math.max(0, Math.min(100, p)));\r\n this.set(\"bgcolor\", b);\r\n this.set(\"fcolor\", f);\r\n\r\n this.on(\"change:percent\", this.updateScale);\r\n this.on(\"change:bgcolor\", this.updateScale);\r\n this.on(\"change:fcolor\", this.updateScale);\r\n },\r\n\r\n updateScale() {\r\n let p = parseInt(this.get(\"percent\"));\r\n const f = this.get(\"fcolor\") || \"#3b5998\";\r\n const b = this.get(\"bgcolor\") || \"#CCCCCC\";\r\n\r\n if (isNaN(p)) p = 0;\r\n p = Math.max(0, Math.min(100, p));\r\n\r\n this.set(\"attributes\", {\r\n \"data-scale\": \"true\",\r\n \"data-percent\": p,\r\n \"data-fcolor\": f,\r\n \"data-bgcolor\": b,\r\n \"aria-label\": `${p} %`,\r\n });\r\n\r\n this.addStyle({\r\n background: `linear-gradient(to right, ${f} ${p}%, ${b} ${p}%)`,\r\n });\r\n },\r\n },\r\n });\r\n\r\n // INPUT\r\n DomComponents.addType(\"range\", {\r\n isComponent: (el) => el.tagName == \"INPUT\",\r\n model: {\r\n defaults: {\r\n tagName: \"input\",\r\n droppable: true,\r\n highlightable: true,\r\n traits: [nameTrait, valueTrait],\r\n attributes: { type: \"range\", disabled: true },\r\n },\r\n },\r\n extendFnView: [\"updateAttributes\"],\r\n view: {\r\n updateAttributes() {\r\n this.el.setAttribute(\"autocomplete\", \"on\");\r\n },\r\n },\r\n });\r\n\r\n // Unsorted list item component\r\n DomComponents.addType(\"ulistitem\", {\r\n isComponent: (el) => {\r\n if (el.tagName === \"LI\" && el.classList.contains(\"ulistitem\")) {\r\n return { type: \"ulistitem\" };\r\n }\r\n },\r\n model: {\r\n defaults: {\r\n tagName: \"li\",\r\n draggable: \"ul\",\r\n attributes: { class: \"ulistitem\" },\r\n style: { \"text-align\": \"left\" },\r\n components: uListItemContent,\r\n traits: [\"id\", \"title\", ostTypeTextTrait(opts)],\r\n },\r\n },\r\n });\r\n\r\n // Unsorted list component with fontawesome\r\n DomComponents.addType(\"ulist\", {\r\n isComponent: (el) => {\r\n if (el.tagName === \"UL\" && el.classList.contains(\"ulist\")) {\r\n return { type: \"ulist\" };\r\n }\r\n },\r\n model: {\r\n defaults: {\r\n tagName: \"ul\",\r\n attributes: { class: \"ulist fa-ul\" },\r\n style: {\r\n padding: \"0.2em 0\",\r\n \"margin-left\": \"2em\",\r\n \"line-height\": \"1.4em\",\r\n },\r\n components: ulListItem + ulListItem + ulListItem,\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Header component\r\n DomComponents.addType(\"header\", {\r\n isComponent: (el) => {\r\n const headings = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\r\n if (el.tagName && headings.includes(el.tagName.toLowerCase())) {\r\n return { type: \"header\" };\r\n }\r\n },\r\n extend: \"text\",\r\n model: {\r\n defaults: {\r\n tagName: \"h1\", //Default\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Icon component\r\n DomComponents.addType(\"icon\", {\r\n isComponent: (el) => {\r\n var classNames = [\r\n \"fa\",\r\n \"fas\",\r\n \"far\",\r\n \"fab\",\r\n \"fa-solid\",\r\n \"fa-regular\",\r\n \"fa-brands\",\r\n ];\r\n if (\r\n el.tagName === \"I\" &&\r\n classNames.some((className) => el.classList.contains(className))\r\n ) {\r\n return { type: \"icon\" };\r\n }\r\n },\r\n model: {\r\n defaults: {\r\n tagName: \"i\",\r\n attributes: { class: \"fas fa-star\" },\r\n draggable: false,\r\n droppable: false,\r\n removable: false,\r\n copyable: false,\r\n traits: [iconTrait(opts), ostTypeHideInSimpleHtmlTrait(opts)],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to table components\r\n DomComponents.addType(\"table\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to link components\r\n DomComponents.addType(\"link\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n \"href\",\r\n \"target\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to image components\r\n DomComponents.addType(\"image\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n \"alt\",\r\n ostTypeImageTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to text components\r\n DomComponents.addType(\"textnode\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to text components\r\n DomComponents.addType(\"text\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n\r\n // Add ostendis type trait to default components\r\n DomComponents.addType(\"default\", {\r\n model: {\r\n defaults: {\r\n traits: [\r\n \"id\",\r\n ostTypeTextTrait(opts),\r\n ostTypeHideInSimpleHtmlTrait(opts),\r\n ],\r\n },\r\n },\r\n });\r\n};\r\n","import PluginOptions from \"./pluginOptions\";\r\nimport { ostTrans } from \"./ostTranslations\";\r\n\r\nexport const cmdDeviceDesktop = \"set-device-desktop\";\r\nexport const cmdDeviceTablet = \"set-device-tablet\";\r\nexport const cmdDeviceMobile = \"set-device-mobile\";\r\n\r\nexport const nameTrait = {\r\n name: \"name\",\r\n};\r\n\r\nexport const valueTrait = {\r\n name: \"value\",\r\n label: ostTrans.traitBlkValue,\r\n};\r\n\r\nexport const uListItemContent = `\r\n <span class=\"fa-li\" style=\"left:-2em;width:2em;\" draggable=\"false\" removable=\"false\" editable=\"false\" copyable=\"false\">\r\n <i class=\"fas fa-circle\" data-gjs-type=\"icon\" style=\"font-size:0.4em;line-height:inherit;display:block;\" draggable=\"false\" removable=\"false\" editable=\"false\" copyable=\"false\"></i>\r\n </span>\r\n <p style=\"margin:0;padding:0;text-align:left;\" draggable=\"false\" removable=\"false\" copyable=\"false\">Text</p>`;\r\n\r\nexport const ulListItem =\r\n `<li style=\"text-align:left\" data-gjs-type=\"ulistitem\">` +\r\n uListItemContent +\r\n `</li>`;\r\n\r\n// Comprehensive bullet point patterns for detection and removal\r\nexport const BULLET_PATTERNS: readonly RegExp[] = [\r\n // Parenthesized numeric/alphabetic markers: (1), (a), (A)\r\n /^\\(\\d+\\)\\s+/,\r\n /^\\([a-zA-Z]\\)\\s+/,\r\n\r\n // Hierarchical numbering: 1. / 1) / 1.2. / 2.3.4)\r\n /^\\d+(?:\\.\\d+)*[.)]\\s+/,\r\n\r\n // Single alphabetic list markers: a) a. A) A.\r\n /^[a-zA-Z][.)]\\s+/,\r\n\r\n // Roman numerals (bounded, followed by . or ) and space)\r\n /^[IVXLCDM]{1,12}[.)]\\s+/i,\r\n\r\n // Word style lowercase o bullet (kept broad per request)\r\n /^o\\s+/i,\r\n\r\n // Basic ASCII bullets (hyphen, asterisk, plus)\r\n /^[-*+]\\s+/,\r\n\r\n // Dashes often used as bullets (en/em)\r\n /^[–—]\\s+/,\r\n\r\n // Common Unicode bullets & similar symbols\r\n /^[•·▪▫‣⁃◦‧⦿⦾⚬]/u,\r\n\r\n // Private use (Word/Wingdings)\r\n /^[\\uF0A7\\uF0B6\\uF0FC\\uF0A8\\uF076\\uF0D8\\uF0E0]/u,\r\n\r\n // Section sign\r\n /^§\\s+/u,\r\n\r\n // Circles and dots\r\n /^[○●◘◙]/u,\r\n\r\n // Squares\r\n /^[■□]/u,\r\n\r\n // Diamonds\r\n /^[◆◇⬥❖]/u,\r\n\r\n // Arrows (incl. guillemets)\r\n /^[►➔➢➤→⇒▸▹⏵⮚›»]/u,\r\n\r\n // Checkmarks\r\n /^[✓✗]/u,\r\n\r\n // Stars and similar asterisks\r\n /^[⭐✦✧✱✲✳✴]/u,\r\n\r\n // Circled numbers ①-⑳\r\n /^[\\u2460-\\u2473]/u,\r\n\r\n // Circled zero variants\r\n /^[⓪⓿]/u,\r\n\r\n // Circled lowercase letters ⓐ-ⓩ\r\n /^[\\u24D0-\\u24E9]/u,\r\n\r\n // Circled uppercase letters Ⓐ-Ⓩ\r\n /^[\\u24B6-\\u24CF]/u,\r\n\r\n // HTML named entities\r\n /^•\\s+/,\r\n /^·\\s+/,\r\n\r\n // HTML decimal entities (selected)\r\n /^•\\s+/, // •\r\n /^‣\\s+/, // ‣\r\n /^⁃\\s+/, // ⁃\r\n /^→\\s+/, // →\r\n /^⇒\\s+/, // ⇒\r\n /^■\\s+/, // ■\r\n /^□\\s+/, // □\r\n /^◆\\s+/, // ◆\r\n /^◇\\s+/, // ◇\r\n /^○\\s+/, // ○\r\n /^●\\s+/, // ●\r\n /^➤\\s+/, // ➤\r\n] as const;\r\n\r\n// Define ostendis type trait for text and default components\r\nexport function ostTypeTextTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"ost-blocks-select\",\r\n label: \"Ostendis Blocks\",\r\n name: \"data-ost-type\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.traitBlkOstendisTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n options: [\r\n { id: \"\", name: opts.t9n.traitOstNone },\r\n { id: \"organizationHeading\", name: opts.t9n.traitOstOrganizationHeading },\r\n { id: \"organization\", name: opts.t9n.traitOstOrganization },\r\n { id: \"introductionHeading\", name: opts.t9n.traitOstIntroductionHeading },\r\n { id: \"introduction\", name: opts.t9n.traitOstIntroduction },\r\n { id: \"descriptionHeading\", name: opts.t9n.traitOstDescriptionHeading },\r\n { id: \"description\", name: opts.t9n.traitOstDescription },\r\n { id: \"tasksHeading\", name: opts.t9n.traitOstTasksHeading },\r\n { id: \"tasks\", name: opts.t9n.traitOstTasks },\r\n { id: \"requirementsHeading\", name: opts.t9n.traitOstRequirementsHeading },\r\n { id: \"requirements\", name: opts.t9n.traitOstRequirements },\r\n { id: \"benefitsHeading\", name: opts.t9n.traitOstBenefitsHeading },\r\n { id: \"benefits\", name: opts.t9n.traitOstBenefits },\r\n { id: \"contactHeading\", name: opts.t9n.traitOstContactHeading },\r\n { id: \"contact\", name: opts.t9n.traitOstContact },\r\n { id: \"calltoaction\", name: opts.t9n.traitOstCallToAction },\r\n ],\r\n };\r\n}\r\n// Define ostendis type trait for images\r\nexport function ostTypeImageTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"ost-blocks-select\",\r\n label: \"Ostendis Blocks\",\r\n name: \"data-ost-type\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.traitBlkOstendisTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n options: [\r\n { id: \"\", name: opts.t9n.traitOstNone },\r\n { id: \"logoPicURL\", name: opts.t9n.traitOstLogoPicURL },\r\n { id: \"headerPic1URL\", name: opts.t9n.traitOstHeaderPic1URL },\r\n { id: \"headerPic2URL\", name: opts.t9n.traitOstHeaderPic2URL },\r\n { id: \"headerPic3URL\", name: opts.t9n.traitOstHeaderPic3URL },\r\n { id: \"footerPic1URL\", name: opts.t9n.traitOstFooterPic1URL },\r\n { id: \"footerPic2URL\", name: opts.t9n.traitOstFooterPic2URL },\r\n { id: \"footerPic3URL\", name: opts.t9n.traitOstFooterPic3URL },\r\n { id: \"additionalPic1URL\", name: opts.t9n.traitOstAdditionalPic1URL },\r\n { id: \"additionalPic2URL\", name: opts.t9n.traitOstAdditionalPic2URL },\r\n { id: \"additionalPic3URL\", name: opts.t9n.traitOstAdditionalPic3URL },\r\n ],\r\n };\r\n}\r\n// Define ostendis type \"hide in simple html\"\r\nexport function ostTypeHideInSimpleHtmlTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"checkbox\",\r\n label: opts.t9n.hideInSimpleHtmlLabel,\r\n name: \"data-ost-simple-hide\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.hideInSimpleHtmlTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n valueTrue: \"1\",\r\n valueFalse: \"\",\r\n };\r\n}\r\n// Define ostendis type trait for icons\r\nexport function iconTrait(opts: Required<PluginOptions>) {\r\n return {\r\n type: \"select\",\r\n label: \"Icon\",\r\n name: \"class\",\r\n attributes: {\r\n id: \"select-fontawesome\",\r\n \"data-tooltip\": opts.t9n.labelIconTooltip,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n options: [\r\n { id: \"fas fa-minus\", name: opts.t9n.labelIconSelectMinus },\r\n { id: \"fas fa-circle\", name: opts.t9n.labelIconSelectCircleSolid },\r\n { id: \"far fa-circle\", name: opts.t9n.labelIconSelectCircle },\r\n { id: \"fas fa-check\", name: opts.t9n.labelIconSelectCheck },\r\n { id: \"fas fa-square\", name: opts.t9n.labelIconSelectSquare },\r\n { id: \"fas fa-arrow-right\", name: opts.t9n.labelIconSelectArrowRight },\r\n { id: \"fas fa-check-circle\", name: opts.t9n.labelIconSelectCheckCircle },\r\n { id: \"far fa-clock\", name: opts.t9n.labelIconSelectClock },\r\n { id: \"fas fa-percent\", name: opts.t9n.labelIconSelectPercent },\r\n { id: \"far fa-building\", name: opts.t9n.labelIconSelectBuilding },\r\n { id: \"fas fa-home\", name: opts.t9n.labelIconSelectHome },\r\n { id: \"fas fa-globe\", name: opts.t9n.labelIconSelectGlobe },\r\n { id: \"far fa-file\", name: opts.t9n.labelIconSelectFile },\r\n { id: \"fas fa-utensils\", name: opts.t9n.labelIconSelectUtensils },\r\n { id: \"far fa-calendar-alt\", name: opts.t9n.labelIconSelectCalendar },\r\n { id: \"far fa-hourglass\", name: opts.t9n.labelIconSelectHourglass },\r\n { id: \"fas fa-map-marker-alt\", name: opts.t9n.labelIconSelectMapMarker },\r\n { id: \"fas fa-road\", name: opts.t9n.labelIconSelectRoad },\r\n { id: \"fas fa-coffee\", name: opts.t9n.labelIconSelectCoffee },\r\n { id: \"fas fa-phone\", name: opts.t9n.labelIconSelectPhone },\r\n { id: \"fas fa-envelope\", name: opts.t9n.labelIconSelectEnvelope },\r\n { id: \"fas fa-star\", name: opts.t9n.labelIconSelectStar },\r\n ],\r\n };\r\n}\r\n","import type { OstTranslations } from \"./pluginOptions\";\r\n\r\nexport const ostTrans: OstTranslations = {\r\n cmdBtnDesktopLabel: \"Desktop\",\r\n cmdBtnTabletLabel: \"Tablet\",\r\n cmdBtnMobileLabel: \"Mobile\",\r\n\r\n cmdBtnViewCompLabel: \"View components\",\r\n cmdBtnUndoLabel: \"Undo\",\r\n cmdBtnRedoLabel: \"Redo\",\r\n\r\n openTraits: \"Open Parameter\",\r\n\r\n categoryLabel: \"Basic\",\r\n smSitesCategoryLabel: \"Social media sites\",\r\n smSharesCategoryLabel: \"Social media shares\",\r\n sharesCategoryLabel: \"Shares\",\r\n\r\n traitBlkValue: \"Value\",\r\n\r\n traitHeaderLabel: \"Header Level\",\r\n traitHeaderSelectH1: \"H1 (highest)\",\r\n traitHeaderSelectH2: \"H2\",\r\n traitHeaderSelectH3: \"H3\",\r\n traitHeaderSelectH4: \"H4\",\r\n traitHeaderSelectH5: \"H5\",\r\n traitHeaderSelectH6: \"H6 (lowest)\",\r\n\r\n traitBlkOstendisTooltip: \"Define Ostendis block.\",\r\n traitOstNone: \"None\",\r\n traitOstOrganizationHeading: \"Organization Heading\",\r\n traitOstOrganization: \"Organization\",\r\n traitOstIntroductionHeading: \"Introduction Heading\",\r\n traitOstIntroduction: \"Introduction\",\r\n traitOstDescriptionHeading: \"Description Heading\",\r\n traitOstDescription: \"Description\",\r\n traitOstTasksHeading: \"Tasks Heading\",\r\n traitOstTasks: \"Tasks\",\r\n traitOstRequirementsHeading: \"Requirements Heading\",\r\n traitOstRequirements: \"Requirements\",\r\n traitOstBenefitsHeading: \"Benefits Heading\",\r\n traitOstBenefits: \"Benefits\",\r\n traitOstContactHeading: \"Contact Heading\",\r\n traitOstContact: \"Contact\",\r\n traitOstCallToAction: \"Call to action\",\r\n\r\n traitOstLogoPicURL: \"Logo Image\",\r\n traitOstHeaderPic1URL: \"Header Image 1\",\r\n traitOstHeaderPic2URL: \"Header Image 2\",\r\n traitOstHeaderPic3URL: \"Header Image 3\",\r\n traitOstFooterPic1URL: \"Footer Image 1\",\r\n traitOstFooterPic2URL: \"Footer Image 2\",\r\n traitOstFooterPic3URL: \"Footer Image 3\",\r\n traitOstAdditionalPic1URL: \"Additional Image 1\",\r\n traitOstAdditionalPic2URL: \"Additional Image 2\",\r\n traitOstAdditionalPic3URL: \"Additional Image 3\",\r\n traitOstVideoURL: \"Video\",\r\n\r\n hideInSimpleHtmlLabel: \"Hide\",\r\n hideInSimpleHtmlTooltip: \"Hide element in simple HTML (jobs.ch)\",\r\n\r\n labelIconTooltip: \"For more icons: change class name in style manager.\",\r\n labelIconSelectMinus: \"minus\",\r\n labelIconSelectCircleSolid: \"circle solid\",\r\n labelIconSelectCircle: \"circle\",\r\n labelIconSelectCheck: \"check\",\r\n labelIconSelectSquare: \"square\",\r\n labelIconSelectArrowRight: \"arrow right\",\r\n labelIconSelectCheckCircle: \"check circle\",\r\n labelIconSelectClock: \"clock\",\r\n labelIconSelectPercent: \"percent\",\r\n labelIconSelectBuilding: \"building\",\r\n labelIconSelectHome: \"home\",\r\n labelIconSelectGlobe: \"globe\",\r\n labelIconSelectFile: \"file\",\r\n labelIconSelectUtensils: \"utensils\",\r\n labelIconSelectCalendar: \"calendar\",\r\n labelIconSelectHourglass: \"hourglass\",\r\n labelIconSelectMapMarker: \"map marker\",\r\n labelIconSelectRoad: \"road\",\r\n labelIconSelectCoffee: \"coffee\",\r\n labelIconSelectPhone: \"phone\",\r\n labelIconSelectEnvelope: \"envelope\",\r\n labelIconSelectStar: \"star\",\r\n\r\n labelScalePercent: \"Percent\",\r\n labelScaleBarColor: \"Color 1\",\r\n labelScaleBgColor: \"Color 2\",\r\n\r\n labelPasteFromWord: \"Paste from Word\",\r\n labelPasteFromWordButton: \"Replace List Content\",\r\n labelPasteFromWordPlaceholder: \"Paste your Word list content here...\",\r\n labelPasteFromWordText: \"Paste your list content from Word text editor below.</br>The formatting will be cleaned and converted to list items. This will replace all existing content in the list.\",\r\n ostToolbarPasteFromWord: \"Paste from Word\",\r\n\r\n ostToolbarClone: \"Clone list element\",\r\n ostToolbarDelete: \"Delete list element\",\r\n ostToolbarUp: \"Move list element up\",\r\n ostToolbarDown: \"Move list element down\",\r\n cmdRteRemoveFormat: \"Remove format\"\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport { cmdDeviceDesktop, cmdDeviceMobile, cmdDeviceTablet } from \"./consts\";\r\n\r\nexport default (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { Panels } = editor;\r\n const openTraits = \"open-tm\";\r\n const activateOutline = \"sw-visibility\";\r\n\r\n // Turn off default devices select and create new one\r\n editor.getConfig().showDevices = false;\r\n\r\n Panels.getPanels().reset([\r\n {\r\n id: \"commands\",\r\n buttons: [{}],\r\n },\r\n {\r\n id: \"devices-c\",\r\n buttons: [\r\n {\r\n id: cmdDeviceDesktop,\r\n command: cmdDeviceDesktop,\r\n className: \"fa-solid fa-desktop\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnDesktopLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n active: true,\r\n },\r\n {\r\n id: cmdDeviceTablet,\r\n command: cmdDeviceTablet,\r\n className: \"fa-solid fa-tablet-screen-button\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnTabletLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n {\r\n id: cmdDeviceMobile,\r\n command: cmdDeviceMobile,\r\n className: \"fa-solid fa-mobile-screen-button\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnMobileLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"options\",\r\n buttons: [\r\n {\r\n id: activateOutline,\r\n command: activateOutline,\r\n context: activateOutline,\r\n className: \"fa-solid fa-border-none\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnViewCompLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n {\r\n id: \"undo\",\r\n command: \"core:undo\",\r\n className: \"fa-solid fa-rotate-left\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnUndoLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n {\r\n id: \"redo\",\r\n command: \"core:redo\",\r\n className: \"fa-solid fa-rotate-right\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.cmdBtnRedoLabel,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"views\",\r\n buttons: [\r\n {\r\n id: openTraits,\r\n command: openTraits,\r\n togglable: false,\r\n className: \"fa-solid fa-gear\",\r\n attributes: {\r\n \"data-tooltip\": opts.t9n.openTraits,\r\n \"data-tooltip-pos\": \"bottom\",\r\n },\r\n },\r\n ],\r\n },\r\n ]);\r\n\r\n // Do stuff on load\r\n editor.onReady(() => {\r\n if (opts.showOutlineOnLoad) {\r\n const btn = Panels.getButton(\"options\", activateOutline);\r\n btn?.set(\"active\", true);\r\n }\r\n\r\n if (opts.showTraitsOnLoad) {\r\n const btn = Panels.getButton(\"views\", openTraits);\r\n btn?.set(\"active\", true);\r\n }\r\n //Beautify tooltips\r\n document.querySelectorAll(\"*[data-tooltip-pos]\").forEach((el) => {\r\n const title = el.getAttribute(\"title\")?.trim();\r\n if (title) {\r\n el.setAttribute(\"data-tooltip\", title);\r\n el.removeAttribute(\"title\");\r\n }\r\n });\r\n });\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\n\r\nexport default async (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { RichTextEditor } = editor;\r\n\r\n RichTextEditor.add(\"removeFormat\", {\r\n icon: '<i class=\"fa-solid fa-text-slash\"></i>',\r\n attributes: { title: opts.t9n.cmdRteRemoveFormat },\r\n\r\n result: (rte) => rte.exec(\"removeFormat\"),\r\n });\r\n};\r\n","import type { Editor } from \"grapesjs\";\r\nimport PluginOptions from \"./pluginOptions\";\r\n\r\nexport default (editor: Editor, opts: Required<PluginOptions>) => {\r\n const { TraitManager } = editor;\r\n\r\n // Ostendis-Blocks trait\r\n TraitManager.addType(\"ost-blocks-select\", {\r\n createInput({ trait }) {\r\n const traitOpts = trait.get(\"options\") || [];\r\n const traitName = trait.get(\"name\") || \"ost-block-select\";\r\n const options = traitOpts.length\r\n ? traitOpts\r\n : [{ id: \"\", name: \"None\", disabled: \"disabled\" }];\r\n\r\n const el = document.createElement(\"div\");\r\n el.innerHTML = `\r\n <select class=\"ost-blocks-select\" id=\"${traitName}\">\r\n ${options\r\n .map(\r\n (opt) =>\r\n `<option value=\"${opt.id}\" ${opt.disabled}>${opt.name}</option>`\r\n )\r\n .join(\"\")}\r\n </select>\r\n <div class=\"gjs-sel-arrow\">\r\n <div class=\"gjs-d-s-arrow\"></div>\r\n </div>`;\r\n return el;\r\n },\r\n onEvent({ elInput, component, trait }) {\r\n const traitName = trait.get(\"name\") || \"ost-block-select-default\";\r\n let element = elInput.querySelector(\r\n \"#\" + [traitName]\r\n ) as HTMLSelectElement;\r\n const dataOstType = element.value;\r\n\r\n if (dataOstType == \"\") {\r\n component.removeAttributes(traitName);\r\n } else {\r\n component.addAttributes({ [traitName]: dataOstType });\r\n }\r\n updateTrait(element);\r\n },\r\n onUpdate({ elInput, component, trait }) {\r\n const traitName = trait.get(\"name\") || \"ost-block-select-default\";\r\n\r\n if (elInput !== null) {\r\n let element = elInput.querySelector(\r\n \"#\" + [traitName]\r\n ) as HTMLSelectElement;\r\n updateTrait(element);\r\n\r\n // Set select\r\n const dataOstType = component.getAttributes()[traitName] || \"\";\r\n element = elInput.querySelector(\"#\" + [traitName]) as HTMLSelectElement;\r\n element.value = dataOstType;\r\n }\r\n },\r\n });\r\n\r\n // Range trait\r\n TraitManager.addType(\"value\", {\r\n label: opts.t9n.traitBlkValue,\r\n min: 0, // Minimum number value\r\n max: 100, // Maximum number value\r\n events: {\r\n keyup: \"onChange\",\r\n },\r\n\r\n onValueChange() {\r\n const { model, target } = this;\r\n const optionsStr = model.get(\"value\").trim();\r\n const options = optionsStr.split(\"\\n\");\r\n const optComps = [];\r\n\r\n for (let i = 0; i < options.length; i++) {\r\n const optionStr = options[i];\r\n const option = optionStr.split(\"::\");\r\n optComps.push({\r\n type: \"range\",\r\n components: option[1] || option[0],\r\n attributes: { value: option[0] },\r\n });\r\n }\r\n\r\n target.components().reset(optComps);\r\n target?.view?.render();\r\n },\r\n });\r\n\r\n function updateTrait(element: HTMLSelectElement) {\r\n // Set Array to 0\r\n opts.usedOstBlocks.forEach((el) => {\r\n el.count = 0;\r\n });\r\n\r\n var wrapper = editor.DomComponents.getWrapper();\r\n var elements = wrapper?.view?.$el.find(\"[data-ost-type]\").get();\r\n\r\n // List all data-ost-type\r\n elements?.forEach((element) => {\r\n var type = element.getAttribute(\"data-ost-type\") || \"\";\r\n let index = opts.usedOstBlocks.findIndex((item) => item.name === type);\r\n if (index === -1) {\r\n opts.usedOstBlocks.push({ name: type, count: 1 });\r\n } else {\r\n opts.usedOstBlocks[index].count++;\r\n }\r\n });\r\n\r\n // Display update select input\r\n Array.from(element.options).forEach(function (optionElement, optionIndex) {\r\n if (optionElement.value != \"\") {\r\n const usedOstBlockIndex = opts.usedOstBlocks.findIndex(\r\n (e) => e.name === optionElement.value\r\n );\r\n\r\n // Reset\r\n var optionEl = element.options[optionIndex];\r\n optionEl.text = optionEl.text.replace(/^\\(.*\\)\\s*/g, \"\");\r\n optionEl.removeAttribute(\"class\");\r\n optionEl.removeAttribute(\"disabled\");\r\n\r\n if (usedOstBlockIndex > -1) {\r\n if (opts.usedOstBlocks[usedOstBlockIndex].count == 1) {\r\n optionEl.innerHTML = \"(✓) \" + optionEl.text;\r\n optionEl.classList.add(\"gjs-select-option-ok\");\r\n optionEl.disabled = true;\r\n } else if (opts.usedOstBlocks[usedOstBlockIndex].count > 1) {\r\n optionEl.innerHTML =\r\n \"(! \" +\r\n opts.usedOstBlocks[usedOstBlockIndex].count +\r\n \"×) \" +\r\n optionEl.text;\r\n optionEl.classList.add(\"gjs-select-option-nok\");\r\n optionEl.disabled = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n};\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type {Component, Plugin} from \"grapesjs\";\r\nimport loadBlocks from \"./blocks\";\r\nimport loadCommands from \"./commands\";\r\nimport loadPanels from \"./panels\";\r\nimport loadTraits from \"./traits\";\r\nimport loadComponents from \"./components\";\r\nimport loadRte from \"./rte\";\r\nimport PluginOptions from \"./pluginOptions\";\r\nimport {ostTrans} from \"./ostTranslations\";\r\n\r\nexport type RequiredPluginOptions = Required<PluginOptions>;\r\n\r\ntype ToolbarButton = {\r\n attributes?: {\r\n class?: string;\r\n \"data-tooltip\"?: string;\r\n \"data-tooltip-pos\"?: \"bottom\",\r\n };\r\n label?: string;\r\n command: string;\r\n};\r\n\r\nconst plugin: Plugin<PluginOptions> = async (\r\n editor,\r\n opts: Partial<PluginOptions> = {}\r\n) => {\r\n let config = editor.getConfig();\r\n\r\n const options: RequiredPluginOptions = {\r\n blocks: [],\r\n block: () => ({}),\r\n usedOstBlocks: [],\r\n cmdOpenImport: \"gjs-open-import-template\",\r\n codeViewerTheme: \"hopscotch\",\r\n inlineCss: true,\r\n showStylesOnChange: true,\r\n showTraitsOnLoad: true,\r\n showOutlineOnLoad: true,\r\n t9n: ostTrans,\r\n ...opts,\r\n };\r\n\r\n // Change some config\r\n config.devicePreviewMode = true;\r\n\r\n loadComponents(editor, options);\r\n loadTraits(editor, options);\r\n await loadCommands(editor, options);\r\n loadBlocks(editor, options);\r\n loadPanels(editor, options);\r\n await loadRte(editor, options);\r\n\r\n // On load\r\n editor.on(\"load\", () => {\r\n // Create ostendis toolbar\r\n const tools = document.getElementById(\"gjs-tools\");\r\n const ostTools = document.createElement(\"div\");\r\n ostTools.classList.add(\"gjs-ost-toolbar\");\r\n tools?.append(ostTools);\r\n });\r\n\r\n // On selected components\r\n editor.on(\"component:selected\", () => {\r\n let selected = editor.getSelected();\r\n\r\n if (selected != undefined) {\r\n // Disable all actions for all components\r\n selected.set({\r\n draggable: false,\r\n removable: false,\r\n copyable: false,\r\n });\r\n\r\n if (selected.is(\"ulistitem\")) {\r\n // LI itself - show only select-parent\r\n selected.set({\r\n toolbar: [\r\n {\r\n attributes: {class: \"fa-solid fa-arrow-up\"},\r\n command: \"select-parent\",\r\n },\r\n ],\r\n });\r\n showOstToolbar(selected);\r\n } else if (selected.isChildOf(\"ulistitem\")) {\r\n // Content inside LI - show only select-parent\r\n const liContentToolbar: ToolbarButton[] = [\r\n {\r\n attributes: {class: \"fa-solid fa-arrow-up\"},\r\n command: \"select-parent\",\r\n },\r\n ];\r\n selected.set({\r\n toolbar: liContentToolbar,\r\n });\r\n showOstToolbar(selected.closestType(\"ulistitem\"));\r\n } else if (selected.getEl()?.tagName === \"LI\") {\r\n // Regular LI - show only select-parent\r\n selected.set({\r\n toolbar: [\r\n {\r\n attributes: {class: \"fa-solid fa-arrow-up\"},\r\n command: \"select-parent\",\r\n },\r\n ],\r\n });\r\n //If list element is empty replace with placeholder text (M&E case:)\r\n if (selected.components().length === 0 && !selected.get(\"content\")) {\r\n const selectedPosition = selected.index();\r\n const newComponent = selected\r\n .parent()\r\n ?.append(\"<li>Text</li>\", {at: selectedPosition});\r\n selected.remove();\r\n editor.select(newComponent);\r\n selected = editor.getSelected();\r\n }\r\n showOstToolbar(selected);\r\n } else if (isChildOfElement(selected.getEl(), \"LI\")) {\r\n // Content inside regular LI - show only select-parent\r\n const liContentToolbar: ToolbarButton[] = [\r\n {\r\n attributes: {class: \"fa-solid fa-arrow-up\"},\r\n command: \"select-parent\",\r\n },\r\n ];\r\n selected.set({\r\n toolbar: liContentToolbar,\r\n });\r\n showOstToolbar(selected.closest(\"li\"));\r\n } else if (selected.getEl()?.tagName === \"UL\") {\r\n // UL is selected - show paste button first, select-parent at the end\r\n const ulToolbar: ToolbarButton[] = [\r\n {\r\n attributes: {\r\n class: \"fa-solid fa-file-word\",\r\n \"data-tooltip\": options.t9n.ostToolbarPasteFromWord,\r\n \"data-tooltip-pos\": \"bottom\"\r\n },\r\n command: \"paste-from-word\",\r\n },\r\n {\r\n label: '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z\"></path></svg>',\r\n command: \"select-parent\",\r\n },\r\n ];\r\n\r\n selected.set({\r\n toolbar: ulToolbar,\r\n });\r\n\r\n // Hide OST toolbar for UL elements\r\n const ostToolbar = document.querySelector(\".gjs-ost-toolbar\");\r\n ostToolbar?.classList.remove(\"show\");\r\n } else {\r\n // For other elements, show default toolbar with only select-parent\r\n const defaultToolbar: ToolbarButton[] = [\r\n {\r\n label: '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z\"></path></svg>',\r\n command: \"select-parent\",\r\n },\r\n ];\r\n\r\n selected.set({\r\n toolbar: defaultToolbar,\r\n });\r\n\r\n // Hide OST toolbar for other elements\r\n const ostToolbar = document.querySelector(\".gjs-ost-toolbar\");\r\n ostToolbar?.classList.remove(\"show\");\r\n }\r\n }\r\n });\r\n\r\n // On deselected components\r\n editor.on(\"component:deselected\", () => {\r\n const ostToolbar = document.querySelector(\".gjs-ost-toolbar\");\r\n ostToolbar?.classList.remove(\"show\");\r\n });\r\n\r\n function isChildOfElement(element: HTMLElement | undefined, tag: string) {\r\n while (element?.parentNode) {\r\n element = element.parentNode as HTMLElement;\r\n if (element.tagName === tag) return element;\r\n }\r\n return false;\r\n }\r\n\r\n function showOstToolbar(listItem: Component | undefined) {\r\n const elPos = listItem?.index() || 0;\r\n const elLast = listItem?.parent()?.getLastChild().index();\r\n\r\n const ostToolbar = document.querySelector(\".gjs-ost-toolbar\") as HTMLElement;\r\n if (ostToolbar != undefined) {\r\n ostToolbar.innerHTML = \"\";\r\n\r\n // Add clone button\r\n const cBtn = document.createElement(\"div\");\r\n cBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M12 3a9 9 0 0 0 0 18 9 9 0 0 0 0-18zm-1.3 3.88h2.6v3.82h3.82v2.6H13.3v3.82h-2.6V13.3H6.88v-2.6h3.82z\"/></svg>';\r\n cBtn.classList.add(\"gjs-ost-toolbar-item\", \"clone\");\r\n cBtn.title = options.t9n.ostToolbarClone;\r\n cBtn.addEventListener(\"click\", () => {\r\n listItem?.parent()?.append(listItem?.clone(), {at: elPos + 1});\r\n });\r\n ostToolbar.appendChild(cBtn);\r\n\r\n //Add delete button\r\n const dBtn = document.createElement(\"div\");\r\n dBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zm5.12 7.7v2.6H6.88v-2.6z\"/></svg>';\r\n dBtn.title = options.t9n.ostToolbarDelete;\r\n dBtn.classList.add(\"gjs-ost-toolbar-item\", \"del\");\r\n if (elLast != 0) {\r\n dBtn.addEventListener(\"click\", () => {\r\n listItem?.remove();\r\n ostToolbar?.classList.remove(\"show\");\r\n });\r\n } else {\r\n dBtn.classList.add(\"disable\");\r\n }\r\n ostToolbar.appendChild(dBtn);\r\n\r\n // Add move up button\r\n const upBtn = document.createElement(\"div\");\r\n upBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M1.9 20.75 12 3.25l10.1 17.5Z\"/></svg>';\r\n upBtn.title = options.t9n.ostToolbarUp;\r\n upBtn.classList.add(\"gjs-ost-toolbar-item\", \"up\");\r\n if (elPos > 0) {\r\n upBtn.addEventListener(\"click\", () => {\r\n if (elPos && listItem?.parent() != undefined) {\r\n let parent = listItem.parent();\r\n if (parent) {\r\n listItem?.move(parent, {at: elPos - 1});\r\n }\r\n editor.selectRemove(listItem);\r\n editor.select(listItem);\r\n }\r\n });\r\n } else {\r\n upBtn.classList.add(\"disable\");\r\n }\r\n ostToolbar.appendChild(upBtn);\r\n\r\n // Add move down button\r\n const dwnBtn = document.createElement(\"div\");\r\n dwnBtn.innerHTML =\r\n '<svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M22.4 3.25 12 20.75 1.6 3.25Z\"/></svg>';\r\n dwnBtn.title = options.t9n.ostToolbarDown;\r\n dwnBtn.classList.add(\"gjs-ost-toolbar-item\", \"down\");\r\n if (elPos != elLast) {\r\n let toPos = elPos + 2;\r\n if (elPos == elLast) {\r\n toPos = 0;\r\n }\r\n dwnBtn.addEventListener(\"click\", () => {\r\n if (toPos && listItem?.parent() != undefined) {\r\n let parent = listItem.parent();\r\n if (parent) {\r\n listItem.move(parent, {at: toPos});\r\n }\r\n editor.selectRemove(listItem);\r\n editor.select(listItem);\r\n }\r\n });\r\n } else {\r\n dwnBtn.classList.add(\"disable\");\r\n }\r\n ostToolbar.appendChild(dwnBtn);\r\n\r\n // Add show\r\n ostToolbar.classList.add(\"show\");\r\n }\r\n }\r\n};\r\n\r\nexport default plugin;\r\n"],"names":[],"sourceRoot":""}
|
package/package.json
CHANGED