@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}.simple .gjs-toolbar-item:not(:first-child){display:none}.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}
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
- var selectedPosition = selected.index();
1299
- var newComponent = (_b = selected
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 built-in toolbar with paste button
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
- var ostToolbar = document.querySelector(".gjs-ost-toolbar");
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 without paste button
1373
+ // For other elements, show default toolbar with only select-parent
1331
1374
  const defaultToolbar = [
1332
1375
  {
1333
- attributes: { class: "fa-solid fa-arrow-up" },
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
- var ostToolbar = document.querySelector(".gjs-ost-toolbar");
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
- var ostToolbar = document.querySelector(".gjs-ost-toolbar");
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
- var elPos = (listItem === null || listItem === void 0 ? void 0 : listItem.index()) || 0;
1374
- var elLast = (_a = listItem === null || listItem === void 0 ? void 0 : listItem.parent()) === null || _a === void 0 ? void 0 : _a.getLastChild().index();
1375
- var ostToolbar = document.querySelector(".gjs-ost-toolbar");
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
- var toPos = elPos + 2;
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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;;;;;ACPA,6BAAe,oCAAU,MAAc,EAAE,IAA6B;IACpE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE1B,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,QAAyB,EAAE,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAE,IAAI,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,gCAClB,MAAM,EAAE,IAAI,IACT,QAAQ,GACR,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EACjB,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACd8F;AAE/F,iEAAe,CAAO,MAAc,EAAE,IAA6B,EAAE,EAAE;IACnE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,QAAQ,CAAC,GAAG,CAAC,qDAAgB,EAAE;QAC3B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC;QACpC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,oDAAe,EAAE;QAC1B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;QACnC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,oDAAe,EAAE;QAC1B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC;QAC5C,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC,CAAC;IAEH,uDAAuD;IACvD,SAAS,aAAa,CAAC,IAAY;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,OAAO,oDAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,iDAAiD;IACjD,SAAS,iBAAiB,CAAC,IAAY;QACnC,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE9B,KAAK,MAAM,OAAO,IAAI,oDAAe,EAAE,CAAC;YACpC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;IACxC,CAAC;IAED,mDAAmD;IACnD,SAAS,gBAAgB,CAAC,OAAe;QACrC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC/C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAE1C,MAAM,SAAS,GAA8B;YACzC,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,GAAG;YACX,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,QAAQ,EAAE,GAAG;YACb,UAAU,EAAE,GAAG;SAClB,CAAC;QAEF,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9C,IAAI,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,OAAO,GAAG,MAAM,CAAC;QACrB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,kEAAkE;IAClE,SAAS,2BAA2B,CAAC,OAAe;QAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACrE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAEzB,IAAI,KAAK,GAAa,EAAE,CAAC;QAEzB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACvB,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChE,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;oBAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,yBAAyB;IACzB,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE;QAC5B,GAAG,CAAC,MAAM;;YACN,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,IAAI,eAAQ,CAAC,KAAK,EAAE,0CAAE,OAAO,MAAK,IAAI,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBAClE,OAAO;YACX,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,YAAY,GAAG;;mDAEkB,IAAI,CAAC,GAAG,CAAC,sBAAsB;0EACR,IAAI,CAAC,GAAG,CAAC,6BAA6B;;6DAEnD,IAAI,CAAC,GAAG,CAAC,wBAAwB;;;aAGjF,CAAC;YAEF,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC5C,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,UAAU,CAAC,GAAG,EAAE;gBACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAwB,CAAC;gBAC3F,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;gBAElE,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;wBACpC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;4BACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;4BAC/B,MAAM,SAAS,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;4BAEvD,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;4BAE9B,QAAQ,CAAC,aAAa,CAAC;gCACnB,OAAO,EAAE,aAAa;gCACtB,OAAO,EAAE,yDAAyD;6BACrE,CAAC,CAAC;4BAEH,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gCAC5B,MAAM,MAAM,GAAG,+PAA+P,WAAW,WAAW,CAAC;gCACrS,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;4BAC5B,CAAC,CAAC,CAAC;4BAEH,KAAK,CAAC,KAAK,EAAE,CAAC;4BACd,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;wBACjD,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBACvC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;4BACjC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE,CAAC;wBACtB,CAAC;6BAAM,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;4BAC5B,KAAK,CAAC,KAAK,EAAE,CAAC;wBAClB,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,GAAC;;;;;;;;;;;;;;;;ACpLgB;AAElB,iEAAe,CAAC,MAAc,EAAE,IAA6B,EAAE,EAAE;IAC/D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEjC,+CAA+C;IAC/C,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;IAC1B,IAAI,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC;IAChB,MAAM,EAAE,GAAG,IAAI,CAAC;IAChB,MAAM,IAAI,GAAG,MAAM,CAAC;IAEpB,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,YAAY;gBACV,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,QAAQ,CAAC;gBACvB,IAAI,MAAM,CAAC;gBAEX,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,EAAE,CAAC;oBACR,KAAK,IAAI;wBACP,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACjC,MAAM;oBACR,KAAK,EAAE;wBACL,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;wBAC/B,MAAM;oBACR;wBACE,OAAO,GAAG,OAAO,CAAC;wBAClB,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACpC,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB;oBACxB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE;wBACP,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;wBACvC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;qBACpD;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,sBAAsB;gBAC/D,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACrB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACrD,CAAC;SACF,CAAC;QACF,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IAEH,sBAAsB;IACtB,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE;QAC7B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,OAAO,CACL,EAAE,CAAC,OAAO,KAAK,KAAK;gBACpB,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,MAAM;oBACvC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAClC,CAAC;QACJ,CAAC;QAED,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE;oBACV,YAAY,EAAE,MAAM;oBACpB,cAAc,EAAE,IAAI;oBACpB,aAAa,EAAE,SAAS;oBACxB,cAAc,EAAE,SAAS;oBACzB,YAAY,EAAE,MAAM;oBACpB,IAAI,EAAE,KAAK;iBACZ;gBACD,KAAK,EAAE;oBACL,YAAY,EAAE,YAAY;oBAC1B,OAAO,EAAE,GAAG;oBACZ,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,MAAM;oBACnB,MAAM,EAAE,mBAAmB;oBAC3B,UAAU,EAAE,qDAAqD;iBAClE;gBACD,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,GAAG,EAAE,CAAC;wBACN,GAAG,EAAE,GAAG;wBACR,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB;wBACjC,UAAU,EAAE,IAAI;qBACjB;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB;wBAClC,WAAW,EAAE,SAAS;wBACtB,UAAU,EAAE,IAAI;qBACjB;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB;wBACjC,WAAW,EAAE,SAAS;wBACtB,UAAU,EAAE,IAAI;qBACjB;oBACD,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;YAED,IAAI;;gBACF,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,UAAI,CAAC,IAAI,0CAAE,EAAE,CAAC;gBAEzB,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;gBAE7B,IAAI,KAAK,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,CAAC;oBAAE,CAAC,GAAG,SAAS,CAAC;gBACtB,IAAI,CAAC,CAAC;oBAAE,CAAC,GAAG,SAAS,CAAC;gBAEtB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAEtB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;YAED,WAAW;gBACT,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;gBAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;gBAE3C,IAAI,KAAK,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAElC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;oBACrB,YAAY,EAAE,MAAM;oBACpB,cAAc,EAAE,CAAC;oBACjB,aAAa,EAAE,CAAC;oBAChB,cAAc,EAAE,CAAC;oBACjB,YAAY,EAAE,GAAG,CAAC,IAAI;iBACvB,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC;oBACZ,UAAU,EAAE,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;iBAChE,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC,CAAC;IAEH,QAAQ;IACR,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE;QAC7B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO;QAC1C,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,CAAC,8CAAS,EAAE,+CAAU,CAAC;gBAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC9C;SACF;QACD,YAAY,EAAE,CAAC,kBAAkB,CAAC;QAClC,IAAI,EAAE;YACJ,gBAAgB;gBACd,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;SACF;KACF,CAAC,CAAC;IAEH,+BAA+B;IAC/B,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE;QACjC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;gBAClC,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;gBAC/B,UAAU,EAAE,qDAAgB;gBAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,yDAAgB,CAAC,IAAI,CAAC,CAAC;aAChD;SACF;KACF,CAAC,CAAC;IAEH,2CAA2C;IAC3C,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE;QAC7B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gBACpC,KAAK,EAAE;oBACL,OAAO,EAAE,SAAS;oBAClB,aAAa,EAAE,KAAK;oBACpB,aAAa,EAAE,OAAO;iBACvB;gBACD,UAAU,EAAE,+CAAU,GAAG,+CAAU,GAAG,+CAAU;gBAChD,MAAM,EAAE;oBACN,IAAI;oBACJ,yDAAgB,CAAC,IAAI,CAAC;oBACtB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;IAEH,mBAAmB;IACnB,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,MAAM,EAAE,MAAM;QACd,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI,EAAE,SAAS;gBACxB,MAAM,EAAE;oBACN,IAAI;oBACJ,yDAAgB,CAAC,IAAI,CAAC;oBACtB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;IAEH,iBAAiB;IACjB,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE;QAC5B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,IAAI,UAAU,GAAG;gBACf,IAAI;gBACJ,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,UAAU;gBACV,YAAY;gBACZ,WAAW;aACZ,CAAC;YACF,IACE,EAAE,CAAC,OAAO,KAAK,GAAG;gBAClB,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAChE,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gBACpC,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,CAAC,kDAAS,CAAC,IAAI,CAAC,EAAE,qEAA4B,CAAC,IAAI,CAAC,CAAC;aAC9D;SACF;KACF,CAAC,CAAC;IAEH,8CAA8C;IAC9C,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE;QAC7B,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,IAAI;oBACJ,yDAAgB,CAAC,IAAI,CAAC;oBACtB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;IAEH,6CAA6C;IAC7C,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,IAAI;oBACJ,MAAM;oBACN,QAAQ;oBACR,yDAAgB,CAAC,IAAI,CAAC;oBACtB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;IAEH,8CAA8C;IAC9C,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE;QAC7B,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,IAAI;oBACJ,KAAK;oBACL,0DAAiB,CAAC,IAAI,CAAC;oBACvB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;IAEH,6CAA6C;IAC7C,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE;QAChC,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,IAAI;oBACJ,yDAAgB,CAAC,IAAI,CAAC;oBACtB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;IAEH,6CAA6C;IAC7C,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,IAAI;oBACJ,yDAAgB,CAAC,IAAI,CAAC;oBACtB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;IAEH,gDAAgD;IAChD,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE;QAC/B,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,IAAI;oBACJ,yDAAgB,CAAC,IAAI,CAAC;oBACtB,qEAA4B,CAAC,IAAI,CAAC;iBACnC;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxW2C;AAEtC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;CACb,CAAC;AAEK,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,sDAAQ,CAAC,aAAa;CAC9B,CAAC;AAEK,MAAM,gBAAgB,GAAG;;;;iHAIiF,CAAC;AAE3G,MAAM,UAAU,GACrB,wDAAwD;IACxD,gBAAgB;IAChB,OAAO,CAAC;AAEV,gEAAgE;AACzD,MAAM,eAAe,GAAsB;IAC9C,0DAA0D;IAC1D,aAAa;IACb,kBAAkB;IAElB,kDAAkD;IAClD,uBAAuB;IAEvB,8CAA8C;IAC9C,kBAAkB;IAElB,yDAAyD;IACzD,0BAA0B;IAE1B,yDAAyD;IACzD,QAAQ;IAER,+CAA+C;IAC/C,WAAW;IAEX,uCAAuC;IACvC,UAAU;IAEV,2CAA2C;IAC3C,iBAAiB;IAEjB,+BAA+B;IAC/B,gDAAgD;IAEhD,eAAe;IACf,QAAQ;IAER,mBAAmB;IACnB,UAAU;IAEV,UAAU;IACV,QAAQ;IAER,WAAW;IACX,UAAU;IAEV,4BAA4B;IAC5B,kBAAkB;IAElB,aAAa;IACb,QAAQ;IAER,8BAA8B;IAC9B,aAAa;IAEb,sBAAsB;IACtB,mBAAmB;IAEnB,wBAAwB;IACxB,QAAQ;IAER,gCAAgC;IAChC,mBAAmB;IAEnB,gCAAgC;IAChC,mBAAmB;IAEnB,sBAAsB;IACtB,YAAY;IACZ,cAAc;IAEd,mCAAmC;IACnC,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,aAAa,EAAG,IAAI;IACpB,cAAc,EAAE,IAAI;CACd,CAAC;AAEX,6DAA6D;AACtD,SAAS,gBAAgB,CAAC,IAA6B;IAC5D,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,eAAe;QACrB,UAAU,EAAE;YACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB;YAChD,kBAAkB,EAAE,QAAQ;SAC7B;QACD,OAAO,EAAE;YACP,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;YACvC,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE;YACzE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE;YACzE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE;YACvE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACzD,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;YAC7C,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE;YACzE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACjE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE;YAC/D,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE;YACjD,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;SAC5D;KACF,CAAC;AACJ,CAAC;AACD,wCAAwC;AACjC,SAAS,iBAAiB,CAAC,IAA6B;IAC7D,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,eAAe;QACrB,UAAU,EAAE;YACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB;YAChD,kBAAkB,EAAE,QAAQ;SAC7B;QACD,OAAO,EAAE;YACP,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;YACvC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE;YACvD,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACrE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACrE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE;SACtE;KACF,CAAC;AACJ,CAAC;AACD,6CAA6C;AACtC,SAAS,4BAA4B,CAAC,IAA6B;IACxE,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB;QACrC,IAAI,EAAE,sBAAsB;QAC5B,UAAU,EAAE;YACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB;YAChD,kBAAkB,EAAE,QAAQ;SAC7B;QACD,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC;AACD,uCAAuC;AAChC,SAAS,SAAS,CAAC,IAA6B;IACrD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,OAAO;QACb,UAAU,EAAE;YACV,EAAE,EAAE,oBAAoB;YACxB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB;YACzC,kBAAkB,EAAE,QAAQ;SAC7B;QACD,OAAO,EAAE;YACP,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE;YAClE,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACtE,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE;YACxE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE;YAC/D,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACjE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACzD,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACzD,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACjE,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACrE,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE;YACnE,EAAE,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE;YACxE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACzD,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC7D,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC3D,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACjE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE;SAC1D;KACF,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;ACpNM,MAAM,QAAQ,GAAoB;IACrC,kBAAkB,EAAE,SAAS;IAC7B,iBAAiB,EAAE,QAAQ;IAC3B,iBAAiB,EAAE,QAAQ;IAE3B,mBAAmB,EAAE,iBAAiB;IACtC,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,MAAM;IAEvB,UAAU,EAAE,gBAAgB;IAE5B,aAAa,EAAE,OAAO;IACtB,oBAAoB,EAAE,oBAAoB;IAC1C,qBAAqB,EAAE,qBAAqB;IAC5C,mBAAmB,EAAE,QAAQ;IAE7B,aAAa,EAAE,OAAO;IAEtB,gBAAgB,EAAE,cAAc;IAChC,mBAAmB,EAAE,cAAc;IACnC,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,aAAa;IAElC,uBAAuB,EAAE,wBAAwB;IACjD,YAAY,EAAE,MAAM;IACpB,2BAA2B,EAAE,sBAAsB;IACnD,oBAAoB,EAAE,cAAc;IACpC,2BAA2B,EAAE,sBAAsB;IACnD,oBAAoB,EAAE,cAAc;IACpC,0BAA0B,EAAE,qBAAqB;IACjD,mBAAmB,EAAE,aAAa;IAClC,oBAAoB,EAAE,eAAe;IACrC,aAAa,EAAE,OAAO;IACtB,2BAA2B,EAAE,sBAAsB;IACnD,oBAAoB,EAAE,cAAc;IACpC,uBAAuB,EAAE,kBAAkB;IAC3C,gBAAgB,EAAE,UAAU;IAC5B,sBAAsB,EAAE,iBAAiB;IACzC,eAAe,EAAE,SAAS;IAC1B,oBAAoB,EAAE,gBAAgB;IAEtC,kBAAkB,EAAE,YAAY;IAChC,qBAAqB,EAAE,gBAAgB;IACvC,qBAAqB,EAAE,gBAAgB;IACvC,qBAAqB,EAAE,gBAAgB;IACvC,qBAAqB,EAAE,gBAAgB;IACvC,qBAAqB,EAAE,gBAAgB;IACvC,qBAAqB,EAAE,gBAAgB;IACvC,yBAAyB,EAAE,oBAAoB;IAC/C,yBAAyB,EAAE,oBAAoB;IAC/C,yBAAyB,EAAE,oBAAoB;IAC/C,gBAAgB,EAAE,OAAO;IAEzB,qBAAqB,EAAE,MAAM;IAC7B,uBAAuB,EAAE,uCAAuC;IAEhE,gBAAgB,EAAE,qDAAqD;IACvE,oBAAoB,EAAE,OAAO;IAC7B,0BAA0B,EAAE,cAAc;IAC1C,qBAAqB,EAAE,QAAQ;IAC/B,oBAAoB,EAAE,OAAO;IAC7B,qBAAqB,EAAE,QAAQ;IAC/B,yBAAyB,EAAE,aAAa;IACxC,0BAA0B,EAAE,cAAc;IAC1C,oBAAoB,EAAE,OAAO;IAC7B,sBAAsB,EAAE,SAAS;IACjC,uBAAuB,EAAE,UAAU;IACnC,mBAAmB,EAAE,MAAM;IAC3B,oBAAoB,EAAE,OAAO;IAC7B,mBAAmB,EAAE,MAAM;IAC3B,uBAAuB,EAAE,UAAU;IACnC,uBAAuB,EAAE,UAAU;IACnC,wBAAwB,EAAE,WAAW;IACrC,wBAAwB,EAAE,YAAY;IACtC,mBAAmB,EAAE,MAAM;IAC3B,qBAAqB,EAAE,QAAQ;IAC/B,oBAAoB,EAAE,OAAO;IAC7B,uBAAuB,EAAE,UAAU;IACnC,mBAAmB,EAAE,MAAM;IAE3B,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,iBAAiB,EAAE,SAAS;IAE5B,kBAAkB,EAAE,iBAAiB;IACrC,wBAAwB,EAAE,sBAAsB;IAChD,6BAA6B,EAAE,sCAAsC;IACrE,sBAAsB,EAAE,0KAA0K;IAClM,uBAAuB,EAAE,iBAAiB;IAE1C,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,sBAAsB;IACpC,cAAc,EAAE,wBAAwB;IACxC,kBAAkB,EAAE,eAAe;CACtC,CAAC;;;;;;;;;;;;;;;;AClG4E;AAE9E,iEAAe,CAAC,MAAc,EAAE,IAA6B,EAAE,EAAE;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,MAAM,UAAU,GAAG,SAAS,CAAC;IAC7B,MAAM,eAAe,GAAG,eAAe,CAAC;IAExC,qDAAqD;IACrD,MAAM,CAAC,SAAS,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;IAEvC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;QACvB;YACE,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,CAAC,EAAE,CAAC;SACd;QACD;YACE,EAAE,EAAE,WAAW;YACf,OAAO,EAAE;gBACP;oBACE,EAAE,EAAE,qDAAgB;oBACpB,OAAO,EAAE,qDAAgB;oBACzB,SAAS,EAAE,qBAAqB;oBAChC,UAAU,EAAE;wBACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB;wBAC3C,kBAAkB,EAAE,QAAQ;qBAC7B;oBACD,MAAM,EAAE,IAAI;iBACb;gBACD;oBACE,EAAE,EAAE,oDAAe;oBACnB,OAAO,EAAE,oDAAe;oBACxB,SAAS,EAAE,kCAAkC;oBAC7C,UAAU,EAAE;wBACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB;wBAC1C,kBAAkB,EAAE,QAAQ;qBAC7B;iBACF;gBACD;oBACE,EAAE,EAAE,oDAAe;oBACnB,OAAO,EAAE,oDAAe;oBACxB,SAAS,EAAE,kCAAkC;oBAC7C,UAAU,EAAE;wBACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB;wBAC1C,kBAAkB,EAAE,QAAQ;qBAC7B;iBACF;aACF;SACF;QACD;YACE,EAAE,EAAE,SAAS;YACb,OAAO,EAAE;gBACP;oBACE,EAAE,EAAE,eAAe;oBACnB,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,eAAe;oBACxB,SAAS,EAAE,yBAAyB;oBACpC,UAAU,EAAE;wBACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB;wBAC5C,kBAAkB,EAAE,QAAQ;qBAC7B;iBACF;gBACD;oBACE,EAAE,EAAE,MAAM;oBACV,OAAO,EAAE,WAAW;oBACpB,SAAS,EAAE,yBAAyB;oBACpC,UAAU,EAAE;wBACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe;wBACxC,kBAAkB,EAAE,QAAQ;qBAC7B;iBACF;gBACD;oBACE,EAAE,EAAE,MAAM;oBACV,OAAO,EAAE,WAAW;oBACpB,SAAS,EAAE,0BAA0B;oBACrC,UAAU,EAAE;wBACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe;wBACxC,kBAAkB,EAAE,QAAQ;qBAC7B;iBACF;aACF;SACF;QACD;YACE,EAAE,EAAE,OAAO;YACX,OAAO,EAAE;gBACP;oBACE,EAAE,EAAE,UAAU;oBACd,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,kBAAkB;oBAC7B,UAAU,EAAE;wBACV,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;wBACnC,kBAAkB,EAAE,QAAQ;qBAC7B;iBACF;aACF;SACF;KACF,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACzD,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAClD,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,mBAAmB;QACnB,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;;YAC9D,MAAM,KAAK,GAAG,QAAE,CAAC,YAAY,CAAC,OAAO,CAAC,0CAAE,IAAI,EAAE,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBACvC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;ACrHF,iEAAe,CAAO,MAAc,EAAE,IAA6B,EAAE,EAAE;IACrE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAElC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE;QACjC,IAAI,EAAE,wCAAwC;QAC9C,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE;QAElD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC,GAAC;;;;;;;;;;;;;;;ACTF,iEAAe,CAAC,MAAc,EAAE,IAA6B,EAAE,EAAE;IAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEhC,wBAAwB;IACxB,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE;QACxC,WAAW,CAAC,EAAE,KAAK,EAAE;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC;YAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM;gBAC9B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAErD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,SAAS,GAAG;gDAC2B,SAAS;YAC7C,OAAO;iBACN,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,kBAAkB,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,WAAW,CACnE;iBACA,IAAI,CAAC,EAAE,CAAC;;;;eAIN,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,0BAA0B,CAAC;YAClE,IAAI,OAAO,GAAG,OAAO,CAAC,aAAa,CACjC,GAAG,GAAG,CAAC,SAAS,CAAC,CACG,CAAC;YACvB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;YAElC,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;gBACtB,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,WAAW,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;YACpC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,0BAA0B,CAAC;YAElE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,IAAI,OAAO,GAAG,OAAO,CAAC,aAAa,CACjC,GAAG,GAAG,CAAC,SAAS,CAAC,CACG,CAAC;gBACvB,WAAW,CAAC,OAAO,CAAC,CAAC;gBAErB,aAAa;gBACb,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC/D,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAsB,CAAC;gBACxE,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;YAC9B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,cAAc;IACd,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa;QAC7B,GAAG,EAAE,CAAC,EAAE,uBAAuB;QAC/B,GAAG,EAAE,GAAG,EAAE,uBAAuB;QACjC,MAAM,EAAE;YACN,KAAK,EAAE,UAAU;SAClB;QAED,aAAa;;YACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;oBAClC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;iBACjC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,YAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,MAAM,EAAE,CAAC;QACzB,CAAC;KACF,CAAC,CAAC;IAEH,SAAS,WAAW,CAAC,OAA0B;;QAC7C,iBAAiB;QACjB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAChC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,QAAQ,GAAG,aAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC;QAEhE,yBAAyB;QACzB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACvE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,aAAa,EAAE,WAAW;YACtE,IAAI,aAAa,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,CACtC,CAAC;gBAEF,QAAQ;gBACR,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC5C,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBACzD,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAClC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAErC,IAAI,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;wBACrD,QAAQ,CAAC,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACnD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wBAC/C,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC3B,CAAC;yBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;wBAC3D,QAAQ,CAAC,SAAS;4BAChB,KAAK;gCACL,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,KAAK;gCAC3C,WAAW;gCACX,QAAQ,CAAC,IAAI,CAAC;wBAChB,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;wBAChD,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,EAAC;;;;;;;UC9IF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLkC;AACI;AACJ;AACA;AACQ;AACd;AAEiB;AAa7C,MAAM,MAAM,GAA0B,sBAGpC,EAAE,6DAFF,MAAM,EACN,OAA+B,EAAE;IAEjC,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAEhC,MAAM,OAAO,mBACX,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EACjB,aAAa,EAAE,EAAE,EACjB,aAAa,EAAE,0BAA0B,EACzC,eAAe,EAAE,WAAW,EAC5B,SAAS,EAAE,IAAI,EACf,kBAAkB,EAAE,IAAI,EACxB,gBAAgB,EAAE,IAAI,EACtB,iBAAiB,EAAE,IAAI,EACvB,GAAG,EAAE,sDAAQ,IACV,IAAI,CACR,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEhC,uDAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,mDAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,MAAM,qDAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,mDAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,mDAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,MAAM,gDAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,UAAU;IACV,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACrB,0BAA0B;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC1C,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;;QACnC,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,CAAC;gBACX,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7B,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,eAAQ,CAAC,KAAK,EAAE,0CAAE,OAAO,MAAK,IAAI,EAAE,CAAC;gBAC9C,oEAAoE;gBACpE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnE,IAAI,gBAAgB,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACxC,IAAI,YAAY,GAAG,cAAQ;yBACxB,MAAM,EAAE,0CACP,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBACtD,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC5B,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;gBAClC,CAAC;gBACD,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpD,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,eAAQ,CAAC,KAAK,EAAE,0CAAE,OAAO,MAAK,IAAI,EAAE,CAAC;gBAC9C,2DAA2D;gBAC3D,MAAM,SAAS,GAAG;oBAChB;wBACE,UAAU,EAAE;4BACV,KAAK,EAAE,uBAAuB;4BAC9B,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;4BACnD,kBAAkB,EAAE,QAAQ;yBAC7B;wBACD,OAAO,EAAE,iBAAiB;qBAC3B;iBACF,CAAC;gBAEF,QAAQ,CAAC,GAAG,CAAC;oBACX,OAAO,EAAE,SAAS;iBACnB,CAAC,CAAC;gBAEH,mCAAmC;gBACnC,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;gBAC5D,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,MAAM,cAAc,GAAoB;oBACtC;wBACE,UAAU,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;wBAC7C,OAAO,EAAE,eAAe;qBACzB;oBACD;wBACE,UAAU,EAAE,EAAE,KAAK,EAAE,uCAAuC,EAAE;wBAC9D,OAAO,EAAE,UAAU;qBACpB;oBACD;wBACE,UAAU,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;wBAC3C,OAAO,EAAE,WAAW;qBACrB;oBACD;wBACE,UAAU,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;wBAC1C,OAAO,EAAE,YAAY;qBACtB;iBACF,CAAC;gBAEF,QAAQ,CAAC,GAAG,CAAC;oBACX,OAAO,EAAE,cAAc;iBACxB,CAAC,CAAC;gBAEH,sCAAsC;gBACtC,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;gBAC5D,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACrC,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC5D,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,SAAS,gBAAgB,CAAC,OAAgC,EAAE,GAAW;QACrE,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE,CAAC;YAC3B,OAAO,GAAG,OAAO,CAAC,UAAyB,CAAC;YAC5C,IAAI,OAAO,CAAC,OAAO,KAAK,GAAG;gBAAE,OAAO,OAAO,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,cAAc,CAAC,QAA+B;;QACrD,IAAI,KAAK,GAAG,SAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE,KAAI,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,cAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,0CAAE,YAAY,GAAG,KAAK,EAAE,CAAC;QAExD,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAgB,CAAC;QAC3E,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;YAC5B,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;YAE1B,mBAAmB;YACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS;gBACZ,qKAAqK,CAAC;YACxK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;;gBAClC,cAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,0CAAE,MAAM,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE7B,mBAAmB;YACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS;gBACZ,6HAA6H,CAAC;YAChI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBAClC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,CAAC;oBACnB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YACD,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE7B,qBAAqB;YACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS;gBACb,8FAA8F,CAAC;YACjG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YACvC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACnC,IAAI,KAAK,IAAI,SAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,KAAI,SAAS,EAAE,CAAC;wBAC7C,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC/B,IAAI,MAAM,EAAE,CAAC;4BACX,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC5C,CAAC;wBACD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;wBAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YACD,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAE9B,uBAAuB;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS;gBACd,8FAA8F,CAAC;YACjG,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;YACrD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACpB,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBACtB,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;oBACpB,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;gBACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACpC,IAAI,KAAK,IAAI,SAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,KAAI,SAAS,EAAE,CAAC;wBAC7C,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC/B,IAAI,MAAM,EAAE,CAAC;4BACX,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;wBACvC,CAAC;wBACD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;wBAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YACD,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE/B,WAAW;YACX,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,uBAAuB;QACvB,MAAM,gBAAgB,GAAG,CAAC,KAAU,EAAE,SAAgB,EAAE,EAAE,EAAE;YAC1D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,IAAI,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;QACxE,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;YAC9B,MAAM,cAAc,GAAoB;gBACtC;oBACE,UAAU,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;oBAC7C,OAAO,EAAE,eAAe;iBACzB;gBACD;oBACE,UAAU,EAAE,EAAE,KAAK,EAAE,uCAAuC,EAAE;oBAC9D,OAAO,EAAE,UAAU;iBACpB;gBACD,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;gBACrE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;aACtE,CAAC;YAEF,wCAAwC;YACxC,IAAI,KAAK,CAAC,KAAK,IAAI,YAAK,CAAC,KAAK,EAAE,0CAAE,OAAO,MAAK,IAAI,EAAE,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC;oBAClB,UAAU,EAAE;wBACV,KAAK,EAAE,uBAAuB;wBAC9B,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;wBACnD,kBAAkB,EAAE,QAAQ;qBAC7B;oBACD,OAAO,EAAE,iBAAiB;iBAC3B,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,GAAG,CAAC;gBACR,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,EAAC;AAEF,iEAAe,MAAM,EAAC","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 '&amp;': '&',\r\n '&lt;': '<',\r\n '&gt;': '>',\r\n '&quot;': '\"',\r\n '&apos;': \"'\",\r\n '&nbsp;': ' ',\r\n '&#8226;': '•',\r\n '&#8227;': '‣',\r\n '&#8259;': '⁃',\r\n '&bull;': '•',\r\n '&middot;': '·'\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 /^&bull;\\s+/,\r\n /^&middot;\\s+/,\r\n\r\n // HTML decimal entities (selected)\r\n /^&#8226;\\s+/, // •\r\n /^&#8227;\\s+/, // ‣\r\n /^&#8259;\\s+/, // ⁃\r\n /^&#8594;\\s+/, // →\r\n /^&#8658;\\s+/, // ⇒\r\n /^&#9632;\\s+/, // ■\r\n /^&#9633;\\s+/, // □\r\n /^&#9670;\\s+/, // ◆\r\n /^&#9671;\\s+/, // ◇\r\n /^&#9675;\\s+/, // ○\r\n /^&#9679;\\s+/, // ●\r\n /^&#10148;\\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 = \"(&#10003;) \" + 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 \"&times;) \" +\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 '&amp;': '&',\r\n '&lt;': '<',\r\n '&gt;': '>',\r\n '&quot;': '\"',\r\n '&apos;': \"'\",\r\n '&nbsp;': ' ',\r\n '&#8226;': '•',\r\n '&#8227;': '‣',\r\n '&#8259;': '⁃',\r\n '&bull;': '•',\r\n '&middot;': '·'\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 /^&bull;\\s+/,\r\n /^&middot;\\s+/,\r\n\r\n // HTML decimal entities (selected)\r\n /^&#8226;\\s+/, // •\r\n /^&#8227;\\s+/, // ‣\r\n /^&#8259;\\s+/, // ⁃\r\n /^&#8594;\\s+/, // →\r\n /^&#8658;\\s+/, // ⇒\r\n /^&#9632;\\s+/, // ■\r\n /^&#9633;\\s+/, // □\r\n /^&#9670;\\s+/, // ◆\r\n /^&#9671;\\s+/, // ◇\r\n /^&#9675;\\s+/, // ○\r\n /^&#9679;\\s+/, // ●\r\n /^&#10148;\\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 = \"(&#10003;) \" + 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 \"&times;) \" +\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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ostendis/grapesjs-preset-ostendis-simple",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "GrapesJS preset configuration for the Ostendis editor",
5
5
  "main": "dist/grapesjs-preset-ostendis-simple.min.js",
6
6
  "files": [