@vectoriox/iox-ui 4.0.6 → 4.0.7

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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { AfterViewInit, EventEmitter, ElementRef, SimpleChanges, OnDestroy, OnInit, Renderer2, ModuleWithProviders, InjectionToken } from '@angular/core';
2
+ import { AfterViewInit, EventEmitter, ElementRef, SimpleChanges, OnDestroy, OnInit, Renderer2, ModuleWithProviders, InjectionToken, ChangeDetectorRef, ViewContainerRef, Type } from '@angular/core';
3
3
  import { AnimationPlayer, AnimationBuilder } from '@angular/animations';
4
4
  import { Observable, Subject } from 'rxjs';
5
5
  import * as i3 from '@angular/platform-browser/animations';
@@ -172,11 +172,19 @@ declare class PageScrollProvider {
172
172
  static ɵprov: i0.ɵɵInjectableDeclaration<PageScrollProvider>;
173
173
  }
174
174
 
175
+ interface IoxScrollOptions {
176
+ lerp?: number;
177
+ wheelMultiplier?: number;
178
+ touchMultiplier?: number;
179
+ orientation?: 'vertical' | 'horizontal';
180
+ infinite?: boolean;
181
+ }
175
182
  declare class IoxPageComponent implements AfterViewInit, OnDestroy {
176
183
  private pageScrollProvider;
177
184
  private platformId;
178
185
  class: string;
179
186
  scrollEnabled: boolean;
187
+ scrollOptions: IoxScrollOptions;
180
188
  page: ElementRef<HTMLDivElement>;
181
189
  scrollEvent: EventEmitter<{
182
190
  scrollTop: number;
@@ -191,7 +199,7 @@ declare class IoxPageComponent implements AfterViewInit, OnDestroy {
191
199
  ngAfterViewInit(): void;
192
200
  ngOnDestroy(): void;
193
201
  static ɵfac: i0.ɵɵFactoryDeclaration<IoxPageComponent, never>;
194
- static ɵcmp: i0.ɵɵComponentDeclaration<IoxPageComponent, "iox-page-component", never, { "class": { "alias": "class"; "required": false; }; "scrollEnabled": { "alias": "scrollEnabled"; "required": false; }; }, { "scrollEvent": "scrollEvent"; }, never, ["*"], false, never>;
202
+ static ɵcmp: i0.ɵɵComponentDeclaration<IoxPageComponent, "iox-page-component", never, { "class": { "alias": "class"; "required": false; }; "scrollEnabled": { "alias": "scrollEnabled"; "required": false; }; "scrollOptions": { "alias": "scrollOptions"; "required": false; }; }, { "scrollEvent": "scrollEvent"; }, never, ["*"], false, never>;
195
203
  }
196
204
 
197
205
  declare class IoxPageModule {
@@ -291,5 +299,228 @@ declare class AnalyticsService {
291
299
  static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsService>;
292
300
  }
293
301
 
294
- export { AOSService, AnalyticsService, CMSClientInfraModule, ConsentService, ContentService, ENVIRONMENT, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxMasonryComponent, IoxMasonryItemDirective, IoxMasonryModule, IoxMasonryService, IoxPageComponent, IoxPageModule, IoxUiModule, PageScrollProvider, PrivacyModalComponent, PrivacyModalService, PrivacyModelEvent, ViewPositionDirective, ViewPositionModule, WebSettingsService };
295
- export type { IoxMasonryOptions };
302
+ declare const IS_PREVIEW: InjectionToken<boolean>;
303
+ interface IBuilderEventEmitter {
304
+ emit(type: string, data?: any): void;
305
+ }
306
+ declare const IOX_BUILDER_EVENTS: InjectionToken<IBuilderEventEmitter>;
307
+
308
+ declare class BuilderImageComponent {
309
+ src: string;
310
+ alt: string;
311
+ objectFit: 'cover' | 'contain' | 'fill' | 'none';
312
+ nodeId: string;
313
+ static ɵfac: i0.ɵɵFactoryDeclaration<BuilderImageComponent, never>;
314
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderImageComponent, "app-builder-image", never, { "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "objectFit": { "alias": "objectFit"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
315
+ }
316
+
317
+ declare class BuilderSpacerComponent {
318
+ nodeId: string;
319
+ static ɵfac: i0.ɵɵFactoryDeclaration<BuilderSpacerComponent, never>;
320
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderSpacerComponent, "app-builder-spacer", never, { "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
321
+ }
322
+
323
+ declare class CardComponent {
324
+ title: string;
325
+ image: string;
326
+ description: string;
327
+ nodeId: string;
328
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
329
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "app-card", never, { "title": { "alias": "title"; "required": false; }; "image": { "alias": "image"; "required": false; }; "description": { "alias": "description"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
330
+ }
331
+
332
+ declare class BuilderDividerComponent {
333
+ nodeId: string;
334
+ static ɵfac: i0.ɵɵFactoryDeclaration<BuilderDividerComponent, never>;
335
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderDividerComponent, "app-builder-divider", never, { "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
336
+ }
337
+
338
+ declare class BuilderIconComponent {
339
+ /** Full Phosphor icon CSS class string, e.g. "ph-thin ph-star" */
340
+ iconClass: string;
341
+ nodeId: string;
342
+ static ɵfac: i0.ɵɵFactoryDeclaration<BuilderIconComponent, never>;
343
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderIconComponent, "app-builder-icon", never, { "iconClass": { "alias": "iconClass"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
344
+ }
345
+
346
+ declare class BuilderLinkComponent {
347
+ isPreview: boolean;
348
+ label: string;
349
+ linkType: 'external' | 'page';
350
+ url: string;
351
+ pageRoute: string;
352
+ target: '_self' | '_blank' | '_parent' | '_top';
353
+ style: {
354
+ [key: string]: any;
355
+ };
356
+ constructor(isPreview: boolean);
357
+ get resolvedHref(): string;
358
+ onLinkClick(event: MouseEvent): void;
359
+ static ɵfac: i0.ɵɵFactoryDeclaration<BuilderLinkComponent, [{ optional: true; }]>;
360
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderLinkComponent, "app-builder-link", never, { "label": { "alias": "label"; "required": false; }; "linkType": { "alias": "linkType"; "required": false; }; "url": { "alias": "url"; "required": false; }; "pageRoute": { "alias": "pageRoute"; "required": false; }; "target": { "alias": "target"; "required": false; }; "style": { "alias": "style"; "required": false; }; }, {}, never, never, false, never>;
361
+ }
362
+
363
+ interface EditableNode$2 {
364
+ bindings?: Array<{
365
+ prop: string;
366
+ }>;
367
+ traits?: Array<{
368
+ name: string;
369
+ default: any;
370
+ }>;
371
+ }
372
+ declare class BuilderButtonComponent implements OnInit {
373
+ private events;
374
+ label: string;
375
+ link: string;
376
+ variant: 'primary' | 'outlined' | 'text';
377
+ nodeId: string;
378
+ node: EditableNode$2 | null;
379
+ editing: boolean;
380
+ constructor(events: IBuilderEventEmitter | null);
381
+ ngOnInit(): void;
382
+ startEdit(event: MouseEvent): void;
383
+ commitEdit(event: FocusEvent): void;
384
+ onKeyDown(event: KeyboardEvent): void;
385
+ private isBound;
386
+ private syncTraitToPanel;
387
+ static ɵfac: i0.ɵɵFactoryDeclaration<BuilderButtonComponent, [{ optional: true; }]>;
388
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderButtonComponent, "app-builder-button", never, { "label": { "alias": "label"; "required": false; }; "link": { "alias": "link"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
389
+ }
390
+
391
+ interface EditableNode$1 {
392
+ bindings?: Array<{
393
+ prop: string;
394
+ }>;
395
+ traits?: Array<{
396
+ name: string;
397
+ default: any;
398
+ }>;
399
+ }
400
+ declare class BuilderHeadingComponent implements OnInit {
401
+ private events;
402
+ private cdr;
403
+ content: string;
404
+ level: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
405
+ nodeId: string;
406
+ node: EditableNode$1 | null;
407
+ editing: boolean;
408
+ constructor(events: IBuilderEventEmitter | null, cdr: ChangeDetectorRef);
409
+ ngOnInit(): void;
410
+ onMouseDown(event: MouseEvent): void;
411
+ startEdit(event: MouseEvent): void;
412
+ commitEdit(event: FocusEvent): void;
413
+ onKeyDown(event: KeyboardEvent): void;
414
+ private isBound;
415
+ private syncTraitToPanel;
416
+ static ɵfac: i0.ɵɵFactoryDeclaration<BuilderHeadingComponent, [{ optional: true; }, null]>;
417
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderHeadingComponent, "app-builder-heading", never, { "content": { "alias": "content"; "required": false; }; "level": { "alias": "level"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
418
+ }
419
+
420
+ interface EditableNode {
421
+ bindings?: Array<{
422
+ prop: string;
423
+ }>;
424
+ traits?: Array<{
425
+ name: string;
426
+ default: any;
427
+ }>;
428
+ }
429
+ declare class TextBlockComponent implements OnInit {
430
+ private events;
431
+ private cdr;
432
+ content: string;
433
+ tag: 'p' | 'span';
434
+ style: {
435
+ [key: string]: any;
436
+ };
437
+ nodeId: string;
438
+ node: EditableNode | null;
439
+ editing: boolean;
440
+ constructor(events: IBuilderEventEmitter | null, cdr: ChangeDetectorRef);
441
+ ngOnInit(): void;
442
+ onMouseDown(event: MouseEvent): void;
443
+ startEdit(event: MouseEvent): void;
444
+ commitEdit(event: FocusEvent): void;
445
+ onKeyDown(event: KeyboardEvent): void;
446
+ private isBound;
447
+ private syncTraitToPanel;
448
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextBlockComponent, [{ optional: true; }, null]>;
449
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextBlockComponent, "app-text-block", never, { "content": { "alias": "content"; "required": false; }; "tag": { "alias": "tag"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
450
+ }
451
+
452
+ declare class SectionComponent {
453
+ nodeId: string;
454
+ childrenHost: ViewContainerRef;
455
+ static ɵfac: i0.ɵɵFactoryDeclaration<SectionComponent, never>;
456
+ static ɵcmp: i0.ɵɵComponentDeclaration<SectionComponent, "iox-section", never, { "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
457
+ }
458
+
459
+ declare class ContainerComponent {
460
+ nodeId: string;
461
+ childrenHost: ViewContainerRef;
462
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContainerComponent, never>;
463
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContainerComponent, "iox-container", never, { "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
464
+ }
465
+
466
+ declare class LinkedContainerComponent implements OnInit, OnDestroy {
467
+ private elRef;
468
+ private isPreview;
469
+ nodeId: string;
470
+ linkType: 'external' | 'page';
471
+ url: string;
472
+ pageRoute: string;
473
+ target: '_self' | '_blank' | '_parent' | '_top';
474
+ childrenHost: ViewContainerRef;
475
+ private capturePreventDefault;
476
+ constructor(elRef: ElementRef<HTMLElement>, isPreview: boolean);
477
+ ngOnInit(): void;
478
+ ngOnDestroy(): void;
479
+ get resolvedHref(): string;
480
+ static ɵfac: i0.ɵɵFactoryDeclaration<LinkedContainerComponent, [null, { optional: true; }]>;
481
+ static ɵcmp: i0.ɵɵComponentDeclaration<LinkedContainerComponent, "iox-linked-container", never, { "nodeId": { "alias": "nodeId"; "required": false; }; "linkType": { "alias": "linkType"; "required": false; }; "url": { "alias": "url"; "required": false; }; "pageRoute": { "alias": "pageRoute"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, {}, never, never, false, never>;
482
+ }
483
+
484
+ /**
485
+ * Client-engine repeater shell. Data fetching and item expansion are handled
486
+ * by DataSourceResolverService + BindingApplicatorService in the PageResolver
487
+ * before this component is rendered. ClientRenderDirective inserts one child
488
+ * per resolved item into childrenHost.
489
+ */
490
+ declare class ClientRepeaterComponent {
491
+ nodeId: string;
492
+ childrenHost: ViewContainerRef;
493
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClientRepeaterComponent, never>;
494
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClientRepeaterComponent, "iox-repeater", never, { "nodeId": { "alias": "nodeId"; "required": false; }; }, {}, never, never, false, never>;
495
+ }
496
+
497
+ declare class IoxBuilderComponentsModule {
498
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxBuilderComponentsModule, never>;
499
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IoxBuilderComponentsModule, [typeof BuilderImageComponent, typeof BuilderSpacerComponent, typeof CardComponent, typeof BuilderDividerComponent, typeof BuilderIconComponent, typeof BuilderLinkComponent, typeof BuilderButtonComponent, typeof BuilderHeadingComponent, typeof TextBlockComponent, typeof SectionComponent, typeof ContainerComponent, typeof LinkedContainerComponent, typeof ClientRepeaterComponent], [typeof i2.CommonModule], [typeof BuilderImageComponent, typeof BuilderSpacerComponent, typeof CardComponent, typeof BuilderDividerComponent, typeof BuilderIconComponent, typeof BuilderLinkComponent, typeof BuilderButtonComponent, typeof BuilderHeadingComponent, typeof TextBlockComponent, typeof SectionComponent, typeof ContainerComponent, typeof LinkedContainerComponent, typeof ClientRepeaterComponent]>;
500
+ static ɵinj: i0.ɵɵInjectorDeclaration<IoxBuilderComponentsModule>;
501
+ }
502
+
503
+ /**
504
+ * Single source of truth for the IOX component type → Angular class mapping.
505
+ * Used by the client engine (iox-client-engine) to resolve component classes
506
+ * from IoxLayoutNode.type strings at render time.
507
+ *
508
+ * All 13 builder components are registered here:
509
+ * - Leaf (Phase 2a): Image, Spacer, Card, Divider, Icon
510
+ * - Inline-editable (Phase 2b): Link, Button, Heading, Text
511
+ * - Layout shells (Phase 2c): Section, Container, LinkedContainer
512
+ * - Repeater (Phase 2d): ClientRepeaterComponent
513
+ *
514
+ * Section/Container/LinkedContainer/Repeater expose childrenHost: ViewContainerRef
515
+ * for ClientRenderDirective to insert child components into.
516
+ */
517
+ declare class IoxComponentRegistryService {
518
+ private readonly map;
519
+ getComponent(type: string): Type<any> | undefined;
520
+ hasComponent(type: string): boolean;
521
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxComponentRegistryService, never>;
522
+ static ɵprov: i0.ɵɵInjectableDeclaration<IoxComponentRegistryService>;
523
+ }
524
+
525
+ export { AOSService, AnalyticsService, BuilderButtonComponent, BuilderDividerComponent, BuilderHeadingComponent, BuilderIconComponent, BuilderImageComponent, BuilderLinkComponent, BuilderSpacerComponent, CMSClientInfraModule, CardComponent, ClientRepeaterComponent, ConsentService, ContainerComponent, ContentService, ENVIRONMENT, IOX_BUILDER_EVENTS, IS_PREVIEW, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxBuilderComponentsModule, IoxComponentRegistryService, IoxMasonryComponent, IoxMasonryItemDirective, IoxMasonryModule, IoxMasonryService, IoxPageComponent, IoxPageModule, IoxUiModule, LinkedContainerComponent, PageScrollProvider, PrivacyModalComponent, PrivacyModalService, PrivacyModelEvent, SectionComponent, TextBlockComponent, ViewPositionDirective, ViewPositionModule, WebSettingsService };
526
+ export type { IBuilderEventEmitter, IoxMasonryOptions, IoxScrollOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-ui",
3
- "version": "4.0.6",
3
+ "version": "4.0.7",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0",
6
6
  "@fristys/masonry": "^1.1.7",