codexly-ui 0.22.0 → 0.22.1
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/fesm2022/codexly-ui.mjs +60 -9
- package/fesm2022/codexly-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/codexly-ui.d.ts +17 -4
package/package.json
CHANGED
package/types/codexly-ui.d.ts
CHANGED
|
@@ -1184,6 +1184,8 @@ declare class ClxSelectComponent implements ControlValueAccessor {
|
|
|
1184
1184
|
readonly hint: _angular_core.InputSignal<string>;
|
|
1185
1185
|
readonly errorMessage: _angular_core.InputSignal<string>;
|
|
1186
1186
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
1187
|
+
/** Multiple mode: "Seleccionar todos" / "Quitar todos" on top of the options. */
|
|
1188
|
+
readonly selectAll: _angular_core.InputSignal<boolean>;
|
|
1187
1189
|
readonly async: _angular_core.InputSignal<boolean>;
|
|
1188
1190
|
readonly loadOptions: _angular_core.InputSignal<((query: string) => Observable<ClxSelectOption[]>) | null>;
|
|
1189
1191
|
readonly debounceMs: _angular_core.InputSignal<number>;
|
|
@@ -1249,6 +1251,10 @@ declare class ClxSelectComponent implements ControlValueAccessor {
|
|
|
1249
1251
|
private _loadPreviewFont;
|
|
1250
1252
|
protected _closePanel(): void;
|
|
1251
1253
|
protected _selectOption(opt: ClxSelectOption): void;
|
|
1254
|
+
protected readonly _selectableFiltered: Signal<ClxSelectOption[]>;
|
|
1255
|
+
protected readonly _allFilteredSelected: Signal<boolean>;
|
|
1256
|
+
/** Selects every option the search shows, or removes them all when they already are. */
|
|
1257
|
+
protected _toggleAll(): void;
|
|
1252
1258
|
protected _deselect(value: string | number): void;
|
|
1253
1259
|
protected _clearAll(): void;
|
|
1254
1260
|
protected _onTriggerKeydown(event: KeyboardEvent): void;
|
|
@@ -1259,7 +1265,7 @@ declare class ClxSelectComponent implements ControlValueAccessor {
|
|
|
1259
1265
|
registerOnTouched(fn: () => void): void;
|
|
1260
1266
|
setDisabledState(disabled: boolean): void;
|
|
1261
1267
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxSelectComponent, never>;
|
|
1262
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxSelectComponent, "clx-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "activeColor": { "alias": "activeColor"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "async": { "alias": "async"; "required": false; "isSignal": true; }; "loadOptions": { "alias": "loadOptions"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1268
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxSelectComponent, "clx-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "activeColor": { "alias": "activeColor"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectAll": { "alias": "selectAll"; "required": false; "isSignal": true; }; "async": { "alias": "async"; "required": false; "isSignal": true; }; "loadOptions": { "alias": "loadOptions"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1263
1269
|
}
|
|
1264
1270
|
|
|
1265
1271
|
type ClxCheckboxVariant = 'solid' | 'outline';
|
|
@@ -3832,6 +3838,8 @@ interface ClxProduct {
|
|
|
3832
3838
|
tags: string[];
|
|
3833
3839
|
main_image?: string;
|
|
3834
3840
|
in_stock: boolean;
|
|
3841
|
+
/** Units left — for the "Últimas unidades" tag (ClxProductTagService). */
|
|
3842
|
+
stock_quantity?: number;
|
|
3835
3843
|
/** Cuántas variantes/combinaciones distintas representa esta card (ej. un catálogo agrupado por
|
|
3836
3844
|
* Color donde la card "Azul" cubre varias Tallas). > 1 hace que el botón de acción muestre "Ver
|
|
3837
3845
|
* opciones" en vez de agregar directo al carrito, ya que la card no identifica una combinación
|
|
@@ -3844,8 +3852,9 @@ type ClxProductTag = 'new' | 'sale' | 'out-of-stock' | 'featured' | 'limited' |
|
|
|
3844
3852
|
/** Corner of the product image where a tag sits; tags sharing a corner stack. */
|
|
3845
3853
|
type ClxTagPosition = 'TOP_LEFT' | 'TOP_RIGHT' | 'BOTTOM_LEFT' | 'BOTTOM_RIGHT';
|
|
3846
3854
|
/** MANUAL = assigned per product (its code comes in ClxProduct.tags); the others are computed:
|
|
3847
|
-
* STOCK ('{n} en stock', product detail),
|
|
3848
|
-
|
|
3855
|
+
* STOCK ('{n} en stock', product detail), LOW_STOCK ('{n}' units left, up to stockThreshold),
|
|
3856
|
+
* OUT_OF_STOCK and DISCOUNT ('{n}' = percentage). */
|
|
3857
|
+
type ClxTagKind = 'MANUAL' | 'STOCK' | 'LOW_STOCK' | 'OUT_OF_STOCK' | 'DISCOUNT';
|
|
3849
3858
|
/** One configured tag, as the host app's backend stores it (Catálogo → Etiquetas). */
|
|
3850
3859
|
interface ClxTagStyle {
|
|
3851
3860
|
code: string;
|
|
@@ -3857,6 +3866,8 @@ interface ClxTagStyle {
|
|
|
3857
3866
|
shape: 'pill' | 'rounded';
|
|
3858
3867
|
position: ClxTagPosition;
|
|
3859
3868
|
sortOrder?: number;
|
|
3869
|
+
/** LOW_STOCK: shown while the units left are 1..stockThreshold. */
|
|
3870
|
+
stockThreshold?: number | null;
|
|
3860
3871
|
}
|
|
3861
3872
|
/** A tag ready to render — label with '{n}' already replaced. */
|
|
3862
3873
|
interface ClxTagBadge {
|
|
@@ -3874,8 +3885,10 @@ interface ClxTagContext {
|
|
|
3874
3885
|
/** Codes of its manual tags (ClxProduct.tags); computed ones mixed in ('out-of-stock') are ignored. */
|
|
3875
3886
|
tags: readonly string[];
|
|
3876
3887
|
inStock: boolean;
|
|
3877
|
-
/** Units, for the
|
|
3888
|
+
/** Units left, for the LOW_STOCK tag (and STOCK with showStockCount). */
|
|
3878
3889
|
stockQuantity?: number | null;
|
|
3890
|
+
/** Show the STOCK tag ('{n} en stock') — the product detail, not the cards. */
|
|
3891
|
+
showStockCount?: boolean;
|
|
3879
3892
|
/** Discount percentage, for the DISCOUNT tag (0 / undefined = no discount). */
|
|
3880
3893
|
discountPercent?: number | null;
|
|
3881
3894
|
}
|