@praxisui/core 8.0.0-beta.84 → 8.0.0-beta.85

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.
@@ -499,6 +499,7 @@ const FieldControlType = {
499
499
  INLINE_ENTITY_LOOKUP: 'inlineEntityLookup',
500
500
  INLINE_AUTOCOMPLETE: 'inlineAutocomplete',
501
501
  INLINE_INPUT: 'inlineInput',
502
+ INLINE_PHONE: 'inlinePhone',
502
503
  INLINE_NUMBER: 'inlineNumber',
503
504
  INLINE_CURRENCY: 'inlineCurrency',
504
505
  INLINE_CURRENCY_RANGE: 'inlineCurrencyRange',
@@ -592,6 +593,7 @@ const INLINE_FILTER_CONTROL_TYPES = Object.freeze({
592
593
  CURRENCY_RANGE: FieldControlType.INLINE_CURRENCY_RANGE,
593
594
  MULTI_SELECT: FieldControlType.INLINE_MULTISELECT,
594
595
  INPUT: FieldControlType.INLINE_INPUT,
596
+ PHONE: FieldControlType.INLINE_PHONE,
595
597
  TOGGLE: FieldControlType.INLINE_TOGGLE,
596
598
  RANGE: FieldControlType.INLINE_RANGE,
597
599
  PERIOD_RANGE: FieldControlType.INLINE_PERIOD_RANGE,
@@ -629,6 +631,7 @@ const INLINE_FILTER_CANONICAL_TOKEN_TO_CONTROL_TYPE_MAP = {
629
631
  inlinecurrencyrange: INLINE_FILTER_CONTROL_TYPES.CURRENCY_RANGE,
630
632
  inlinemultiselect: INLINE_FILTER_CONTROL_TYPES.MULTI_SELECT,
631
633
  inlineinput: INLINE_FILTER_CONTROL_TYPES.INPUT,
634
+ inlinephone: INLINE_FILTER_CONTROL_TYPES.PHONE,
632
635
  inlinetoggle: INLINE_FILTER_CONTROL_TYPES.TOGGLE,
633
636
  inlinerange: INLINE_FILTER_CONTROL_TYPES.RANGE,
634
637
  inlineperiodrange: INLINE_FILTER_CONTROL_TYPES.PERIOD_RANGE,
@@ -668,6 +671,7 @@ const INLINE_FILTER_CANONICAL_TOKEN_TO_BASE_CONTROL_TYPE_MAP = {
668
671
  inlinecurrencyrange: FieldControlType.PRICE_RANGE,
669
672
  inlinemultiselect: FieldControlType.MULTI_SELECT,
670
673
  inlineinput: FieldControlType.INPUT,
674
+ inlinephone: FieldControlType.PHONE,
671
675
  inlinetoggle: FieldControlType.TOGGLE,
672
676
  inlinerange: FieldControlType.RANGE_SLIDER,
673
677
  inlineperiodrange: FieldControlType.RANGE_SLIDER,
@@ -12077,6 +12081,17 @@ class SurfaceOpenMaterializerService {
12077
12081
  ? this.extractCollectionData(data)
12078
12082
  : null;
12079
12083
  if (collectionData) {
12084
+ if (this.shouldPreserveCollectionPresentation(payload)) {
12085
+ return {
12086
+ ...payload,
12087
+ context: this.mergeMaterializationContext(payload, {
12088
+ readUrl,
12089
+ dataShape: 'array',
12090
+ recordCount: collectionData.length,
12091
+ presentation: 'host-declared',
12092
+ }),
12093
+ };
12094
+ }
12080
12095
  const schemaFields = await this.resolveSchemaFields(payload, discoveryOptions);
12081
12096
  return this.materializeArrayAsTable(payload, collectionData, schemaFields, resourceId, readUrl);
12082
12097
  }
@@ -12134,6 +12149,21 @@ class SurfaceOpenMaterializerService {
12134
12149
  || cardinality === 'COLLECTION'
12135
12150
  || cardinality === 'PAGE';
12136
12151
  }
12152
+ shouldPreserveCollectionPresentation(payload) {
12153
+ const widget = payload.widget;
12154
+ const widgetId = String(widget?.id || '').trim();
12155
+ if (!widgetId || widgetId === 'praxis-dynamic-form') {
12156
+ return false;
12157
+ }
12158
+ if (widgetId !== 'praxis-table') {
12159
+ return true;
12160
+ }
12161
+ const inputs = widget.inputs || {};
12162
+ return Boolean(inputs['resourcePath']
12163
+ || inputs['queryContext']
12164
+ || inputs['config']
12165
+ || inputs['data']);
12166
+ }
12137
12167
  resolveResourceId(payload, context) {
12138
12168
  const resource = payload.context?.['resource'];
12139
12169
  const direct = resource?.['resourceId'];
@@ -18726,6 +18756,7 @@ const DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP = {
18726
18756
  'pdx-material-slide-toggle': FieldControlType.TOGGLE,
18727
18757
  'pdx-material-async-select': FieldControlType.ASYNC_SELECT,
18728
18758
  'pdx-inline-entity-lookup': FieldControlType.ENTITY_LOOKUP,
18759
+ 'pdx-inline-phone': FieldControlType.INLINE_PHONE,
18729
18760
  'pdx-material-entity-lookup': FieldControlType.ENTITY_LOOKUP,
18730
18761
  'pdx-material-radio-group': FieldControlType.RADIO,
18731
18762
  'pdx-material-checkbox-group': FieldControlType.CHECKBOX,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/core",
3
- "version": "8.0.0-beta.84",
3
+ "version": "8.0.0-beta.85",
4
4
  "description": "Core library for Praxis UI Workspace: types, tokens, services and utilities shared across @praxisui/* packages.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -3416,6 +3416,7 @@ declare const FieldControlType: {
3416
3416
  readonly INLINE_ENTITY_LOOKUP: "inlineEntityLookup";
3417
3417
  readonly INLINE_AUTOCOMPLETE: "inlineAutocomplete";
3418
3418
  readonly INLINE_INPUT: "inlineInput";
3419
+ readonly INLINE_PHONE: "inlinePhone";
3419
3420
  readonly INLINE_NUMBER: "inlineNumber";
3420
3421
  readonly INLINE_CURRENCY: "inlineCurrency";
3421
3422
  readonly INLINE_CURRENCY_RANGE: "inlineCurrencyRange";
@@ -6542,6 +6543,10 @@ interface MaterialDatepickerMetadata extends FieldMetadata {
6542
6543
  controlType: typeof FieldControlType.DATE_PICKER;
6543
6544
  /** Date format for display */
6544
6545
  dateFormat?: string;
6546
+ /** Locale for parsing and formatting date values. */
6547
+ locale?: string;
6548
+ /** Display format hint, such as dd/MM/yyyy for day-first dates. */
6549
+ displayFormat?: string;
6545
6550
  /** Allows manual typing in the input. Set false to force calendar selection. */
6546
6551
  manualInput?: boolean;
6547
6552
  /** Minimum selectable date */
@@ -8980,6 +8985,7 @@ declare class SurfaceOpenMaterializerService {
8980
8985
  private shouldMaterializeItemReadProjection;
8981
8986
  private resolveResponseCardinality;
8982
8987
  private shouldMaterializeAsCollection;
8988
+ private shouldPreserveCollectionPresentation;
8983
8989
  private resolveResourceId;
8984
8990
  private resolveItemReadUrl;
8985
8991
  private resolveSchemaFields;
@@ -11950,6 +11956,12 @@ interface LoadingState {
11950
11956
  componentType?: string;
11951
11957
  componentId?: string;
11952
11958
  resourcePath?: string;
11959
+ totalItems?: number;
11960
+ loadedItemsCount?: number;
11961
+ page?: {
11962
+ index?: number;
11963
+ size?: number;
11964
+ };
11953
11965
  };
11954
11966
  timestamp?: string;
11955
11967
  }
@@ -12227,6 +12239,7 @@ declare const INLINE_FILTER_CONTROL_TYPES: Readonly<{
12227
12239
  readonly CURRENCY_RANGE: "inlineCurrencyRange";
12228
12240
  readonly MULTI_SELECT: "inlineMultiSelect";
12229
12241
  readonly INPUT: "inlineInput";
12242
+ readonly PHONE: "inlinePhone";
12230
12243
  readonly TOGGLE: "inlineToggle";
12231
12244
  readonly RANGE: "inlineRange";
12232
12245
  readonly PERIOD_RANGE: "inlinePeriodRange";