commons-shared-web-ui 0.0.54 → 0.0.56

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 { OnChanges, EventEmitter, SimpleChanges, ChangeDetectorRef, OnInit, OnDestroy, ElementRef, QueryList, PipeTransform, NgZone, AfterViewInit } from '@angular/core';
2
+ import { OnChanges, EventEmitter, SimpleChanges, ChangeDetectorRef, OnInit, OnDestroy, ElementRef, QueryList, PipeTransform, AfterViewInit, NgZone } from '@angular/core';
3
3
  import * as i2 from '@angular/material/snack-bar';
4
4
  import { MatSnackBar, MatSnackBarRef } from '@angular/material/snack-bar';
5
5
  import * as i2$1 from '@angular/common';
@@ -325,6 +325,7 @@ interface FieldConfig {
325
325
  locationConfig?: LocationConfig;
326
326
  ratingConfig?: RatingConfig;
327
327
  richTextConfig?: RichTextConfig;
328
+ linkListConfig?: LinkListConfig;
328
329
  children?: FieldConfig[];
329
330
  }
330
331
  interface TextConfig {
@@ -375,6 +376,28 @@ interface TimeConfig {
375
376
  * value (earlier than the new minimum) is cleared. Mirrors DateConfig.minDateField.
376
377
  */
377
378
  minTimeField?: string;
379
+ /**
380
+ * Rendering variant.
381
+ * 'default' -> keeps the existing native <input type="time"> (no UI change).
382
+ * 'wheel' -> activates the drum-roll wheel picker (lib-time-picker).
383
+ * Default: 'default' — existing behaviour preserved unless explicitly set to 'wheel'.
384
+ */
385
+ variant?: 'default' | 'wheel';
386
+ /**
387
+ * Hour display mode for the wheel variant only.
388
+ * '12' -> 01–12 columns + AM/PM column, outputs "hh:mm AM/PM".
389
+ * '24' -> 00–23 columns, outputs "HH:mm".
390
+ * Default: '12'.
391
+ */
392
+ mode?: '12' | '24';
393
+ /**
394
+ * Minute increment step for the wheel variant.
395
+ * Accepted values: 1, 5, 10, 15, 30.
396
+ * Default: 1.
397
+ */
398
+ minuteStep?: number;
399
+ /** Placeholder text override for the wheel picker trigger field. */
400
+ placeholder?: string;
378
401
  }
379
402
  /**
380
403
  * Configuration for enabling search functionality inside DROPDOWN fields.
@@ -742,6 +765,21 @@ interface MediaItem {
742
765
  /** True while the file is being uploaded */
743
766
  isUploading?: boolean;
744
767
  }
768
+ interface LinkListConfig {
769
+ listPosition?: 'top' | 'bottom';
770
+ editable?: boolean;
771
+ deleteable?: boolean;
772
+ deletable?: boolean;
773
+ valueFormat?: 'string' | 'array' | 'object';
774
+ separator?: string;
775
+ urlKey?: string;
776
+ idField?: string;
777
+ deleteApiUrl?: string;
778
+ editApiUrl?: string;
779
+ pattern?: string;
780
+ patternMessage?: string;
781
+ colSpan?: number;
782
+ }
745
783
 
746
784
  /**
747
785
  * Wraps a FieldConfig leaf with selection metadata for the UI tree.
@@ -1300,6 +1338,53 @@ interface ConfirmationModalConfig {
1300
1338
  };
1301
1339
  }
1302
1340
 
1341
+ type TimeMode = '12' | '24';
1342
+ type TimePickerVariant = 'default' | 'wheel';
1343
+ interface TimePickerLabels {
1344
+ label?: string;
1345
+ placeholder?: string;
1346
+ hourLabel?: string;
1347
+ minuteLabel?: string;
1348
+ periodLabel?: string;
1349
+ amLabel?: string;
1350
+ pmLabel?: string;
1351
+ confirmLabel?: string;
1352
+ cancelLabel?: string;
1353
+ selectTimeTitle?: string;
1354
+ requiredMarker?: string;
1355
+ clearLabel?: string;
1356
+ }
1357
+ interface TimePickerConfig {
1358
+ label?: string;
1359
+ placeholder?: string;
1360
+ variant?: TimePickerVariant;
1361
+ mode?: TimeMode;
1362
+ minuteStep?: number;
1363
+ disabled?: boolean;
1364
+ required?: boolean;
1365
+ errorMessage?: string;
1366
+ width?: string;
1367
+ height?: string;
1368
+ borderRadius?: string;
1369
+ fontSize?: string;
1370
+ gap?: string;
1371
+ fontFamily?: string;
1372
+ labelColor?: string;
1373
+ labelFontSize?: string;
1374
+ labelFontWeight?: string;
1375
+ backgroundColor?: string;
1376
+ borderColor?: string;
1377
+ borderWidth?: string;
1378
+ padding?: string;
1379
+ fontWeight?: string;
1380
+ color?: string;
1381
+ placeholderColor?: string;
1382
+ focusBorderColor?: string;
1383
+ errorColor?: string;
1384
+ disabledBackgroundColor?: string;
1385
+ disabledColor?: string;
1386
+ }
1387
+
1303
1388
  declare class FormFieldComponent implements OnInit, OnDestroy {
1304
1389
  private fb;
1305
1390
  private expressionService;
@@ -1429,6 +1514,10 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
1429
1514
  private _nextInstanceId;
1430
1515
  /** Tracks open accordion panels for standard (non-multiSave) GROUP repeaters. */
1431
1516
  expandedGroupInstances: Set<number>;
1517
+ newLinkInputValue: string;
1518
+ editingLinkIndex: number | null;
1519
+ editingLinkValue: string;
1520
+ linkValidationError: string;
1432
1521
  /**
1433
1522
  * Key used to register the GROUP control on the parent formGroup.
1434
1523
  * Priority: sectionConfig.name > field.name > camelCase(label) > '__group__'
@@ -1601,6 +1690,8 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
1601
1690
  get isNumberField(): boolean;
1602
1691
  get isDateField(): boolean;
1603
1692
  get isTimeField(): boolean;
1693
+ get isWheelVariant(): boolean;
1694
+ get timePickerLabels(): TimePickerLabels;
1604
1695
  get isDropdown(): boolean;
1605
1696
  get isAutocomplete(): boolean;
1606
1697
  get isFileUpload(): boolean;
@@ -1615,6 +1706,7 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
1615
1706
  get isRow(): boolean;
1616
1707
  get isGroup(): boolean;
1617
1708
  get isLocation(): boolean;
1709
+ get isLinkList(): boolean;
1618
1710
  /**
1619
1711
  * Initialise the separate display-control that drives the mat-autocomplete
1620
1712
  * text input. The real form control always stores the *code* value.
@@ -1700,6 +1792,14 @@ declare class FormFieldComponent implements OnInit, OnDestroy {
1700
1792
  hideLocationSuggestions(): void;
1701
1793
  getLocationMapEmbedUrl(): string;
1702
1794
  private _renderMap;
1795
+ get linkListConfig(): LinkListConfig | undefined;
1796
+ get linkListItems(): any[];
1797
+ getLinkDisplayUrl(item: any): string;
1798
+ addLinkItem(event?: Event): void;
1799
+ deleteLinkItem(index: number): void;
1800
+ startEditLink(index: number): void;
1801
+ cancelEditLink(): void;
1802
+ saveEditLink(index: number): void;
1703
1803
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
1704
1804
  static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lib-form-field", never, { "config": { "alias": "config"; "required": false; }; "controller": { "alias": "controller"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "allowMulti": { "alias": "allowMulti"; "required": false; }; "siblingFormArray": { "alias": "siblingFormArray"; "required": false; }; "siblingIndex": { "alias": "siblingIndex"; "required": false; }; }, {}, never, never, false, never>;
1705
1805
  }
@@ -2033,10 +2133,135 @@ declare class AlertModule {
2033
2133
  static ɵinj: i0.ɵɵInjectorDeclaration<AlertModule>;
2034
2134
  }
2035
2135
 
2036
- declare class SmartFormModule {
2037
- static ɵfac: i0.ɵɵFactoryDeclaration<SmartFormModule, never>;
2038
- static ɵmod: i0.ɵɵNgModuleDeclaration<SmartFormModule, [typeof SmartFormComponent, typeof FormSectionComponent, typeof FormFieldComponent, typeof TrustedUrlPipe], [typeof i2$1.CommonModule, typeof i3$1.ReactiveFormsModule, typeof i3$1.FormsModule, typeof MaterialModule, typeof ButtonModule, typeof AlertModule, typeof i10$1.QuillModule], [typeof SmartFormComponent]>;
2039
- static ɵinj: i0.ɵɵInjectorDeclaration<SmartFormModule>;
2136
+ declare class TimePickerComponent implements ControlValueAccessor, OnInit, OnChanges {
2137
+ config?: TimePickerConfig;
2138
+ labels?: TimePickerLabels;
2139
+ label: string;
2140
+ placeholder: string;
2141
+ variant: TimePickerVariant;
2142
+ mode: TimeMode;
2143
+ minuteStep: number;
2144
+ disabled: boolean;
2145
+ required: boolean;
2146
+ errorMessage: string;
2147
+ minTime?: string;
2148
+ maxTime?: string;
2149
+ width?: string;
2150
+ height?: string;
2151
+ borderRadius?: string;
2152
+ fontSize?: string;
2153
+ gap?: string;
2154
+ fontFamily?: string;
2155
+ labelColor?: string;
2156
+ labelFontSize?: string;
2157
+ labelFontWeight?: string;
2158
+ backgroundColor?: string;
2159
+ borderColor?: string;
2160
+ borderWidth?: string;
2161
+ padding?: string;
2162
+ fontWeight?: string;
2163
+ color?: string;
2164
+ placeholderColor?: string;
2165
+ focusBorderColor?: string;
2166
+ errorColor?: string;
2167
+ disabledBackgroundColor?: string;
2168
+ disabledColor?: string;
2169
+ timeChange: EventEmitter<string>;
2170
+ displayValue: string;
2171
+ isOpen: boolean;
2172
+ onChange: (value: string) => void;
2173
+ onTouched: () => void;
2174
+ ngOnInit(): void;
2175
+ ngOnChanges(changes: SimpleChanges): void;
2176
+ private updateFromConfig;
2177
+ writeValue(value: string): void;
2178
+ registerOnChange(fn: any): void;
2179
+ registerOnTouched(fn: any): void;
2180
+ setDisabledState(isDisabled: boolean): void;
2181
+ togglePanel(): void;
2182
+ closePanel(): void;
2183
+ onConfirmed(timeString: string): void;
2184
+ onCancelled(): void;
2185
+ get wrapperStyles(): {
2186
+ [key: string]: string | undefined;
2187
+ };
2188
+ get labelStyles(): {
2189
+ [key: string]: string | undefined;
2190
+ };
2191
+ get fieldStyles(): {
2192
+ [key: string]: string | undefined;
2193
+ };
2194
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerComponent, never>;
2195
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerComponent, "lib-time-picker", never, { "config": { "alias": "config"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "minuteStep": { "alias": "minuteStep"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "fontSize": { "alias": "fontSize"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "fontFamily": { "alias": "fontFamily"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "labelFontSize": { "alias": "labelFontSize"; "required": false; }; "labelFontWeight": { "alias": "labelFontWeight"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "borderColor": { "alias": "borderColor"; "required": false; }; "borderWidth": { "alias": "borderWidth"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "fontWeight": { "alias": "fontWeight"; "required": false; }; "color": { "alias": "color"; "required": false; }; "placeholderColor": { "alias": "placeholderColor"; "required": false; }; "focusBorderColor": { "alias": "focusBorderColor"; "required": false; }; "errorColor": { "alias": "errorColor"; "required": false; }; "disabledBackgroundColor": { "alias": "disabledBackgroundColor"; "required": false; }; "disabledColor": { "alias": "disabledColor"; "required": false; }; }, { "timeChange": "timeChange"; }, never, never, false, never>;
2196
+ }
2197
+
2198
+ type WheelType = 'hour' | 'minute' | 'period';
2199
+ declare class TimeWheelPanelComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {
2200
+ private zone;
2201
+ mode: TimeMode;
2202
+ value: string;
2203
+ labels?: TimePickerLabels;
2204
+ minuteStep: number;
2205
+ minTime?: string;
2206
+ maxTime?: string;
2207
+ confirmed: EventEmitter<string>;
2208
+ cancelled: EventEmitter<void>;
2209
+ hourWheel: ElementRef<HTMLDivElement>;
2210
+ minuteWheel: ElementRef<HTMLDivElement>;
2211
+ periodWheel?: ElementRef<HTMLDivElement>;
2212
+ static readonly ITEM_HEIGHT = 36;
2213
+ static readonly VISIBLE_ROWS = 3;
2214
+ readonly ITEM_HEIGHT = 36;
2215
+ readonly SPACERS: number;
2216
+ readonly spacerRows: number[];
2217
+ private get containerHeight();
2218
+ hours: string[];
2219
+ minutes: string[];
2220
+ periods: string[];
2221
+ hourRepeats: number[];
2222
+ minuteRepeats: number[];
2223
+ selectedHour: string;
2224
+ selectedMinute: string;
2225
+ selectedPeriod: string;
2226
+ disabledHours: Set<string>;
2227
+ disabledMinutes: Set<string>;
2228
+ disabledPeriods: Set<string>;
2229
+ private isInitialScrollDone;
2230
+ private scrollListeners;
2231
+ private idleTimers;
2232
+ private rafIds;
2233
+ private static readonly IDLE_MS;
2234
+ constructor(zone: NgZone);
2235
+ ngOnInit(): void;
2236
+ ngOnChanges(changes: SimpleChanges): void;
2237
+ ngAfterViewInit(): void;
2238
+ ngOnDestroy(): void;
2239
+ private attachScroll;
2240
+ private generateHours;
2241
+ private generateMinutes;
2242
+ private buildRepeats;
2243
+ private centralBandStart;
2244
+ private parseInitialValue;
2245
+ private findClosestMinute;
2246
+ private setDefaultTime;
2247
+ private toMinutes;
2248
+ private parseLimit;
2249
+ private to24hrHour;
2250
+ computeConstraints(): void;
2251
+ updateWheelEffects(element: HTMLElement): void;
2252
+ private listFor;
2253
+ private repeatsFor;
2254
+ private isDisabled;
2255
+ private onScrollIdle;
2256
+ private nearestEnabled;
2257
+ private adjustSelectionOnConstraintChange;
2258
+ selectValue(type: WheelType, val: string): void;
2259
+ scrollToValue(type: WheelType, val: string, smooth: boolean): void;
2260
+ onCancel(): void;
2261
+ onConfirm(): void;
2262
+ getFormattedTime(): string;
2263
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimeWheelPanelComponent, never>;
2264
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimeWheelPanelComponent, "lib-time-wheel-panel", never, { "mode": { "alias": "mode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "minuteStep": { "alias": "minuteStep"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; }, { "confirmed": "confirmed"; "cancelled": "cancelled"; }, never, never, false, never>;
2040
2265
  }
2041
2266
 
2042
2267
  type InputType = 'text' | 'number' | 'email' | 'password' | 'tel' | 'url' | 'textarea';
@@ -2810,10 +3035,22 @@ declare class ClickOutsideDirective {
2810
3035
 
2811
3036
  declare class FormComponentsModule {
2812
3037
  static ɵfac: i0.ɵɵFactoryDeclaration<FormComponentsModule, never>;
2813
- static ɵmod: i0.ɵɵNgModuleDeclaration<FormComponentsModule, [typeof InputComponent, typeof DropdownComponent, typeof CheckboxComponent, typeof RadioComponent, typeof ToggleComponent, typeof DatepickerComponent, typeof SearchComponent, typeof ClickOutsideDirective], [typeof i2$1.CommonModule, typeof i3$1.ReactiveFormsModule, typeof i3$1.FormsModule, typeof i11$1.ScrollingModule], [typeof InputComponent, typeof DropdownComponent, typeof CheckboxComponent, typeof RadioComponent, typeof ToggleComponent, typeof DatepickerComponent, typeof SearchComponent]>;
3038
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FormComponentsModule, [typeof InputComponent, typeof DropdownComponent, typeof CheckboxComponent, typeof RadioComponent, typeof ToggleComponent, typeof DatepickerComponent, typeof SearchComponent, typeof ClickOutsideDirective], [typeof i2$1.CommonModule, typeof i3$1.ReactiveFormsModule, typeof i3$1.FormsModule, typeof i11$1.ScrollingModule], [typeof InputComponent, typeof DropdownComponent, typeof CheckboxComponent, typeof RadioComponent, typeof ToggleComponent, typeof DatepickerComponent, typeof SearchComponent, typeof ClickOutsideDirective]>;
2814
3039
  static ɵinj: i0.ɵɵInjectorDeclaration<FormComponentsModule>;
2815
3040
  }
2816
3041
 
3042
+ declare class TimePickerModule {
3043
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerModule, never>;
3044
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TimePickerModule, [typeof TimePickerComponent, typeof TimeWheelPanelComponent], [typeof i2$1.CommonModule, typeof i3$1.FormsModule, typeof FormComponentsModule], [typeof TimePickerComponent, typeof TimeWheelPanelComponent]>;
3045
+ static ɵinj: i0.ɵɵInjectorDeclaration<TimePickerModule>;
3046
+ }
3047
+
3048
+ declare class SmartFormModule {
3049
+ static ɵfac: i0.ɵɵFactoryDeclaration<SmartFormModule, never>;
3050
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SmartFormModule, [typeof SmartFormComponent, typeof FormSectionComponent, typeof FormFieldComponent, typeof TrustedUrlPipe], [typeof i2$1.CommonModule, typeof i3$1.ReactiveFormsModule, typeof i3$1.FormsModule, typeof MaterialModule, typeof ButtonModule, typeof AlertModule, typeof i10$1.QuillModule, typeof TimePickerModule], [typeof SmartFormComponent]>;
3051
+ static ɵinj: i0.ɵɵInjectorDeclaration<SmartFormModule>;
3052
+ }
3053
+
2817
3054
  declare class FormBuilderModule {
2818
3055
  static ɵfac: i0.ɵɵFactoryDeclaration<FormBuilderModule, never>;
2819
3056
  static ɵmod: i0.ɵɵNgModuleDeclaration<FormBuilderModule, [typeof FieldSelectionComponent, typeof FieldConfiguratorComponent, typeof GroupNodeComponent, typeof SelectionSectionNodeComponent, typeof SelectionFieldNodeComponent, typeof ConfiguratorTreeComponent, typeof ConfiguratorConfigPanelComponent], [typeof i2$1.CommonModule, typeof SmartFormModule, typeof FormComponentsModule], [typeof FieldSelectionComponent, typeof FieldConfiguratorComponent]>;
@@ -4477,7 +4714,7 @@ declare class FilterTableSelectorModule {
4477
4714
 
4478
4715
  declare class SharedUiModule {
4479
4716
  static ɵfac: i0.ɵɵFactoryDeclaration<SharedUiModule, never>;
4480
- static ɵmod: i0.ɵɵNgModuleDeclaration<SharedUiModule, never, [typeof i2$1.CommonModule, typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ButtonDropdownModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule, typeof SideNavModule, typeof FormBuilderModule, typeof FormFieldConfigurationModule, typeof TableColumnConfigurationModule, typeof FilterTableSelectorModule], [typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ButtonDropdownModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule, typeof SideNavModule, typeof FormBuilderModule, typeof FormFieldConfigurationModule, typeof TableColumnConfigurationModule, typeof FilterTableSelectorModule]>;
4717
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SharedUiModule, never, [typeof i2$1.CommonModule, typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ButtonDropdownModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule, typeof SideNavModule, typeof FormBuilderModule, typeof FilterTableSelectorModule, typeof TimePickerModule, typeof FormFieldConfigurationModule, typeof TableColumnConfigurationModule, typeof FilterTableSelectorModule], [typeof MaterialModule, typeof AlertModule, typeof ButtonModule, typeof ButtonDropdownModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof FilterModule, typeof SummaryCardModule, typeof ConfigurableFormModule, typeof FormComponentsModule, typeof SmartFormModule, typeof SideNavModule, typeof FormBuilderModule, typeof FilterTableSelectorModule, typeof TimePickerModule, typeof FormFieldConfigurationModule, typeof TableColumnConfigurationModule, typeof FilterTableSelectorModule]>;
4481
4718
  static ɵinj: i0.ɵɵInjectorDeclaration<SharedUiModule>;
4482
4719
  }
4483
4720
 
@@ -4675,5 +4912,5 @@ declare class SnackbarModule {
4675
4912
  static ɵinj: i0.ɵɵInjectorDeclaration<SnackbarModule>;
4676
4913
  }
4677
4914
 
4678
- export { AlertComponent, AlertModule, ButtonComponent, ButtonDropdownComponent, ButtonDropdownModule, ButtonModule, CheckboxComponent, ConfigColumnNodeComponent, ConfigFieldNodeComponent, ConfigSchemaTreeService, ConfigSectionNodeComponent, ConfigurableFormComponent, configurableForm_examples_d as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_SIDE_NAV_TOOLTIP_POSITION, DatepickerComponent, DropdownComponent, ExpressionService, FieldConfigurationService, FieldConfiguratorComponent, FieldSelectionComponent, FilterComponent, FilterModule, FilterSidebarComponent, FilterSidebarModule, FilterTableSelectorComponent, FilterTableSelectorModule, FormBuilderModule, FormComponentsModule, FormFieldConfigurationComponent, FormFieldConfigurationModule, InputComponent, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, RadioComponent, SearchComponent, SharedUiModule, SideNavComponent, SideNavModule, SmartFormComponent, SmartFormController, smartForm_examples_d as SmartFormExamples, SmartFormModule, SmartTableComponent, SmartTableModule, SnackbarComponent, SnackbarModule, SnackbarService, StringUtils, SummaryCardComponent, SummaryCardModule, TableColumnConfigurationComponent, TableColumnConfigurationModule, TableColumnConfigurationService, ToggleComponent, ValidationUtils, appendBaseUrlRecursively, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem, translateConfig };
4679
- export type { AlertLabels, AlertVariant, AttachmentConfig, ButtonLabels, ButtonVariant, CheckboxConfig, CheckboxLabels, CheckboxOption, ConfigColumnNode, ConfigFieldNode, ConfigSectionNode, ConfirmationModalConfig, DateConfig, DatePickerConfig, DatepickerLabels, DropdownAction, DropdownConfig, DropdownLabels, DropdownOption, EmailConfig, FieldConfig, FieldEventPayload, FieldType, FilterChangeEvent, FilterConfig, FilterItem, FilterItemType, FilterOutput, FilterPanelConfig, FilterParamMap, FilterSearchConfig, FilterSidebarChangeEvent, FilterSidebarConfig, FilterSidebarOutput, FilterTableConfig, FilterTableSelectorConfig, FormConfig, FormField, FormOption, FormSchema, FormSection, GeneratedConfig, HierarchyCfg, IconInput, InputConfig, InputLabels, InputType, JsonFieldConfig, JsonFormConfig, KeyType, LengthConstraint, LocationConfig, NavItem, NavStyleConfig, NestedStringConfig, NumberConfig, OptionConfig, OptionDTO, OptionItem, PaginationConfig, PaginationLabels, PhoneConfig, QueryParamsConfig, RadioConfig, RadioLabels, RadioOption, RangeConfig, RatingConfig, SearchConfig, SearchLabels, SectionConfig, SelectionConfig, SideNavItem, SideNavSection, SideNavStyleConfig, SnackbarConfig, SnackbarVariant, StepperConfig, SubmitConfig, SuffixActionIcon, SummaryCardConfig, SummaryCardLabels, SummaryCardMeta, TableAction, TableActionItem, TableColumn, TableColumnSubField, TableConfig, TableDataChangeEvent, TableFilter, TableFilterChangeEvent, TableFilterColumn, TableFilterConfig, TableFilterItem, TableFilterLabels, TableFilterOutput, TableLabels, TableOption, TableRowSaveEvent, TableTheme, TextConfig, ToggleConfig, ToggleLabels, UIConfig, UISubType, UIType, UploadedFile, ValidationResult, ValidationRules };
4915
+ export { AlertComponent, AlertModule, ButtonComponent, ButtonDropdownComponent, ButtonDropdownModule, ButtonModule, CheckboxComponent, ClickOutsideDirective, ConfigColumnNodeComponent, ConfigFieldNodeComponent, ConfigSchemaTreeService, ConfigSectionNodeComponent, ConfigurableFormComponent, configurableForm_examples_d as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_SIDE_NAV_TOOLTIP_POSITION, DatepickerComponent, DropdownComponent, ExpressionService, FieldConfigurationService, FieldConfiguratorComponent, FieldSelectionComponent, FilterComponent, FilterModule, FilterSidebarComponent, FilterSidebarModule, FilterTableSelectorComponent, FilterTableSelectorModule, FormBuilderModule, FormComponentsModule, FormFieldConfigurationComponent, FormFieldConfigurationModule, InputComponent, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, RadioComponent, SearchComponent, SharedUiModule, SideNavComponent, SideNavModule, SmartFormComponent, SmartFormController, smartForm_examples_d as SmartFormExamples, SmartFormModule, SmartTableComponent, SmartTableModule, SnackbarComponent, SnackbarModule, SnackbarService, StringUtils, SummaryCardComponent, SummaryCardModule, TableColumnConfigurationComponent, TableColumnConfigurationModule, TableColumnConfigurationService, TimePickerComponent, TimePickerModule, TimeWheelPanelComponent, ToggleComponent, ValidationUtils, appendBaseUrlRecursively, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem, translateConfig };
4916
+ export type { AlertLabels, AlertVariant, AttachmentConfig, ButtonLabels, ButtonVariant, CheckboxConfig, CheckboxLabels, CheckboxOption, ConfigColumnNode, ConfigFieldNode, ConfigSectionNode, ConfirmationModalConfig, DateConfig, DatePickerConfig, DatepickerLabels, DropdownAction, DropdownConfig, DropdownLabels, DropdownOption, EmailConfig, FieldConfig, FieldEventPayload, FieldType, FilterChangeEvent, FilterConfig, FilterItem, FilterItemType, FilterOutput, FilterPanelConfig, FilterParamMap, FilterSearchConfig, FilterSidebarChangeEvent, FilterSidebarConfig, FilterSidebarOutput, FilterTableConfig, FilterTableSelectorConfig, FormConfig, FormField, FormOption, FormSchema, FormSection, GeneratedConfig, HierarchyCfg, IconInput, InputConfig, InputLabels, InputType, JsonFieldConfig, JsonFormConfig, KeyType, LengthConstraint, LocationConfig, NavItem, NavStyleConfig, NestedStringConfig, NumberConfig, OptionConfig, OptionDTO, OptionItem, PaginationConfig, PaginationLabels, PhoneConfig, QueryParamsConfig, RadioConfig, RadioLabels, RadioOption, RangeConfig, RatingConfig, SearchConfig, SearchLabels, SectionConfig, SelectionConfig, SideNavItem, SideNavSection, SideNavStyleConfig, SnackbarConfig, SnackbarVariant, StepperConfig, SubmitConfig, SuffixActionIcon, SummaryCardConfig, SummaryCardLabels, SummaryCardMeta, TableAction, TableActionItem, TableColumn, TableColumnSubField, TableConfig, TableDataChangeEvent, TableFilter, TableFilterChangeEvent, TableFilterColumn, TableFilterConfig, TableFilterItem, TableFilterLabels, TableFilterOutput, TableLabels, TableOption, TableRowSaveEvent, TableTheme, TextConfig, TimeMode, TimePickerConfig, TimePickerLabels, TimePickerVariant, ToggleConfig, ToggleLabels, UIConfig, UISubType, UIType, UploadedFile, ValidationResult, ValidationRules };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commons-shared-web-ui",
3
- "version": "0.0.54",
3
+ "version": "0.0.56",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "20.3.15",
6
6
  "@angular/cdk": "20.2.14",
@@ -0,0 +1,87 @@
1
+ @use 'sass:map';
2
+
3
+ $default-button-dropdown-config: (
4
+ // General Structure
5
+ menu-radius: 4px,
6
+ menu-border-light: 1px solid #e0e0e0,
7
+ menu-border-dark: 1px solid #444444,
8
+ menu-shadow-light: 0 4px 6px rgba(0, 0, 0, 0.1),
9
+ menu-shadow-dark: 0 4px 6px rgba(0, 0, 0, 0.5),
10
+
11
+ // Light Theme Map
12
+ light-bg: #ffffff,
13
+ light-item-color: #333333,
14
+ light-item-hover-bg: #f5f5f5,
15
+
16
+ // Dark Theme Map
17
+ dark-bg: #1a1a1a,
18
+ dark-item-color: #ffffff,
19
+ dark-item-hover-bg: #2d2d2d,
20
+
21
+ // Button Variants (For Explicit Actions)
22
+ primary-bg: #262125,
23
+ primary-color: #ffffff,
24
+ primary-hover: #3d353b,
25
+
26
+ warning-bg: #F9C80E,
27
+ warning-color: #000000,
28
+ warning-hover: #ebd573,
29
+
30
+ success-bg: #16A34A,
31
+ success-color: #ffffff,
32
+ success-hover: #148f41,
33
+
34
+ danger-bg: #E63E30,
35
+ danger-color: #ffffff,
36
+ danger-hover: #c93528,
37
+
38
+ secondary-bg: #E8EAED,
39
+ secondary-color: #000000,
40
+ secondary-hover: #d1d5db,
41
+
42
+ outline-bg: transparent,
43
+ outline-color: #000000,
44
+ outline-hover: rgba(0,0,0,0.05)
45
+ );
46
+
47
+ @mixin button-dropdown-theme($user-config: ()) {
48
+ $config: map.merge($default-button-dropdown-config, $user-config);
49
+
50
+ --cc-btn-dropdown-radius: #{map.get($config, menu-radius)};
51
+ --cc-btn-dropdown-border-light: #{map.get($config, menu-border-light)};
52
+ --cc-btn-dropdown-border-dark: #{map.get($config, menu-border-dark)};
53
+ --cc-btn-dropdown-shadow-light: #{map.get($config, menu-shadow-light)};
54
+ --cc-btn-dropdown-shadow-dark: #{map.get($config, menu-shadow-dark)};
55
+
56
+ --cc-btn-dropdown-light-bg: #{map.get($config, light-bg)};
57
+ --cc-btn-dropdown-light-item-color: #{map.get($config, light-item-color)};
58
+ --cc-btn-dropdown-light-item-hover-bg: #{map.get($config, light-item-hover-bg)};
59
+
60
+ --cc-btn-dropdown-dark-bg: #{map.get($config, dark-bg)};
61
+ --cc-btn-dropdown-dark-item-color: #{map.get($config, dark-item-color)};
62
+ --cc-btn-dropdown-dark-item-hover-bg: #{map.get($config, dark-item-hover-bg)};
63
+
64
+ --cc-btn-dropdown-primary-bg: #{map.get($config, primary-bg)};
65
+ --cc-btn-dropdown-primary-color: #{map.get($config, primary-color)};
66
+ --cc-btn-dropdown-primary-hover: #{map.get($config, primary-hover)};
67
+
68
+ --cc-btn-dropdown-warning-bg: #{map.get($config, warning-bg)};
69
+ --cc-btn-dropdown-warning-color: #{map.get($config, warning-color)};
70
+ --cc-btn-dropdown-warning-hover: #{map.get($config, warning-hover)};
71
+
72
+ --cc-btn-dropdown-success-bg: #{map.get($config, success-bg)};
73
+ --cc-btn-dropdown-success-color: #{map.get($config, success-color)};
74
+ --cc-btn-dropdown-success-hover: #{map.get($config, success-hover)};
75
+
76
+ --cc-btn-dropdown-danger-bg: #{map.get($config, danger-bg)};
77
+ --cc-btn-dropdown-danger-color: #{map.get($config, danger-color)};
78
+ --cc-btn-dropdown-danger-hover: #{map.get($config, danger-hover)};
79
+
80
+ --cc-btn-dropdown-secondary-bg: #{map.get($config, secondary-bg)};
81
+ --cc-btn-dropdown-secondary-color: #{map.get($config, secondary-color)};
82
+ --cc-btn-dropdown-secondary-hover: #{map.get($config, secondary-hover)};
83
+
84
+ --cc-btn-dropdown-outline-bg: #{map.get($config, outline-bg)};
85
+ --cc-btn-dropdown-outline-color: #{map.get($config, outline-color)};
86
+ --cc-btn-dropdown-outline-hover: #{map.get($config, outline-hover)};
87
+ }
@@ -0,0 +1,87 @@
1
+ @use 'sass:map';
2
+
3
+ $default-timepicker-config: (
4
+ // Trigger field (mirrors datepicker defaults)
5
+ height: 2.5rem,
6
+ padding: 0.375rem 1rem,
7
+ label-gap: 0.5rem,
8
+ border-radius: 0.4375rem,
9
+ border-color: #BDC1C6,
10
+ border-width: 1px,
11
+ bg: #FEFEFE,
12
+ color: #202124,
13
+ placeholder-color: #80868B,
14
+ font-size: 0.875rem,
15
+ font-weight: 400,
16
+ font-family: inherit,
17
+ label-font-size: 0.875rem,
18
+ label-font-weight: 500,
19
+ label-color: #202124,
20
+ focus-border-color: #1A73E8,
21
+ error-color: #D93025,
22
+ disabled-bg: #F1F3F4,
23
+ disabled-color: #80868B,
24
+ required-color: #D93025,
25
+ icon-color: #5F6368,
26
+
27
+ // Wheel panel (popup) — greyscale/black is the default theme.
28
+ // Opt into a blue accent by passing these overrides to time-picker-theme():
29
+ // accent: #4D89EB, accent-light: rgba(77,137,235,0.08),
30
+ // accent-border: rgba(77,137,235,0.15), btn-confirm-bg: #4D89EB,
31
+ // btn-confirm-hover: #3b74d1
32
+ accent: #111827,
33
+ accent-light: rgba(0, 0, 0, 0.05),
34
+ accent-border: rgba(0, 0, 0, 0.08),
35
+ item-height: 36px,
36
+ item-font-size: 1rem,
37
+ text-muted: #9CA3AF,
38
+ text-primary: #111827,
39
+ wheels-border: transparent,
40
+ btn-confirm-bg: #111827,
41
+ btn-confirm-hover: #000000,
42
+ btn-cancel-bg: #F3F4F6,
43
+ btn-cancel-hover: #E5E7EB,
44
+ btn-cancel-border: #F3F4F6,
45
+ );
46
+
47
+ @mixin time-picker-theme($user-config: ()) {
48
+ $config: map.merge($default-timepicker-config, $user-config);
49
+
50
+ // Trigger field tokens
51
+ --cc-timepicker-height: #{map.get($config, height)};
52
+ --cc-timepicker-padding: #{map.get($config, padding)};
53
+ --cc-timepicker-label-gap: #{map.get($config, label-gap)};
54
+ --cc-timepicker-border-radius: #{map.get($config, border-radius)};
55
+ --cc-timepicker-border-color: #{map.get($config, border-color)};
56
+ --cc-timepicker-border-width: #{map.get($config, border-width)};
57
+ --cc-timepicker-bg: #{map.get($config, bg)};
58
+ --cc-timepicker-color: #{map.get($config, color)};
59
+ --cc-timepicker-placeholder-color: #{map.get($config, placeholder-color)};
60
+ --cc-timepicker-font-size: #{map.get($config, font-size)};
61
+ --cc-timepicker-font-weight: #{map.get($config, font-weight)};
62
+ --cc-timepicker-font-family: #{map.get($config, font-family)};
63
+ --cc-timepicker-label-font-size: #{map.get($config, label-font-size)};
64
+ --cc-timepicker-label-font-weight: #{map.get($config, label-font-weight)};
65
+ --cc-timepicker-label-color: #{map.get($config, label-color)};
66
+ --cc-timepicker-focus-border-color: #{map.get($config, focus-border-color)};
67
+ --cc-timepicker-error-color: #{map.get($config, error-color)};
68
+ --cc-timepicker-disabled-bg: #{map.get($config, disabled-bg)};
69
+ --cc-timepicker-disabled-color: #{map.get($config, disabled-color)};
70
+ --cc-timepicker-required-color: #{map.get($config, required-color)};
71
+ --cc-timepicker-icon-color: #{map.get($config, icon-color)};
72
+
73
+ // Wheel panel tokens
74
+ --cc-timepicker-accent: #{map.get($config, accent)};
75
+ --cc-timepicker-accent-light: #{map.get($config, accent-light)};
76
+ --cc-timepicker-accent-border: #{map.get($config, accent-border)};
77
+ --cc-timepicker-item-height: #{map.get($config, item-height)};
78
+ --cc-timepicker-item-font-size: #{map.get($config, item-font-size)};
79
+ --cc-timepicker-text-muted: #{map.get($config, text-muted)};
80
+ --cc-timepicker-text-primary: #{map.get($config, text-primary)};
81
+ --cc-timepicker-wheels-border: #{map.get($config, wheels-border)};
82
+ --cc-timepicker-btn-confirm-bg: #{map.get($config, btn-confirm-bg)};
83
+ --cc-timepicker-btn-confirm-hover: #{map.get($config, btn-confirm-hover)};
84
+ --cc-timepicker-btn-cancel-bg: #{map.get($config, btn-cancel-bg)};
85
+ --cc-timepicker-btn-cancel-hover: #{map.get($config, btn-cancel-hover)};
86
+ --cc-timepicker-btn-cancel-border: #{map.get($config, btn-cancel-border)};
87
+ }
@@ -1,12 +1,14 @@
1
1
  @use '../modules/side-nav/side-nav.theme' as sideNav;
2
2
  @use '../modules/form-builder/form-builder.theme' as fb;
3
3
  @use '../modules/filter-table-selector/filter-table-selector.theme' as fts;
4
+ @use '../modules/time-picker/time-picker.theme' as tp;
4
5
  @import 'quill/dist/quill.snow.css';
5
6
  @import './utilities.scss';
6
7
 
7
8
  :root {
8
9
  @include sideNav.side-nav-theme();
9
10
  @include fb.form-builder-theme();
11
+ @include tp.time-picker-theme();
10
12
  --cc-card-bg: #ffffff;
11
13
  --cc-card-border-color: #e0e0e0;
12
14
  --cc-card-border-radius: 8px;
@@ -85,6 +87,14 @@
85
87
  --ms-btn-add-color: #3b82f6;
86
88
  --ms-btn-add-hover: #2563eb;
87
89
 
90
+ /* Link List */
91
+ --cc-sf-link-item-bg: #ffffff;
92
+ --cc-sf-link-item-border: #e8eaed;
93
+ --cc-sf-link-item-text: #111827;
94
+ --cc-sf-link-delete-color: #ef4444;
95
+ --cc-sf-link-edit-color: #4b5563;
96
+ --cc-sf-link-save-color: #16a34a;
97
+
88
98
  @include sideNav.side-nav-theme();
89
99
  }
90
100