@vectoriox/iox-ui 4.14.1 → 4.15.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-ui",
3
- "version": "4.14.1",
3
+ "version": "4.15.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -1021,6 +1021,56 @@ declare function computeRelative(spec: RelativeSourceSpec, inputs: RelativeInput
1021
1021
  */
1022
1022
  declare function resolveRelativeInto(dataSources: RelativeCapableSource[], resolved: Record<string, any>, routeParams?: Record<string, any>): Record<string, any>;
1023
1023
 
1024
+ /**
1025
+ * Binding pipes — render-time value transforms (UI label: "Filters").
1026
+ *
1027
+ * A binding resolves a raw value (`resolvePath(sourceData, path)`); a pipe chain then reshapes it for
1028
+ * display (format a timestamp, upper-case, truncate, …). This is the SINGLE shared implementation used
1029
+ * by BOTH the builder canvas and the SSR engine — the engine renders layout JSON to a STRING and can't
1030
+ * use Angular pipes, and `resolvePath` is already duplicated across the apply points, so the transform
1031
+ * MUST be one pure, transport-agnostic function applied identically everywhere. Never fork it.
1032
+ *
1033
+ * See iox-ai-guidance/architecture/builder/binding-filters-plan.md.
1034
+ */
1035
+ /** One transform in a binding's chain. `args` are positional, matching the pipe's descriptor order. */
1036
+ interface IoxPipe {
1037
+ name: string;
1038
+ args?: any[];
1039
+ }
1040
+ /** Runtime context threaded to every pipe — the locale keeps date/number output identical on the
1041
+ * builder canvas and the SSR engine (both pass the site's language). */
1042
+ interface PipeContext {
1043
+ locale?: string;
1044
+ }
1045
+ type PipeFn = (value: any, args: any[], ctx: PipeContext) => any;
1046
+ /** The registry — adding a pipe here (+ a descriptor below) makes it work on both sides and appear in
1047
+ * the authoring UI. Keyed by name; unknown names are passed through by `applyBindingPipes`. */
1048
+ declare const PIPE_REGISTRY: Record<string, PipeFn>;
1049
+ /**
1050
+ * Apply a binding's pipe chain to a resolved value, LEFT→RIGHT. Pure. An empty/undefined chain returns
1051
+ * the value untouched; an unknown pipe name is skipped (forward-compatible with newer authored pipes).
1052
+ * Call this at every binding-resolution point (builder canvas + engine SSR + engine hydration).
1053
+ */
1054
+ declare function applyBindingPipes(value: any, pipes?: IoxPipe[], ctx?: PipeContext): any;
1055
+ interface PipeArgSpec {
1056
+ /** Positional key (order defines the `args` index). */
1057
+ key: string;
1058
+ /** Default English label; consumers may map `name`/`key` to their own i18n keys. */
1059
+ label: string;
1060
+ control: 'select' | 'text' | 'number';
1061
+ options?: {
1062
+ label: string;
1063
+ value: any;
1064
+ }[];
1065
+ default?: any;
1066
+ }
1067
+ interface PipeDescriptor {
1068
+ name: string;
1069
+ label: string;
1070
+ args: PipeArgSpec[];
1071
+ }
1072
+ declare const PIPE_DESCRIPTORS: PipeDescriptor[];
1073
+
1024
1074
  /**
1025
1075
  * Cinematic page-transition presets — the SINGLE SOURCE OF TRUTH shared by the page builder
1026
1076
  * (preview) and the SSR client engine (production). Pure, transport-agnostic: this module only
@@ -1168,5 +1218,5 @@ declare function effectiveTransitionId(anim: {
1168
1218
  enter?: string | null;
1169
1219
  } | null | undefined): string;
1170
1220
 
1171
- export { AOSService, AnalyticsService, BuilderButtonComponent, BuilderDividerComponent, BuilderHeadingComponent, BuilderIconComponent, BuilderImageComponent, BuilderLinkComponent, BuilderSpacerComponent, ButtonBlockComponent, CMSClientInfraModule, CardComponent, ClientListComponent, ClientListItemComponent, ClientRepeaterComponent, ClientSliderContainerComponent, ClientSliderSlideComponent, ComponentInstanceRegistryService, ConsentService, ContainerComponent, ContentService, DEFAULT_PAGE_TRANSITION, DEFAULT_PAGE_TRANSITION_DURATION, DEFAULT_PAGE_TRANSITION_EASING, DEFAULT_PAGE_TRANSITION_PERSPECTIVE, DEFAULT_WIDTH_BY_TYPE, ENVIRONMENT, IOX_BUILDER_EVENTS, IS_PREVIEW, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxBuilderComponentsModule, IoxComponentRegistryService, IoxPageComponent, IoxPageModule, IoxUiModule, LinkedContainerComponent, PAGE_TRANSITION_CATEGORIES, PAGE_TRANSITION_PRESETS, PageScrollProvider, PrivacyModalComponent, PrivacyModalService, PrivacyModelEvent, RESERVED_ALIAS_PREFIX, SUPPRESSED_STYLE_PROPS_BY_TYPE, SectionComponent, TRANSITION_FEELS, TextBlockComponent, VIRTUAL_TRAIT_KEYS, ViewPositionDirective, ViewPositionModule, WebSettingsService, applyFeel, buildDataSourceFilter, buildRelatedFilter, buildTransitionTimeline, collectReferencedAliases, compileDeclarations, composeVirtualTraits, computeRelative, dataSourcePlanToRequest, effectiveTransitionId, excludeSelf, feelFor, getByPath, isReservedAlias, legacyEnterToTransition, matchRouteParams, normalizeCollectionResult, planDataSource, referencedDataSources, referencedDataSourcesDeep, renderDefaultDeclarations, resolveDerivedInto, resolvePageTransition, resolveRelativeInto, resolveRepeaterItems, resolveSiblings, resolveSingleItemId, rewriteViewportUnits, stripSuppressedProps, styleKeyToKebab };
1172
- export type { BuildRelatedFilterOptions, DataSourceDomain, DataSourceEndpoints, DataSourceMode, DataSourcePlan, DataSourceQueryFilter, DataSourceRequest, DataSourceRequestSpec, DataSourceRouteFilter, DataSourceSpec, IBuilderEventEmitter, PageTransitionCategory, PageTransitionCategoryMeta, PageTransitionOptions, PageTransitionPreset, RelativeInputs, RelativeSourceKind, RelativeSourceSpec, ResolveSiblingsOptions, ResolvedPageTransition, RouteContext, SiblingsResult, TransitionFeel, TransitionPhase, TransitionTimelineInput };
1221
+ export { AOSService, AnalyticsService, BuilderButtonComponent, BuilderDividerComponent, BuilderHeadingComponent, BuilderIconComponent, BuilderImageComponent, BuilderLinkComponent, BuilderSpacerComponent, ButtonBlockComponent, CMSClientInfraModule, CardComponent, ClientListComponent, ClientListItemComponent, ClientRepeaterComponent, ClientSliderContainerComponent, ClientSliderSlideComponent, ComponentInstanceRegistryService, ConsentService, ContainerComponent, ContentService, DEFAULT_PAGE_TRANSITION, DEFAULT_PAGE_TRANSITION_DURATION, DEFAULT_PAGE_TRANSITION_EASING, DEFAULT_PAGE_TRANSITION_PERSPECTIVE, DEFAULT_WIDTH_BY_TYPE, ENVIRONMENT, IOX_BUILDER_EVENTS, IS_PREVIEW, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxBuilderComponentsModule, IoxComponentRegistryService, IoxPageComponent, IoxPageModule, IoxUiModule, LinkedContainerComponent, PAGE_TRANSITION_CATEGORIES, PAGE_TRANSITION_PRESETS, PIPE_DESCRIPTORS, PIPE_REGISTRY, PageScrollProvider, PrivacyModalComponent, PrivacyModalService, PrivacyModelEvent, RESERVED_ALIAS_PREFIX, SUPPRESSED_STYLE_PROPS_BY_TYPE, SectionComponent, TRANSITION_FEELS, TextBlockComponent, VIRTUAL_TRAIT_KEYS, ViewPositionDirective, ViewPositionModule, WebSettingsService, applyBindingPipes, applyFeel, buildDataSourceFilter, buildRelatedFilter, buildTransitionTimeline, collectReferencedAliases, compileDeclarations, composeVirtualTraits, computeRelative, dataSourcePlanToRequest, effectiveTransitionId, excludeSelf, feelFor, getByPath, isReservedAlias, legacyEnterToTransition, matchRouteParams, normalizeCollectionResult, planDataSource, referencedDataSources, referencedDataSourcesDeep, renderDefaultDeclarations, resolveDerivedInto, resolvePageTransition, resolveRelativeInto, resolveRepeaterItems, resolveSiblings, resolveSingleItemId, rewriteViewportUnits, stripSuppressedProps, styleKeyToKebab };
1222
+ export type { BuildRelatedFilterOptions, DataSourceDomain, DataSourceEndpoints, DataSourceMode, DataSourcePlan, DataSourceQueryFilter, DataSourceRequest, DataSourceRequestSpec, DataSourceRouteFilter, DataSourceSpec, IBuilderEventEmitter, IoxPipe, PageTransitionCategory, PageTransitionCategoryMeta, PageTransitionOptions, PageTransitionPreset, PipeArgSpec, PipeContext, PipeDescriptor, RelativeInputs, RelativeSourceKind, RelativeSourceSpec, ResolveSiblingsOptions, ResolvedPageTransition, RouteContext, SiblingsResult, TransitionFeel, TransitionPhase, TransitionTimelineInput };