simpo-component-library 3.6.842 → 3.6.843

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.
Files changed (38) hide show
  1. package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +17 -6
  2. package/esm2022/lib/directive/background-directive.mjs +6 -6
  3. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
  4. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +246 -504
  5. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +110 -0
  6. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.model.mjs +2 -0
  7. package/esm2022/lib/styles/gradient-extension.mjs +38 -0
  8. package/esm2022/lib/styles/text-size.extension.mjs +44 -0
  9. package/esm2022/public-api.mjs +3 -1
  10. package/fesm2022/simpo-component-library.mjs +466 -635
  11. package/fesm2022/simpo-component-library.mjs.map +1 -1
  12. package/lib/components/hover-elements/hover-elements.component.d.ts +3 -0
  13. package/lib/components/input-fields/input-fields.component.d.ts +1 -1
  14. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
  15. package/lib/ecommerce/sections/featured-category/featured-category.component.d.ts +1 -1
  16. package/lib/ecommerce/sections/featured-category/featured-collection.component.d.ts +1 -1
  17. package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +1 -1
  18. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
  19. package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
  20. package/lib/elements/text-editor/text-editor.component.d.ts +33 -49
  21. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
  22. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  23. package/lib/sections/image-grid-hotspot/image-grid-hotspot.component.d.ts +1 -1
  24. package/lib/sections/image-grid-section/image-grid-section.component.d.ts +1 -1
  25. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  26. package/lib/sections/logo-showcase/logo-showcase.component.d.ts +1 -1
  27. package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
  28. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
  29. package/lib/sections/testimonial-masonry/testimonial-masonry.component.d.ts +30 -0
  30. package/lib/sections/testimonial-masonry/testimonial-masonry.model.d.ts +24 -0
  31. package/lib/styles/gradient-extension.d.ts +2 -0
  32. package/lib/styles/text-size.extension.d.ts +10 -0
  33. package/package.json +1 -1
  34. package/public-api.d.ts +2 -0
  35. package/simpo-component-library-3.6.843.tgz +0 -0
  36. package/esm2022/lib/directive/contenteditable.directive.mjs +0 -83
  37. package/lib/directive/contenteditable.directive.d.ts +0 -22
  38. package/simpo-component-library-3.6.842.tgz +0 -0
@@ -14,6 +14,9 @@ export declare class HoverElementsComponent implements OnInit {
14
14
  isMerged: boolean;
15
15
  isEcommerce: boolean;
16
16
  ngOnInit(): void;
17
+ isMenuOpen: boolean;
18
+ toggleMenu(event: Event): void;
19
+ onDocumentClick(): void;
17
20
  editSection(): void;
18
21
  restyleSection(event: any): void;
19
22
  changeContent(event: any): void;
@@ -13,7 +13,7 @@ export declare class InputFieldsComponent implements OnChanges {
13
13
  constructor(elementRef: ElementRef);
14
14
  ngOnChanges(changes: SimpleChanges): void;
15
15
  handleMoneyInput(event: any): void;
16
- get getTextColor(): "#FFF" | "#000";
16
+ get getTextColor(): "#000" | "#FFF";
17
17
  interpolateColor(color1: string, color2: string, factor: number): string;
18
18
  padZero(str: string, length: number): string;
19
19
  generateColorBasedOnNumber(number: number): string;
@@ -94,7 +94,7 @@ export declare class AuthenticationRequiredComponent extends BaseSection {
94
94
  validateNumber(event: KeyboardEvent): void;
95
95
  validateOTP(event: KeyboardEvent): void;
96
96
  checkStrength(): void;
97
- getStrengthColor(index: number): "yellow" | "tomato" | "#d3d3d3ba" | "orange" | "lightgreen";
97
+ getStrengthColor(index: number): "tomato" | "#d3d3d3ba" | "orange" | "yellow" | "lightgreen";
98
98
  emailDebounceTimer: any;
99
99
  onEmailChange(): void;
100
100
  emailCheck: boolean;
@@ -37,7 +37,7 @@ export declare class FeaturedCategoryComponent extends BaseSection {
37
37
  get getDirection(): "ROW" | "COLUMN" | undefined;
38
38
  get stylesLayout(): LayOutModel;
39
39
  get isMobile(): boolean;
40
- getJustifyContent(): "" | import("simpo-component-library").ALIGN | "flex-start";
40
+ getJustifyContent(): import("simpo-component-library").ALIGN | "" | "flex-start";
41
41
  static ɵfac: i0.ɵɵFactoryDeclaration<FeaturedCategoryComponent, never>;
42
42
  static ɵcmp: i0.ɵɵComponentDeclaration<FeaturedCategoryComponent, "simpo-featured-category", never, { "data": { "alias": "data"; "required": false; }; "responseData": { "alias": "responseData"; "required": false; }; "index": { "alias": "index"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "nextComponentColor": { "alias": "nextComponentColor"; "required": false; }; }, {}, never, never, true, never>;
43
43
  }
@@ -32,7 +32,7 @@ export declare class FeaturedCollectionComponent extends BaseSection {
32
32
  get getDirection(): "ROW" | "COLUMN" | undefined;
33
33
  get isMobile(): boolean;
34
34
  editSection(): void;
35
- getJustifyContent(): "" | import("simpo-component-library").ALIGN | "flex-start";
35
+ getJustifyContent(): import("simpo-component-library").ALIGN | "" | "flex-start";
36
36
  static ɵfac: i0.ɵɵFactoryDeclaration<FeaturedCollectionComponent, never>;
37
37
  static ɵcmp: i0.ɵɵComponentDeclaration<FeaturedCollectionComponent, "simpo-featured-collection", never, { "data": { "alias": "data"; "required": false; }; "responseData": { "alias": "responseData"; "required": false; }; "index": { "alias": "index"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "nextComponentColor": { "alias": "nextComponentColor"; "required": false; }; }, {}, never, never, true, never>;
38
38
  }
@@ -33,7 +33,7 @@ export declare class NewCollectionComponent extends BaseSection {
33
33
  get isMobile(): boolean;
34
34
  editSection(): void;
35
35
  getColor(color: any): "#000000" | "#ffffff";
36
- getJustifyContent(): "" | import("simpo-component-library").ALIGN | "flex-start";
36
+ getJustifyContent(): import("simpo-component-library").ALIGN | "" | "flex-start";
37
37
  static ɵfac: i0.ɵɵFactoryDeclaration<NewCollectionComponent, never>;
38
38
  static ɵcmp: i0.ɵɵComponentDeclaration<NewCollectionComponent, "simpo-new-collection", never, { "data": { "alias": "data"; "required": false; }; "responseData": { "alias": "responseData"; "required": false; }; "index": { "alias": "index"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "nextComponentColor": { "alias": "nextComponentColor"; "required": false; }; }, {}, never, never, true, never>;
39
39
  }
@@ -124,7 +124,7 @@ export declare class ProductDescComponent extends BaseSection {
124
124
  getTextColor(color: any): "#000000" | "#ffffff";
125
125
  languages: string[];
126
126
  selectedLang: string;
127
- getClass(map: any): "col-4" | "col-6" | "col-3" | "width-max";
127
+ getClass(map: any): "col-6" | "col-4" | "col-3" | "width-max";
128
128
  onFindInStore(id: string): void;
129
129
  onBookAppointment(): void;
130
130
  isDetails: boolean;
@@ -21,7 +21,7 @@ export declare class SchemesComponent extends BaseSection {
21
21
  get stylesLayout(): LayOutModel;
22
22
  get spacingLayout(): SpacingModel;
23
23
  getParentClass(): "" | "overflow-scroll flex-nowrap";
24
- getClass(index: number): "col-12" | "col-6" | "col-6 mb-2" | "col-12 mb-2";
24
+ getClass(index: number): "col-6" | "col-12" | "col-6 mb-2" | "col-12 mb-2";
25
25
  showSchemeDetails(scheme: any): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<SchemesComponent, never>;
27
27
  static ɵcmp: i0.ɵɵComponentDeclaration<SchemesComponent, "simpo-schemes", never, { "data": { "alias": "data"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "index": { "alias": "index"; "required": false; }; }, {}, never, never, true, never>;
@@ -1,65 +1,49 @@
1
- import { ElementRef, EventEmitter, NgZone } from '@angular/core';
2
- import { ElementServiceService } from '../editor-service.service';
1
+ import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { Editor } from '@tiptap/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class TextEditorComponent {
5
- private editorService;
6
- private platformId;
7
- private ngZone;
8
- toolbar: ElementRef;
9
- editor: ElementRef;
10
- colorPicker: ElementRef;
11
- parentElement: ElementRef;
12
- suggestion: ElementRef;
13
- private lastGradientSpan;
4
+ export declare class TextEditorComponent implements OnInit, OnDestroy {
14
5
  value: string;
15
6
  valueChange: EventEmitter<string>;
16
7
  editable: boolean;
17
8
  sectionId?: string;
18
9
  label?: string;
19
10
  type?: string;
20
- show: boolean;
11
+ editorElement: ElementRef;
12
+ editor: Editor;
13
+ selectedFontSize: string;
14
+ showToolbar: boolean;
15
+ toolbarX: number;
21
16
  toolbarY: number;
22
- suggestionY: number;
23
- rightZero: boolean;
24
- showSuggestion: boolean;
25
- toolbarData: any;
26
- selectedColorType: 'SOLID' | 'GRADIENT';
17
+ selectedColor: string;
27
18
  primaryColor: string;
28
- secondaryColor: any;
29
- constructor(editorService: ElementServiceService, platformId: Object, ngZone: NgZone);
19
+ secondaryColor: string;
20
+ isColorPickerOpen: boolean;
21
+ selectedColorType: 'SOLID' | 'GRADIENT';
30
22
  ngOnInit(): void;
31
23
  ngOnDestroy(): void;
32
- private selectRange;
33
- private markSelection;
34
- private restoreSelectionFromMarkers;
35
- showToolbar(event: MouseEvent): void;
36
- rememberSelection(e: MouseEvent): void;
37
- private getActiveRange;
38
- setColorMode(mode: 'SOLID' | 'GRADIENT'): void;
39
- private wrapRangeWithGradient;
40
- private unwrapGradientInRange;
41
- hideToolbar(event: MouseEvent): void;
42
- formatText(command: string, value?: string): void;
43
- updateFSforOL(): void;
44
- private setStyleWithCSS;
45
- private toLegacyFontStep;
46
- private normalizeFontSizeToCss;
47
- changeFontSize(event: any): void;
48
- changeColor(event: any): void;
49
- updateText(event: Event): void;
50
- onFormatChange(event: Event): void;
51
- openColorPicker(): void;
52
- readFormattingProperties(): void;
53
- reFormattingData(): void;
54
- changeGradientColor(): void;
55
- applyGradientToText(gradientValue: string): void;
56
- regenerateText(): void;
57
- private savedRange;
24
+ savedSelection: any;
58
25
  saveSelection(): void;
59
26
  restoreSelection(): void;
60
- onPaste(event: ClipboardEvent): void;
61
- stripStyles(html: string): string;
62
- getText(): string;
27
+ switchToSolid(event: Event): void;
28
+ switchToGradient(event: Event): void;
29
+ openColorPicker(): void;
30
+ handleWindowFocus: () => void;
31
+ handleSelection(): void;
32
+ toggleBold(): void;
33
+ toggleItalic(): void;
34
+ toggleUnderline(): void;
35
+ toggleOrderedList(): void;
36
+ toggleBulletList(): void;
37
+ setAlign(alignment: 'left' | 'center' | 'right'): void;
38
+ changeColor(): void;
39
+ applyGradient(): void;
40
+ onMouseDown(): void;
41
+ isFontSizeMenuOpen: boolean;
42
+ toolbarData: any;
43
+ toggleFontSizeMenu(event: Event): void;
44
+ getDisplayFontSize(): string;
45
+ selectCustomFontSize(cssSize: string, event: Event): void;
46
+ changeFontSize(fontSize: string): void;
63
47
  static ɵfac: i0.ɵɵFactoryDeclaration<TextEditorComponent, never>;
64
48
  static ɵcmp: i0.ɵɵComponentDeclaration<TextEditorComponent, "simpo-text-editor", never, { "value": { "alias": "value"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "sectionId": { "alias": "sectionId"; "required": false; }; "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
65
49
  }
@@ -33,8 +33,8 @@ export declare class BannerCarouselComponent extends BaseSection implements OnIn
33
33
  get stylesLayout(): LayOutModel;
34
34
  get getBlurValue(): "NONE" | "LIGHT" | "MODERATE" | "STRONG" | "VERY_STRONG" | undefined;
35
35
  get getBackgroundColor(): BackgroundModel;
36
- get getBackgroundOpacity(): "1" | "0" | "0.7" | "0.5" | "0.6" | "0.8";
37
- opacityValue(value: OverlayValue): "1" | "0.7" | "0.5" | "0.6" | "0.8";
36
+ get getBackgroundOpacity(): "0" | "1" | "0.5" | "0.7" | "0.6" | "0.8";
37
+ opacityValue(value: OverlayValue): "1" | "0.5" | "0.7" | "0.6" | "0.8";
38
38
  editSection(): void;
39
39
  getScreenSize(): number;
40
40
  getSectionMinHeight(): string;
@@ -25,7 +25,7 @@ export declare class CarouselBannerComponent extends BaseSection implements OnIn
25
25
  get canMergeNavbar(): boolean | undefined;
26
26
  get isBorderlessImage(): boolean | undefined;
27
27
  get getPositionLayout(): PositionLayoutModal;
28
- opacityValue(value: OverlayValue): "0" | "0.7" | "0.5" | "0.3" | "0.2";
28
+ opacityValue(value: OverlayValue): "0" | "0.2" | "0.3" | "0.5" | "0.7";
29
29
  editSection(): void;
30
30
  static ɵfac: i0.ɵɵFactoryDeclaration<CarouselBannerComponent, never>;
31
31
  static ɵcmp: i0.ɵɵComponentDeclaration<CarouselBannerComponent, "simpo-carousel-banner", never, { "data": { "alias": "data"; "required": false; }; "index": { "alias": "index"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "nextComponentColor": { "alias": "nextComponentColor"; "required": false; }; }, {}, never, never, true, never>;
@@ -23,7 +23,7 @@ export declare class ImageGridHotspotComponent extends BaseSection {
23
23
  get headingSpace(): SPACING;
24
24
  editSection(): void;
25
25
  getLength(): number;
26
- getJustifyContent(): "" | import("simpo-component-library").ALIGN | "flex-start";
26
+ getJustifyContent(): import("simpo-component-library").ALIGN | "" | "flex-start";
27
27
  private get scrollStep();
28
28
  scrollRight(): void;
29
29
  isOverflowing: boolean;
@@ -23,7 +23,7 @@ export declare class ImageGridSectionComponent extends BaseSection {
23
23
  get headingSpace(): SPACING;
24
24
  editSection(): void;
25
25
  getLength(): number;
26
- getJustifyContent(): "" | import("simpo-component-library").ALIGN | "flex-start";
26
+ getJustifyContent(): import("simpo-component-library").ALIGN | "" | "flex-start";
27
27
  private get scrollStep();
28
28
  scrollRight(): void;
29
29
  isOverflowing: boolean;
@@ -20,9 +20,9 @@ export declare class ImageSectionComponent extends BaseSection {
20
20
  constructor(_eventService: EventsService);
21
21
  ngOnInit(): void;
22
22
  get canMergeNavbar(): boolean | undefined;
23
- get getBackgroundOpacity(): "1" | "0.7" | "0.5" | "0.3" | "0.2";
23
+ get getBackgroundOpacity(): "1" | "0.2" | "0.3" | "0.5" | "0.7";
24
24
  get stylesLayout(): LayOutModel;
25
- opacityValue(value: OverlayValue): "1" | "0.7" | "0.5" | "0.3" | "0.2";
25
+ opacityValue(value: OverlayValue): "1" | "0.2" | "0.3" | "0.5" | "0.7";
26
26
  editSection(): void;
27
27
  redirectTo(): void;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<ImageSectionComponent, never>;
@@ -23,7 +23,7 @@ export declare class LogoShowcaseComponent extends BaseSection implements OnInit
23
23
  constructor(_eventService: EventsService);
24
24
  ngOnInit(): void;
25
25
  get stylesLayout(): LayOutModel;
26
- get animationDuration(): "3s" | "4s" | logoSpeed.Normal | "18s" | "6s" | "5s";
26
+ get animationDuration(): logoSpeed.Normal | "18s" | "6s" | "5s" | "4s" | "3s";
27
27
  get animationDirection(): logoDirection.Left | "reverse" | "normal";
28
28
  get isMobile(): boolean;
29
29
  get getPositionLayout(): PositionLayoutModal;
@@ -24,7 +24,7 @@ export declare class NewTestimonialsComponent extends BaseSection {
24
24
  idx: number;
25
25
  getImageData(): import("../../styles/style.model").Image | undefined;
26
26
  getImageUrl(): string | undefined;
27
- getImageType(): "Image" | "Video";
27
+ getImageType(): "Video" | "Image";
28
28
  getLength(): number;
29
29
  editSection(): void;
30
30
  stopPropagation(event: any): void;
@@ -23,7 +23,7 @@ export declare class PricingSectionComponent extends BaseSection {
23
23
  getButtonId(): string;
24
24
  editSection(): void;
25
25
  redirectTo(data: any): void;
26
- getClass(): "col-4" | "col-12" | "col-6" | "col-3";
26
+ getClass(): "col-6" | "col-4" | "col-3" | "col-12";
27
27
  getAlignment(): "justify-content-start" | "justify-content-center" | "justify-content-end";
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<PricingSectionComponent, never>;
29
29
  static ɵcmp: i0.ɵɵComponentDeclaration<PricingSectionComponent, "simpo-pricing-section", never, { "data": { "alias": "data"; "required": false; }; "index": { "alias": "index"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "nextComponentColor": { "alias": "nextComponentColor"; "required": false; }; }, {}, never, never, true, never>;
@@ -0,0 +1,30 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { BackgroundModel, LayOutModel } from '../../styles/style.model';
3
+ import { EventsService } from '../../services/events.service';
4
+ import BaseSection from '../BaseSection';
5
+ import { TestimonialMasonryContentModel, TestimonialMasonryModel, TestimonialMasonryStyleModel } from './testimonial-masonry.model';
6
+ import * as i0 from "@angular/core";
7
+ export declare class TestimonialMasonryComponent extends BaseSection implements OnInit {
8
+ private _eventService;
9
+ data?: TestimonialMasonryModel | any;
10
+ edit?: boolean;
11
+ delete?: boolean;
12
+ customClass?: string;
13
+ nextComponentColor?: BackgroundModel;
14
+ index?: number;
15
+ content?: TestimonialMasonryContentModel;
16
+ styles?: TestimonialMasonryStyleModel;
17
+ screenWidth: number;
18
+ constructor(_eventService: EventsService);
19
+ ngOnInit(): void;
20
+ get stylesLayout(): LayOutModel;
21
+ get activeItems(): import("./testimonial-masonry.model").TestimonialMasonryItemModel[];
22
+ getQuote(item: any): string;
23
+ getAuthor(item: any): string;
24
+ getRole(item: any): string;
25
+ getAvatarUrl(item: any): string;
26
+ editSection(): void;
27
+ getScreenSize(): void;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<TestimonialMasonryComponent, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestimonialMasonryComponent, "simpo-testimonial-masonry", never, { "data": { "alias": "data"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "nextComponentColor": { "alias": "nextComponentColor"; "required": false; }; "index": { "alias": "index"; "required": false; }; }, {}, never, never, true, never>;
30
+ }
@@ -0,0 +1,24 @@
1
+ import { Image, InputTextModel, ListItemModal, StylesModel, BannerStylesModel, ActionModel } from '../../styles/style.model';
2
+ export interface TestimonialMasonryModel {
3
+ id: string;
4
+ sectionType: string;
5
+ sectionName: string;
6
+ content: TestimonialMasonryContentModel;
7
+ styles: TestimonialMasonryStyleModel;
8
+ action?: ActionModel;
9
+ }
10
+ export interface TestimonialMasonryContentModel {
11
+ inputText: InputTextModel[];
12
+ display?: {
13
+ showImage?: boolean;
14
+ showCard?: boolean;
15
+ };
16
+ listItem: ListItemModal<TestimonialMasonryItemModel>;
17
+ }
18
+ export interface TestimonialMasonryItemModel {
19
+ status: boolean;
20
+ image: Image;
21
+ inputText: InputTextModel[];
22
+ }
23
+ export interface TestimonialMasonryStyleModel extends StylesModel, BannerStylesModel {
24
+ }
@@ -0,0 +1,2 @@
1
+ import { Extension } from '@tiptap/core';
2
+ export declare const GradientExtension: Extension<any, any>;
@@ -0,0 +1,10 @@
1
+ import { Extension } from '@tiptap/core';
2
+ declare module '@tiptap/core' {
3
+ interface Commands<ReturnType> {
4
+ fontSize: {
5
+ setFontSize: (size: string) => ReturnType;
6
+ unsetFontSize: () => ReturnType;
7
+ };
8
+ }
9
+ }
10
+ export declare const FontSize: Extension<any, any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simpo-component-library",
3
- "version": "3.6.842",
3
+ "version": "3.6.843",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.2.0",
6
6
  "@angular/core": "^17.2.0",
package/public-api.d.ts CHANGED
@@ -49,6 +49,8 @@ export * from './lib/sections/scheme-detail/scheme-detail.component';
49
49
  export * from './lib/ecommerce/sections/schemes/schemes.component';
50
50
  export * from './lib/sections/image-grid-hotspot/image-grid-hotspot.component';
51
51
  export * from './lib/sections/testimonial-slider/testimonial-slider.component';
52
+ export * from './lib/sections/testimonial-masonry/testimonial-masonry.component';
53
+ export * from './lib/sections/testimonial-masonry/testimonial-masonry.model';
52
54
  export * from './lib/ecommerce/sections/featured-products/featured-products.component';
53
55
  export * from './lib/ecommerce/sections/featured-category/featured-category.component';
54
56
  export * from './lib/ecommerce/sections/product-desc/product-desc.component';
@@ -1,83 +0,0 @@
1
- import { Directive, ElementRef, forwardRef, HostListener, Inject, Input, Renderer2 } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export class ContenteditableValueAccessor {
5
- constructor(elementRef, renderer) {
6
- this.elementRef = elementRef;
7
- this.renderer = renderer;
8
- this.onTouched = () => { };
9
- this.contenteditable = true; // Allow dynamic input
10
- this.onChange = (_value) => { };
11
- this.renderer.setAttribute(this.elementRef.nativeElement, 'contenteditable', 'true');
12
- }
13
- ngAfterViewInit() {
14
- this.renderer.setAttribute(this.elementRef.nativeElement, 'contenteditable', this.contenteditable ? 'true' : 'false');
15
- this.observer = new MutationObserver(() => {
16
- this.onChange(this.elementRef.nativeElement.innerHTML);
17
- });
18
- this.observer.observe(this.elementRef.nativeElement, {
19
- characterData: true,
20
- childList: true,
21
- subtree: true,
22
- });
23
- }
24
- ngOnDestroy() {
25
- this.observer?.disconnect();
26
- }
27
- onInput() {
28
- this.observer?.disconnect();
29
- this.onChange(this.elementRef.nativeElement.innerHTML);
30
- }
31
- onBlur() {
32
- this.onTouched();
33
- }
34
- writeValue(value) {
35
- this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', value || '');
36
- }
37
- registerOnChange(onChange) {
38
- this.onChange = onChange;
39
- }
40
- registerOnTouched(onTouched) {
41
- this.onTouched = onTouched;
42
- }
43
- setDisabledState(disabled) {
44
- this.renderer.setAttribute(this.elementRef.nativeElement, 'contenteditable', String(!disabled));
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContenteditableValueAccessor, deps: [{ token: ElementRef }, { token: Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ContenteditableValueAccessor, isStandalone: true, selector: "[contenteditable][ngModel]", inputs: { contenteditable: "contenteditable" }, host: { listeners: { "input": "onInput()", "blur": "onBlur()" } }, providers: [
48
- {
49
- provide: NG_VALUE_ACCESSOR,
50
- useExisting: forwardRef(() => ContenteditableValueAccessor),
51
- multi: true,
52
- },
53
- ], ngImport: i0 }); }
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContenteditableValueAccessor, decorators: [{
56
- type: Directive,
57
- args: [{
58
- selector: '[contenteditable][ngModel]',
59
- providers: [
60
- {
61
- provide: NG_VALUE_ACCESSOR,
62
- useExisting: forwardRef(() => ContenteditableValueAccessor),
63
- multi: true,
64
- },
65
- ],
66
- standalone: true
67
- }]
68
- }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
69
- type: Inject,
70
- args: [ElementRef]
71
- }] }, { type: i0.Renderer2, decorators: [{
72
- type: Inject,
73
- args: [Renderer2]
74
- }] }], propDecorators: { contenteditable: [{
75
- type: Input
76
- }], onInput: [{
77
- type: HostListener,
78
- args: ['input']
79
- }], onBlur: [{
80
- type: HostListener,
81
- args: ['blur']
82
- }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGVkaXRhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL2NvbnRlbnRlZGl0YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBY3ZFLE1BQU0sT0FBTyw0QkFBNEI7SUFTdkMsWUFDdUMsVUFBK0IsRUFDaEMsUUFBbUI7UUFEbEIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVRqRCxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsc0JBQXNCO1FBRS9DLGFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBUXhDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsaUJBQWlCLEVBQ2pCLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDeEMsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQ2pELGFBQWEsRUFBRSxJQUFJO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFHRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFHRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLFdBQVcsRUFDWCxLQUFLLElBQUksRUFBRSxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQXFCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFpQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLGlCQUFpQixFQUNqQixNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FDbEIsQ0FBQztJQUNKLENBQUM7K0dBM0VVLDRCQUE0QixrQkFVN0IsVUFBVSxhQUNWLFNBQVM7bUdBWFIsNEJBQTRCLDRMQVQ1QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQzNELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBR1UsNEJBQTRCO2tCQVp4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFDTiw0QkFBNEI7b0JBQzlCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFXSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLFNBQVM7eUNBUlYsZUFBZTtzQkFBdkIsS0FBSztnQkF3Q04sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBT3JCLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUmVuZGVyZXIyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjpcclxuICAgICdbY29udGVudGVkaXRhYmxlXVtuZ01vZGVsXScsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb250ZW50ZWRpdGFibGVWYWx1ZUFjY2Vzc29yKSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGVudGVkaXRhYmxlVmFsdWVBY2Nlc3NvclxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcclxuICBASW5wdXQoKSBjb250ZW50ZWRpdGFibGUgPSB0cnVlOyAvLyBBbGxvdyBkeW5hbWljIGlucHV0XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoX3ZhbHVlOiBzdHJpbmcpID0+IHt9O1xyXG5cclxuICBwcml2YXRlIG9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxFbGVtZW50PixcclxuICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICdjb250ZW50ZWRpdGFibGUnLFxyXG4gICAgICAndHJ1ZSdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICdjb250ZW50ZWRpdGFibGUnLFxyXG4gICAgICB0aGlzLmNvbnRlbnRlZGl0YWJsZSA/ICd0cnVlJyA6ICdmYWxzZSdcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXHJcbiAgb25JbnB1dCgpIHtcclxuICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxyXG4gIG9uQmx1cigpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXHJcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAnaW5uZXJIVE1MJyxcclxuICAgICAgdmFsdWUgfHwgJydcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgJ2NvbnRlbnRlZGl0YWJsZScsXHJcbiAgICAgIFN0cmluZyghZGlzYWJsZWQpXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,22 +0,0 @@
1
- import { AfterViewInit, ElementRef, OnDestroy, Renderer2 } from '@angular/core';
2
- import { ControlValueAccessor } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export declare class ContenteditableValueAccessor implements ControlValueAccessor, AfterViewInit, OnDestroy {
5
- private readonly elementRef;
6
- private readonly renderer;
7
- private onTouched;
8
- contenteditable: boolean;
9
- private onChange;
10
- private observer?;
11
- constructor(elementRef: ElementRef<Element>, renderer: Renderer2);
12
- ngAfterViewInit(): void;
13
- ngOnDestroy(): void;
14
- onInput(): void;
15
- onBlur(): void;
16
- writeValue(value: string): void;
17
- registerOnChange(onChange: (value: string) => void): void;
18
- registerOnTouched(onTouched: () => void): void;
19
- setDisabledState(disabled: boolean): void;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<ContenteditableValueAccessor, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<ContenteditableValueAccessor, "[contenteditable][ngModel]", never, { "contenteditable": { "alias": "contenteditable"; "required": false; }; }, {}, never, never, true, never>;
22
- }
Binary file