simpo-component-library 3.0.37 → 3.0.39

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.
@@ -1,7 +1,7 @@
1
1
  import * as i4 from '@angular/common';
2
2
  import { CommonModule, NgStyle, NgFor, isPlatformBrowser } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Input, EventEmitter, Injectable, Directive, Pipe, HostListener, Output, NgModule, ViewChild, Optional, Inject, PLATFORM_ID } from '@angular/core';
4
+ import { Component, Input, EventEmitter, Injectable, Directive, Pipe, HostListener, Output, NgModule, ViewChild, Optional, Inject, PLATFORM_ID, ElementRef, Renderer2, forwardRef } from '@angular/core';
5
5
  import { MatGridListModule } from '@angular/material/grid-list';
6
6
  import * as i2 from '@angular/material/button';
7
7
  import { MatButtonModule } from '@angular/material/button';
@@ -11,7 +11,7 @@ import { MatIconModule, MatIcon } from '@angular/material/icon';
11
11
  import * as i5 from '@angular/material/dialog';
12
12
  import { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';
13
13
  import * as i8 from '@angular/forms';
14
- import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
14
+ import { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
15
15
  import * as i13$1 from 'ngx-skeleton-loader';
16
16
  import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
17
17
  import * as i13 from '@angular/material/core';
@@ -9707,6 +9707,346 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
9707
9707
  type: Input
9708
9708
  }] } });
9709
9709
 
9710
+ class ContenteditableValueAccessor {
9711
+ constructor(elementRef, renderer) {
9712
+ this.elementRef = elementRef;
9713
+ this.renderer = renderer;
9714
+ this.onTouched = () => { };
9715
+ this.contenteditable = true; // Allow dynamic input
9716
+ this.onChange = (_value) => { };
9717
+ this.renderer.setAttribute(this.elementRef.nativeElement, 'contenteditable', 'true');
9718
+ }
9719
+ ngAfterViewInit() {
9720
+ this.renderer.setAttribute(this.elementRef.nativeElement, 'contenteditable', this.contenteditable ? 'true' : 'false');
9721
+ this.observer = new MutationObserver(() => {
9722
+ this.onChange(this.elementRef.nativeElement.innerHTML);
9723
+ });
9724
+ this.observer.observe(this.elementRef.nativeElement, {
9725
+ characterData: true,
9726
+ childList: true,
9727
+ subtree: true,
9728
+ });
9729
+ }
9730
+ ngOnDestroy() {
9731
+ this.observer?.disconnect();
9732
+ }
9733
+ onInput() {
9734
+ this.observer?.disconnect();
9735
+ this.onChange(this.elementRef.nativeElement.innerHTML);
9736
+ }
9737
+ onBlur() {
9738
+ this.onTouched();
9739
+ }
9740
+ writeValue(value) {
9741
+ this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', value || '');
9742
+ }
9743
+ registerOnChange(onChange) {
9744
+ this.onChange = onChange;
9745
+ }
9746
+ registerOnTouched(onTouched) {
9747
+ this.onTouched = onTouched;
9748
+ }
9749
+ setDisabledState(disabled) {
9750
+ this.renderer.setAttribute(this.elementRef.nativeElement, 'contenteditable', String(!disabled));
9751
+ }
9752
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ContenteditableValueAccessor, deps: [{ token: ElementRef }, { token: Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
9753
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ContenteditableValueAccessor, isStandalone: true, selector: "[contenteditable][ngModel]", inputs: { contenteditable: "contenteditable" }, host: { listeners: { "input": "onInput()", "blur": "onBlur()" } }, providers: [
9754
+ {
9755
+ provide: NG_VALUE_ACCESSOR,
9756
+ useExisting: forwardRef(() => ContenteditableValueAccessor),
9757
+ multi: true,
9758
+ },
9759
+ ], ngImport: i0 }); }
9760
+ }
9761
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ContenteditableValueAccessor, decorators: [{
9762
+ type: Directive,
9763
+ args: [{
9764
+ selector: '[contenteditable][ngModel]',
9765
+ providers: [
9766
+ {
9767
+ provide: NG_VALUE_ACCESSOR,
9768
+ useExisting: forwardRef(() => ContenteditableValueAccessor),
9769
+ multi: true,
9770
+ },
9771
+ ],
9772
+ standalone: true
9773
+ }]
9774
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
9775
+ type: Inject,
9776
+ args: [ElementRef]
9777
+ }] }, { type: i0.Renderer2, decorators: [{
9778
+ type: Inject,
9779
+ args: [Renderer2]
9780
+ }] }], propDecorators: { contenteditable: [{
9781
+ type: Input
9782
+ }], onInput: [{
9783
+ type: HostListener,
9784
+ args: ['input']
9785
+ }], onBlur: [{
9786
+ type: HostListener,
9787
+ args: ['blur']
9788
+ }] } });
9789
+
9790
+ class TextEditorComponent {
9791
+ constructor() {
9792
+ this.value = '<p>Hello this is palash makhija</p>';
9793
+ this.editable = false;
9794
+ this.show = false;
9795
+ this.toolbarX = 0;
9796
+ this.toolbarY = 0;
9797
+ this.toolbarData = {
9798
+ selectedHeading: '',
9799
+ isBold: false,
9800
+ isItalic: false,
9801
+ isUnderlined: false,
9802
+ selectedSize: '',
9803
+ selectedList: '',
9804
+ selectedAlignment: '',
9805
+ selectedColor: ''
9806
+ };
9807
+ }
9808
+ ngOnInit() {
9809
+ document.addEventListener('mousedown', this.hideToolbar.bind(this));
9810
+ }
9811
+ ngOnDestroy() {
9812
+ document.removeEventListener('mousedown', this.hideToolbar.bind(this));
9813
+ }
9814
+ showToolbar(event) {
9815
+ const selection = window.getSelection();
9816
+ if (selection && selection.toString().trim() !== '') {
9817
+ const range = selection.getRangeAt(0);
9818
+ const rect = range.getBoundingClientRect();
9819
+ // Toolbar dimensions (adjust if necessary)
9820
+ const toolbarWidth = 630; // Replace with actual width
9821
+ const toolbarHeight = 45; // Replace with actual height
9822
+ const margin = 10;
9823
+ // Get viewport dimensions
9824
+ const viewportWidth = window.innerWidth;
9825
+ // Always center horizontally on X-axis
9826
+ let newXViewport = rect.left + (rect.width / 2) - (toolbarWidth / 2); // Center horizontally
9827
+ // Prevent X-axis overflow
9828
+ if (newXViewport + toolbarWidth > viewportWidth) {
9829
+ newXViewport = Math.max(0, viewportWidth - toolbarWidth - margin); // Adjust for right overflow
9830
+ }
9831
+ else if (newXViewport < 0) {
9832
+ newXViewport = margin; // Adjust for left overflow
9833
+ }
9834
+ // Keep Y-axis position fixed above the selection by default
9835
+ let newYViewport = rect.top - toolbarHeight - margin;
9836
+ // Adjust Y-axis if there’s no space above the selection
9837
+ if (newYViewport < 0) {
9838
+ newYViewport = rect.bottom + margin; // Move below selection
9839
+ }
9840
+ // Convert to page coordinates
9841
+ this.toolbarX = newXViewport + window.scrollX;
9842
+ this.toolbarY = newYViewport + window.scrollY;
9843
+ this.reFormattingData();
9844
+ this.readFormattingProperties();
9845
+ this.show = true;
9846
+ }
9847
+ else {
9848
+ this.show = false;
9849
+ }
9850
+ }
9851
+ hideToolbar(event) {
9852
+ const clickedInsideEditor = this.editor?.nativeElement.contains(event.target);
9853
+ const clickedInsideToolbar = this.toolbar?.nativeElement.contains(event.target);
9854
+ // Hide the toolbar if the click is outside both the editor and toolbar
9855
+ if (!clickedInsideEditor && !clickedInsideToolbar) {
9856
+ this.show = false;
9857
+ }
9858
+ }
9859
+ formatText(command, value = '') {
9860
+ // if (command === 'formatBlock') {
9861
+ // const selection = window.getSelection();
9862
+ // if (!selection || selection.rangeCount === 0) return;
9863
+ // const range = selection.getRangeAt(0);
9864
+ // const selectedText = selection.toString();
9865
+ // if (selectedText) {
9866
+ // const newElement = document.createElement(value);
9867
+ // newElement.textContent = selectedText;
9868
+ // range.deleteContents();
9869
+ // range.insertNode(newElement);
9870
+ // this.toolbarData.selectedHeading = value;
9871
+ // return;
9872
+ // }
9873
+ // }
9874
+ document.execCommand(command, false, value);
9875
+ if (command === 'bold')
9876
+ this.toolbarData.isBold = !this.toolbarData.isBold;
9877
+ if (command === 'italic')
9878
+ this.toolbarData.isItalic = !this.toolbarData.isItalic;
9879
+ if (command === 'underline')
9880
+ this.toolbarData.isUnderlined = !this.toolbarData.isUnderlined;
9881
+ if (command === 'insertOrderedList' || command === 'insertUnorderedList')
9882
+ this.toolbarData.selectedList = command === this.toolbarData.selectedList ? '' : command;
9883
+ if (command === 'justifyLeft' || command === 'justifyCenter' || command === 'justifyRight')
9884
+ this.toolbarData.selectedAlignment = command === this.toolbarData.selectedAlignment ? '' : command;
9885
+ if (command === 'formatBlock')
9886
+ this.toolbarData.selectedHeading = value;
9887
+ }
9888
+ changeFontSize(event) {
9889
+ const size = event.target.value;
9890
+ // Apply a default size of 4 (needed for execCommand to work)
9891
+ document.execCommand('fontSize', false, '4');
9892
+ // Convert selected font elements to have actual font-size instead of "size" attribute
9893
+ const elements = document.querySelectorAll("font[size='4']");
9894
+ elements.forEach(el => {
9895
+ const htmlElement = el; // ✅ Explicitly cast to HTMLElement
9896
+ htmlElement.removeAttribute('size'); // Remove old size attribute
9897
+ htmlElement.style.fontSize = size; // Apply CSS font size
9898
+ });
9899
+ this.toolbarData.selectedSize = size;
9900
+ // this.show = false; // Hide toolbar after action
9901
+ }
9902
+ changeColor(event) {
9903
+ const color = event.target.value;
9904
+ document.execCommand('foreColor', false, color);
9905
+ this.toolbarData.selectedColor = color;
9906
+ // this.show = false;
9907
+ }
9908
+ updateText(event) {
9909
+ }
9910
+ onFormatChange(event) {
9911
+ const selectedValue = event.target.value;
9912
+ this.formatText('formatBlock', selectedValue);
9913
+ }
9914
+ openColorPicker() {
9915
+ this.colorPicker.nativeElement.click(); // Programmatically trigger input
9916
+ }
9917
+ readFormattingProperties() {
9918
+ const selection = window.getSelection();
9919
+ if (!selection)
9920
+ return;
9921
+ const node = selection.focusNode;
9922
+ // Check if node is null
9923
+ if (!node)
9924
+ return;
9925
+ let element = node.parentElement;
9926
+ while (element) {
9927
+ const nodeName = element.nodeName;
9928
+ if (nodeName === 'H1' || nodeName === 'H2' || nodeName === 'H3') {
9929
+ this.toolbarData.selectedHeading = nodeName;
9930
+ }
9931
+ else if (nodeName === 'B' || nodeName === 'STRONG') {
9932
+ this.toolbarData.isBold = true;
9933
+ }
9934
+ else if (nodeName === 'I' || nodeName === 'EM') {
9935
+ this.toolbarData.isItalic = true;
9936
+ }
9937
+ else if (nodeName === 'U') {
9938
+ this.toolbarData.isUnderlined = true;
9939
+ }
9940
+ else if (nodeName === 'OL') {
9941
+ this.toolbarData.selectedList = 'insertOrderedList';
9942
+ }
9943
+ else if (nodeName === 'UL') {
9944
+ this.toolbarData.selectedList = 'insertUnorderedList';
9945
+ }
9946
+ else if (element.style.textAlign) {
9947
+ this.toolbarData.selectedAlignment = `justify${element.style.textAlign.charAt(0).toUpperCase() + element.style.textAlign.slice(1)}`;
9948
+ }
9949
+ else if (element.style.fontSize) {
9950
+ this.toolbarData.selectedSize = element.style.fontSize;
9951
+ }
9952
+ else if (element.style.color) {
9953
+ this.toolbarData.selectedColor = element.style.color;
9954
+ }
9955
+ element = element.parentElement;
9956
+ }
9957
+ }
9958
+ reFormattingData() {
9959
+ this.toolbarData = {
9960
+ selectedHeading: '',
9961
+ isBold: false,
9962
+ isItalic: false,
9963
+ isUnderlined: false,
9964
+ selectedSize: '',
9965
+ selectedList: '',
9966
+ selectedAlignment: '',
9967
+ selectedColor: ''
9968
+ };
9969
+ }
9970
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9971
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TextEditorComponent, isStandalone: true, selector: "simpo-text-editor", inputs: { value: "value", editable: "editable" }, viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true }, { propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true }], ngImport: i0, template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\">\r\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\r\n (input)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\r\n </div>\r\n\r\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY, 'left.px': toolbarX}\" #toolbar >\r\n <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\r\n <option value=\"H1\">Heading1</option>\r\n <option value=\"H2\">Heading2</option>\r\n <option value=\"H3\">Heading3</option>\r\n <option value=\"div\">Text</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\r\n\r\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\r\n <option value=\"\" selected>Default</option>\r\n <option value=\"18px\">Small</option>\r\n <option value=\"24px\">Medium</option>\r\n <option value=\"32px\">Large</option>\r\n <option value=\"48px\">Extra Large</option>\r\n <option value=\"72px\">Huge</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\r\n\r\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\r\n\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".editor-container{display:inline-block;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;border-bottom:1px dashed #ccc;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background-color:#0496ff!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ContenteditableValueAccessor, selector: "[contenteditable][ngModel]", inputs: ["contenteditable"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
9972
+ }
9973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextEditorComponent, decorators: [{
9974
+ type: Component,
9975
+ args: [{ selector: 'simpo-text-editor', standalone: true, imports: [
9976
+ CommonModule,
9977
+ FormsModule,
9978
+ ContenteditableValueAccessor,
9979
+ MatIconModule
9980
+ ], template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\">\r\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\r\n (input)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\r\n </div>\r\n\r\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY, 'left.px': toolbarX}\" #toolbar >\r\n <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\r\n <option value=\"H1\">Heading1</option>\r\n <option value=\"H2\">Heading2</option>\r\n <option value=\"H3\">Heading3</option>\r\n <option value=\"div\">Text</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\r\n\r\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\r\n <option value=\"\" selected>Default</option>\r\n <option value=\"18px\">Small</option>\r\n <option value=\"24px\">Medium</option>\r\n <option value=\"32px\">Large</option>\r\n <option value=\"48px\">Extra Large</option>\r\n <option value=\"72px\">Huge</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\r\n\r\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\r\n\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [".editor-container{display:inline-block;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;border-bottom:1px dashed #ccc;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background-color:#0496ff!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}\n"] }]
9981
+ }], ctorParameters: () => [], propDecorators: { toolbar: [{
9982
+ type: ViewChild,
9983
+ args: ['toolbar', { static: false }]
9984
+ }], editor: [{
9985
+ type: ViewChild,
9986
+ args: ['editor', { static: false }]
9987
+ }], colorPicker: [{
9988
+ type: ViewChild,
9989
+ args: ['colorPicker']
9990
+ }], value: [{
9991
+ type: Input
9992
+ }], editable: [{
9993
+ type: Input
9994
+ }] } });
9995
+
9996
+ class FooterComponent {
9997
+ constructor() {
9998
+ this.edit = true;
9999
+ this.delete = false;
10000
+ this.footerType = "1";
10001
+ this.screenWidth = 475;
10002
+ this.pageLink = "About Us";
10003
+ this.pages = ["Mission", "Our Team", "Awards", "Testimonials", "Privacy Policy"];
10004
+ this.getScreenSize();
10005
+ }
10006
+ async ngOnInit() {
10007
+ this.style = this.data?.styles;
10008
+ this.content = this.data?.content;
10009
+ }
10010
+ getScreenSize(event) {
10011
+ if (typeof window !== 'undefined') {
10012
+ this.screenWidth = window.innerWidth;
10013
+ }
10014
+ }
10015
+ get stylesLayout() {
10016
+ return { ...this.style?.layout };
10017
+ }
10018
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10019
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: FooterComponent, isStandalone: true, selector: "simpo-footer", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, ngImport: i0, template: "<section class=\"total-container\">\r\n <div [spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\">\r\n <ng-container *ngTemplateOutlet=\"footer1\"></ng-container>\r\n </div>\r\n</section>\r\n\r\n<ng-template #footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesVertical\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\" >\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"pagesVertical\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <simpo-text-editor [value]=\"content?.additionalDetails?.value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Made with <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\">\r\n {{pageLink}}\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #foldersHorizontal>\r\n <div class=\"pageType col-md-3 mb-3\" *ngFor=\"let folder of content?.folder\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\">\r\n {{folder.label}}\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\">{{page}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder\" [class.w-50]=\"screenWidth < 475\">\r\n <!-- <div class=\"pageType mb-3\">{{folder.label}}</div> -->\r\n <simpo-text-editor [value]=\"folder.label\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links\">\r\n <div class=\"pages mb-2\">{{page.label}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".pageType{font-size:16px;font-weight:600;line-height:22px}.pages{font-size:16px;font-weight:400;line-height:22px}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "component", type: SociaIconsComponent, selector: "simpo-socia-icons", inputs: ["socialIconData", "color", "sectionId", "iconColor"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
10020
+ //directives
10021
+ SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable"] }] }); }
10022
+ }
10023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FooterComponent, decorators: [{
10024
+ type: Component,
10025
+ args: [{ selector: 'simpo-footer', standalone: true, imports: [
10026
+ CommonModule,
10027
+ ColorDirective,
10028
+ SociaIconsComponent,
10029
+ FormsModule,
10030
+ SanitizeHtmlPipe,
10031
+ //directives
10032
+ SpacingHorizontalDirective,
10033
+ BackgroundDirective,
10034
+ ContentFitDirective,
10035
+ TextEditorComponent
10036
+ ], template: "<section class=\"total-container\">\r\n <div [spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\">\r\n <ng-container *ngTemplateOutlet=\"footer1\"></ng-container>\r\n </div>\r\n</section>\r\n\r\n<ng-template #footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesVertical\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\" >\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"pagesVertical\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"foldersHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <simpo-text-editor [value]=\"content?.additionalDetails?.value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Made with <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\">\r\n {{pageLink}}\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #foldersHorizontal>\r\n <div class=\"pageType col-md-3 mb-3\" *ngFor=\"let folder of content?.folder\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\">\r\n {{folder.label}}\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\">{{page}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder\" [class.w-50]=\"screenWidth < 475\">\r\n <!-- <div class=\"pageType mb-3\">{{folder.label}}</div> -->\r\n <simpo-text-editor [value]=\"folder.label\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links\">\r\n <div class=\"pages mb-2\">{{page.label}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".pageType{font-size:16px;font-weight:600;line-height:22px}.pages{font-size:16px;font-weight:400;line-height:22px}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}\n"] }]
10037
+ }], ctorParameters: () => [], propDecorators: { data: [{
10038
+ type: Input
10039
+ }], index: [{
10040
+ type: Input
10041
+ }], edit: [{
10042
+ type: Input
10043
+ }], delete: [{
10044
+ type: Input
10045
+ }], getScreenSize: [{
10046
+ type: HostListener,
10047
+ args: ['window:resize', ['$event']]
10048
+ }] } });
10049
+
9710
10050
  class SimpoWrapComntainer {
9711
10051
  constructor(eventService, el) {
9712
10052
  this.eventService = eventService;
@@ -13160,5 +13500,5 @@ class Product {
13160
13500
  * Generated bundle index. Do not edit.
13161
13501
  */
13162
13502
 
13163
- export { AddNewSectionComponent, AlignContent, AnimationDirective, AppointmentFormComponent, AuthenticateUserComponent, AuthenticationRequiredComponent, BANNERALIGNMENT, BANNERHALIGN, BackgroundDirective, BannerCarouselComponent, BannerContentFitDirective, BannerGridSectionComponent, BannerSectionComponent, BlogListComponent, BorderDirective, ButtonDirectiveDirective, CarouselBannerComponent, Cart, CartComponent, Category, CategoryProductComponent, ChannelType, CheckoutComponent, ChooseUsSectionComponent, Collection, ColorDirective, ColumnDirectiveDirective, ContactUsComponent, ContainerFitDirective, ContentFitDirective, CornerDirective, Corners, CustomerReviewComponent, DeviderType, EndUserService, EventsService, FaqSectionComponent, FeaturedCategoryComponent, FeaturedCollectionComponent, FeaturedProductsComponent, FeaturesSectionComponent, FooterSectionComponent, FooterTypes, HALIGN, HEADER_STYLING, HeaderButtonStyle, HeaderTextComponent, HoverDirective, ImageCarouselSectionComponent, ImageDirectiveDirective, ImageFit, ImageGridSectionComponent, ImageRatio, ImageSectionComponent, LocationSectionComponent, LogoGalleryComponent, LogoShowcaseComponent, MapType, NavbarSectionComponent, ObjectPositionDirective, OverlayDirective, OverlayValue, Padding, PositionLayoutDirectiveDirective, PricingSectionComponent, ProcessModernComponent, ProcessSectionComponent, Product, ProductCardTheme, ProductCategoryListComponent, ProductDescComponent, ProductListComponent, PropertyComponentComponent, PropertyListComponent, RecentBlogPostSectionComponent, RedirectionLinkType, RegistrationFormComponent, RemoveCarouselDirective, SPACING$1 as SPACING, SPACINGALIGN, SanitizeHtmlPipe, ServiceSectionComponent, SimpoContainerAligment, SimpoFooterLayoutDirective, SimpoStickyDirective, SkeletonLoaderSectionComponent, SpacingAroundDirective, Style, TEXT_SIZE, TeamMemberSectionComponent, TestimonialFullwidthComponent, TestimonialSectionComponent, TestimonialVideoComponent, TextBackgroundDirectiveDirective, TextImageSectionComponent, TextPosition, TextSectionComponent, UserProfileComponent, UspVideoSectionComponent, VALIGN, VerifyComponent, VideoSectionComponent, ViewBlogComponent, WhislistComponent, animation, applySpacing, applyStyle, cartType, contentAlignment, fitContent, fitScreen, fontSize, logoDirection, logoSpeed, logoType, mapStyle, showCaseType, simpoConetenAlignmentDirective, svgData };
13503
+ export { AddNewSectionComponent, AlignContent, AnimationDirective, AppointmentFormComponent, AuthenticateUserComponent, AuthenticationRequiredComponent, BANNERALIGNMENT, BANNERHALIGN, BackgroundDirective, BannerCarouselComponent, BannerContentFitDirective, BannerGridSectionComponent, BannerSectionComponent, BlogListComponent, BorderDirective, ButtonDirectiveDirective, CarouselBannerComponent, Cart, CartComponent, Category, CategoryProductComponent, ChannelType, CheckoutComponent, ChooseUsSectionComponent, Collection, ColorDirective, ColumnDirectiveDirective, ContactUsComponent, ContainerFitDirective, ContentFitDirective, CornerDirective, Corners, CustomerReviewComponent, DeviderType, EndUserService, EventsService, FaqSectionComponent, FeaturedCategoryComponent, FeaturedCollectionComponent, FeaturedProductsComponent, FeaturesSectionComponent, FooterComponent, FooterSectionComponent, FooterTypes, HALIGN, HEADER_STYLING, HeaderButtonStyle, HeaderTextComponent, HoverDirective, ImageCarouselSectionComponent, ImageDirectiveDirective, ImageFit, ImageGridSectionComponent, ImageRatio, ImageSectionComponent, LocationSectionComponent, LogoGalleryComponent, LogoShowcaseComponent, MapType, NavbarSectionComponent, ObjectPositionDirective, OverlayDirective, OverlayValue, Padding, PositionLayoutDirectiveDirective, PricingSectionComponent, ProcessModernComponent, ProcessSectionComponent, Product, ProductCardTheme, ProductCategoryListComponent, ProductDescComponent, ProductListComponent, PropertyComponentComponent, PropertyListComponent, RecentBlogPostSectionComponent, RedirectionLinkType, RegistrationFormComponent, RemoveCarouselDirective, SPACING$1 as SPACING, SPACINGALIGN, SanitizeHtmlPipe, ServiceSectionComponent, SimpoContainerAligment, SimpoFooterLayoutDirective, SimpoStickyDirective, SkeletonLoaderSectionComponent, SpacingAroundDirective, Style, TEXT_SIZE, TeamMemberSectionComponent, TestimonialFullwidthComponent, TestimonialSectionComponent, TestimonialVideoComponent, TextBackgroundDirectiveDirective, TextImageSectionComponent, TextPosition, TextSectionComponent, UserProfileComponent, UspVideoSectionComponent, VALIGN, VerifyComponent, VideoSectionComponent, ViewBlogComponent, WhislistComponent, animation, applySpacing, applyStyle, cartType, contentAlignment, fitContent, fitScreen, fontSize, logoDirection, logoSpeed, logoType, mapStyle, showCaseType, simpoConetenAlignmentDirective, svgData };
13164
13504
  //# sourceMappingURL=simpo-component-library.mjs.map