monkey-style-guide 21.2.12 → 21.2.13
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/assets/scss/partials/_breakpoints.scss +20 -4
- package/fesm2022/monkey-style-guide.mjs +933 -1977
- package/fesm2022/monkey-style-guide.mjs.map +1 -1
- package/monkey-style-guide-21.2.13.tgz +0 -0
- package/package.json +1 -1
- package/types/monkey-style-guide.d.ts +178 -429
- package/monkey-style-guide-21.2.12.tgz +0 -0
|
@@ -343,7 +343,7 @@ declare class MonkeyAutocompleteComponent implements MonkeyFormFieldControl, Con
|
|
|
343
343
|
focused: boolean;
|
|
344
344
|
readonly type: string;
|
|
345
345
|
readonly stateChanges: Subject<void>;
|
|
346
|
-
protected _elementRef: ElementRef<
|
|
346
|
+
protected _elementRef: ElementRef<HTMLTextAreaElement | HTMLInputElement | HTMLSelectElement>;
|
|
347
347
|
_onChange: any;
|
|
348
348
|
_onTouched: any;
|
|
349
349
|
get elementTarget(): any;
|
|
@@ -405,7 +405,7 @@ declare class MonkeyAutocompleteAddressComponent implements MonkeyFormFieldContr
|
|
|
405
405
|
focused: boolean;
|
|
406
406
|
readonly type: string;
|
|
407
407
|
readonly stateChanges: Subject<void>;
|
|
408
|
-
protected _elementRef: ElementRef<
|
|
408
|
+
protected _elementRef: ElementRef<HTMLTextAreaElement | HTMLInputElement | HTMLSelectElement>;
|
|
409
409
|
_onChange: any;
|
|
410
410
|
_onTouched: any;
|
|
411
411
|
private readonly _addressService;
|
|
@@ -783,67 +783,6 @@ declare class MonkeyComplexFilterBarComponent implements OnInit, OnChanges, Afte
|
|
|
783
783
|
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyComplexFilterBarComponent, "monkey-complex-filter-bar", never, { "key": { "alias": "key"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "complexFilterChange": "complexFilterChange"; }, never, ["*"], true, never>;
|
|
784
784
|
}
|
|
785
785
|
|
|
786
|
-
declare class MonkeyFilterBarComponent implements OnInit, OnChanges, OnDestroy {
|
|
787
|
-
protected _elementRef: ElementRef<any>;
|
|
788
|
-
private _service;
|
|
789
|
-
key: i0.InputSignal<string>;
|
|
790
|
-
config: i0.InputSignal<FilterBarConfig | undefined>;
|
|
791
|
-
filtersChange: EventEmitter<{
|
|
792
|
-
search?: string;
|
|
793
|
-
filters: ActiveFilter[];
|
|
794
|
-
}>;
|
|
795
|
-
searchChange: EventEmitter<string>;
|
|
796
|
-
showFilterMenu: boolean;
|
|
797
|
-
showDateSubmenu: boolean;
|
|
798
|
-
showFilterInput: boolean;
|
|
799
|
-
filterMenuTarget: HTMLElement | null;
|
|
800
|
-
dateSubmenuTarget: HTMLElement | null;
|
|
801
|
-
filterInputTarget: HTMLElement | null;
|
|
802
|
-
isEditingFilter: boolean;
|
|
803
|
-
activeOption: i0.WritableSignal<FilterOption | null>;
|
|
804
|
-
textValue: string;
|
|
805
|
-
currencyValue: number | null;
|
|
806
|
-
currencyMode: 'from' | 'until';
|
|
807
|
-
statusValues: string[];
|
|
808
|
-
dateRange: {
|
|
809
|
-
startDate: string;
|
|
810
|
-
endDate: string;
|
|
811
|
-
};
|
|
812
|
-
showCustomDate: boolean;
|
|
813
|
-
serviceConfig: i0.Signal<FilterBarConfig | undefined>;
|
|
814
|
-
activeFilters: i0.Signal<ActiveFilter[]>;
|
|
815
|
-
searchValue: i0.Signal<string>;
|
|
816
|
-
searchPlaceholder: i0.Signal<string>;
|
|
817
|
-
constructor();
|
|
818
|
-
ngOnInit(): void;
|
|
819
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
820
|
-
ngOnDestroy(): void;
|
|
821
|
-
availableFilterOptions(): FilterOption[];
|
|
822
|
-
isFilterActive(filterKey: string): boolean;
|
|
823
|
-
getOptionId(optionKey: string): string;
|
|
824
|
-
getActiveFilterId(filterKey: string): string;
|
|
825
|
-
onShowFilterMenu(btn: MonkeyButtonComponent): void;
|
|
826
|
-
onSelectOption(option: FilterOption): void;
|
|
827
|
-
onQuickDate(preset: string): void;
|
|
828
|
-
onDateChange(event: {
|
|
829
|
-
startDate: string;
|
|
830
|
-
endDate: string;
|
|
831
|
-
}): void;
|
|
832
|
-
onStatusChange(val: string, checked: boolean): void;
|
|
833
|
-
onApply(): void;
|
|
834
|
-
onEditFilter(filter: ActiveFilter): void;
|
|
835
|
-
onRemoveFilter(filterKey: string, event: Event): void;
|
|
836
|
-
onClearAll(): void;
|
|
837
|
-
onSearchChange(value: string): void;
|
|
838
|
-
closeFilterMenu: () => void;
|
|
839
|
-
closeDateSubmenu: () => void;
|
|
840
|
-
closeFilterInput: () => void;
|
|
841
|
-
private _resetInputState;
|
|
842
|
-
private _emit;
|
|
843
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterBarComponent, never>;
|
|
844
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterBarComponent, "monkey-filter-bar", never, { "key": { "alias": "key"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; "searchChange": "searchChange"; }, never, ["*"], true, never>;
|
|
845
|
-
}
|
|
846
|
-
|
|
847
786
|
interface FilterBarState {
|
|
848
787
|
search: string;
|
|
849
788
|
filters: ActiveFilter[];
|
|
@@ -919,462 +858,272 @@ declare class MonkeyFilterBarService {
|
|
|
919
858
|
* This style guide was developed by Monkey Exchange Team
|
|
920
859
|
* MIT Licence
|
|
921
860
|
************************* */
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
*
|
|
927
|
-
* [animate.enter]="appPainted() ? 'mecx-x--entering' : ''"
|
|
928
|
-
*
|
|
929
|
-
* A component already on screen at the first paint comes in without animation;
|
|
930
|
-
* one the consumer mounts later animates normally.
|
|
931
|
-
*/
|
|
932
|
-
declare function appPainted(): boolean;
|
|
933
|
-
|
|
934
|
-
/** Which panel of which chip is open. Only one is ever open at a time. */
|
|
935
|
-
interface OpenPanel {
|
|
936
|
-
readonly key: string;
|
|
937
|
-
readonly part: 'category' | 'value';
|
|
861
|
+
type MonkeyFilterBarType = 'text' | 'date' | 'currency' | 'status';
|
|
862
|
+
interface MonkeyFilterBarStatusOption {
|
|
863
|
+
readonly value: string;
|
|
864
|
+
readonly description: string;
|
|
938
865
|
}
|
|
939
|
-
|
|
940
|
-
interface MonkeyFilterBarV2Row {
|
|
866
|
+
interface MonkeyFilterBarOption {
|
|
941
867
|
readonly key: string;
|
|
942
868
|
readonly label: string;
|
|
943
869
|
readonly icon?: string;
|
|
944
|
-
readonly type:
|
|
945
|
-
|
|
870
|
+
readonly type: MonkeyFilterBarType;
|
|
871
|
+
readonly placeholder?: string;
|
|
872
|
+
readonly minDate?: Date | string;
|
|
873
|
+
readonly maxDate?: Date | string;
|
|
874
|
+
readonly currency?: string;
|
|
875
|
+
readonly statusOptions?: readonly MonkeyFilterBarStatusOption[];
|
|
876
|
+
}
|
|
877
|
+
interface MonkeyFilterBarConfig {
|
|
878
|
+
readonly filterOptions: readonly MonkeyFilterBarOption[];
|
|
879
|
+
}
|
|
880
|
+
type MonkeyFilterOperator = 'EQ' | 'NEQ' | 'LIKE' | 'NOT_LIKE' | 'STARTS_WITH' | 'ENDS_WITH' | 'IS_EMPTY' | 'BETWEEN' | 'GT' | 'LT' | 'BEFORE' | 'AFTER';
|
|
881
|
+
type MonkeyFilterCondition = MonkeyFilterOperator | '';
|
|
882
|
+
type MonkeyFilterArity = 0 | 1 | 2;
|
|
883
|
+
type MonkeyFilterPanel = 'none' | 'status' | 'field' | 'date-day' | 'date-range';
|
|
884
|
+
type MonkeyFilterOperand = {
|
|
885
|
+
readonly kind: 'text';
|
|
946
886
|
readonly value: string;
|
|
947
|
-
|
|
948
|
-
readonly
|
|
887
|
+
} | {
|
|
888
|
+
readonly kind: 'number';
|
|
889
|
+
readonly value: number;
|
|
890
|
+
} | {
|
|
891
|
+
readonly kind: 'date';
|
|
892
|
+
readonly value: string;
|
|
893
|
+
} | {
|
|
894
|
+
readonly kind: 'selection';
|
|
895
|
+
readonly values: readonly string[];
|
|
896
|
+
};
|
|
897
|
+
interface MonkeyAppliedFilter {
|
|
898
|
+
readonly key: string;
|
|
899
|
+
readonly label: string;
|
|
900
|
+
readonly type: MonkeyFilterBarType;
|
|
901
|
+
readonly condition: MonkeyFilterOperator;
|
|
902
|
+
readonly operands: readonly MonkeyFilterOperand[];
|
|
949
903
|
}
|
|
950
|
-
|
|
951
|
-
|
|
904
|
+
interface MonkeyFilterRow {
|
|
905
|
+
readonly key: string;
|
|
906
|
+
readonly label: string;
|
|
907
|
+
readonly icon?: string;
|
|
908
|
+
readonly type: MonkeyFilterBarType;
|
|
909
|
+
readonly condition: MonkeyFilterCondition;
|
|
910
|
+
readonly operands: readonly MonkeyFilterOperand[];
|
|
911
|
+
}
|
|
912
|
+
declare function conditionsOf(type: MonkeyFilterBarType): readonly MonkeyFilterOperator[];
|
|
913
|
+
declare function arityOf(condition: MonkeyFilterCondition): MonkeyFilterArity;
|
|
914
|
+
declare function panelOf(type: MonkeyFilterBarType, condition: MonkeyFilterCondition): MonkeyFilterPanel;
|
|
915
|
+
declare function isComplete(row: MonkeyFilterRow): boolean;
|
|
916
|
+
declare function appliedFrom(rows: readonly MonkeyFilterRow[]): MonkeyAppliedFilter[];
|
|
917
|
+
declare function withCondition(row: MonkeyFilterRow, condition: MonkeyFilterOperator): MonkeyFilterRow;
|
|
918
|
+
declare function withType(row: MonkeyFilterRow, next: {
|
|
919
|
+
key: string;
|
|
920
|
+
label: string;
|
|
921
|
+
icon?: string;
|
|
922
|
+
type: MonkeyFilterBarType;
|
|
923
|
+
}): MonkeyFilterRow;
|
|
924
|
+
|
|
925
|
+
/** ************************
|
|
926
|
+
* Copyright Monkey Exchange. All Rights Reserved
|
|
927
|
+
* This style guide was developed by Monkey Exchange Team
|
|
928
|
+
* MIT Licence
|
|
929
|
+
************************* */
|
|
930
|
+
declare function appPainted(): boolean;
|
|
931
|
+
|
|
932
|
+
interface OpenPanel {
|
|
933
|
+
readonly key: string;
|
|
934
|
+
readonly part: 'category' | 'condition' | 'value';
|
|
935
|
+
}
|
|
936
|
+
declare class MonkeyFilterBarComponent {
|
|
952
937
|
private readonly _hostEl;
|
|
953
938
|
private readonly _injector;
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
readonly
|
|
957
|
-
|
|
958
|
-
readonly
|
|
959
|
-
readonly
|
|
960
|
-
readonly
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
}>;
|
|
964
|
-
readonly searchChange: i0.OutputEmitterRef<string>;
|
|
965
|
-
/** A chip seeded by the consumer does not animate; one the user made does. */
|
|
939
|
+
private readonly _text;
|
|
940
|
+
private _commitTimer;
|
|
941
|
+
private readonly _reported;
|
|
942
|
+
readonly config: i0.InputSignal<MonkeyFilterBarConfig | undefined>;
|
|
943
|
+
readonly filters: i0.InputSignal<readonly MonkeyAppliedFilter[]>;
|
|
944
|
+
readonly onFiltersChange: i0.OutputEmitterRef<readonly MonkeyAppliedFilter[]>;
|
|
945
|
+
readonly dateFormat: i0.InputSignal<string>;
|
|
946
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
947
|
+
readonly debounce: i0.InputSignal<number>;
|
|
966
948
|
readonly appPainted: typeof appPainted;
|
|
967
|
-
|
|
968
|
-
* The filter being built — chosen from the trigger, not yet confirmed, so
|
|
969
|
-
* not yet in the service.
|
|
970
|
-
*
|
|
971
|
-
* It exists so the chip can be BORN where the trigger was, which is the
|
|
972
|
-
* whole point of the row's animation, without the bar reporting a filter
|
|
973
|
-
* that has no answer. Closing the panel without confirming drops it again:
|
|
974
|
-
* monkey-filter-bar has no half-filled state and neither does this one.
|
|
975
|
-
*/
|
|
976
|
-
protected readonly pending: i0.WritableSignal<FilterOption | null>;
|
|
949
|
+
protected readonly rows: i0.WritableSignal<readonly MonkeyFilterRow[]>;
|
|
977
950
|
protected readonly openPanel: i0.WritableSignal<OpenPanel | null>;
|
|
978
951
|
protected readonly triggerOpen: i0.WritableSignal<boolean>;
|
|
979
|
-
/**
|
|
980
|
-
* The filter whose date panel is showing the CALENDAR instead of the
|
|
981
|
-
* shortcuts, or `null`.
|
|
982
|
-
*
|
|
983
|
-
* It is the same panel, anchored to the same segment — "Personalizado" only
|
|
984
|
-
* swaps its content. No modal: the dialog would be almost all frame around a
|
|
985
|
-
* calendar, and frame is not an answer to anything.
|
|
986
|
-
*/
|
|
987
952
|
protected readonly calendarOpen: i0.WritableSignal<string | null>;
|
|
988
|
-
/** Search of the category panel. */
|
|
989
953
|
protected readonly categorySearch: i0.WritableSignal<string>;
|
|
990
|
-
/**
|
|
991
|
-
* Turns off the fade on the trigger's panel. It is written BEFORE the
|
|
992
|
-
* mutation on purpose: `animate.leave` is read the instant the node leaves,
|
|
993
|
-
* and turning it on afterwards would arrive too late.
|
|
994
|
-
*/
|
|
995
954
|
protected readonly immediateTriggerExit: i0.WritableSignal<boolean>;
|
|
996
955
|
protected textValue: string;
|
|
956
|
+
protected textValue2: string;
|
|
997
957
|
protected currencyValue: number | null;
|
|
998
|
-
protected
|
|
958
|
+
protected currencyValue2: number | null;
|
|
999
959
|
protected statusValues: string[];
|
|
1000
960
|
protected dateRange: {
|
|
1001
961
|
startDate: string;
|
|
1002
962
|
endDate: string;
|
|
1003
963
|
};
|
|
1004
|
-
protected
|
|
1005
|
-
protected readonly
|
|
1006
|
-
protected readonly
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
*/
|
|
1026
|
-
protected readonly changeOptions: i0.Signal<FilterOption[]>;
|
|
1027
|
-
/**
|
|
1028
|
-
* While the bar is empty the trigger is the CALL and earns the label. With
|
|
1029
|
-
* filters on screen a 28px square is enough.
|
|
1030
|
-
*/
|
|
964
|
+
protected dayValue: string;
|
|
965
|
+
protected readonly options: i0.Signal<readonly MonkeyFilterBarOption[]>;
|
|
966
|
+
protected readonly labels: i0.Signal<{
|
|
967
|
+
add: string;
|
|
968
|
+
addAria: string;
|
|
969
|
+
clear: string;
|
|
970
|
+
search: string;
|
|
971
|
+
selectCondition: string;
|
|
972
|
+
select: string;
|
|
973
|
+
confirm: string;
|
|
974
|
+
rangeFrom: string;
|
|
975
|
+
rangeTo: string;
|
|
976
|
+
remove: string;
|
|
977
|
+
}>;
|
|
978
|
+
protected readonly dateShortcuts: i0.Signal<{
|
|
979
|
+
key: string;
|
|
980
|
+
label: string;
|
|
981
|
+
}[]>;
|
|
982
|
+
protected readonly addOptions: i0.Signal<MonkeyFilterBarOption[]>;
|
|
983
|
+
protected readonly canAddFilter: i0.Signal<boolean>;
|
|
984
|
+
protected readonly changeOptions: i0.Signal<MonkeyFilterBarOption[]>;
|
|
1031
985
|
protected readonly triggerVariant: i0.Signal<"text" | "icon">;
|
|
1032
|
-
/**
|
|
1033
|
-
* The glyph of the collapsed trigger is a `+`, not the funnel.
|
|
1034
|
-
*
|
|
1035
|
-
* The variant says what the button IS; the glyph says what it DOES. With
|
|
1036
|
-
* filters already on screen the button does not open "the filters", it ADDS
|
|
1037
|
-
* one more — and a funnel there reads as the wrong thing. With the bar empty
|
|
1038
|
-
* the funnel is exact.
|
|
1039
|
-
*/
|
|
1040
986
|
protected readonly triggerIcon: i0.Signal<"filter" | "add-plus">;
|
|
1041
|
-
/**
|
|
1042
|
-
* The FLIP identity changes along with the variant, and that is the fix: the
|
|
1043
|
-
* text trigger is REMOVED and the icon one is BORN in its place, instead of
|
|
1044
|
-
* one button sliding to the right. Before this, the button dragged along the
|
|
1045
|
-
* panel that was closing — the list vanished travelling sideways.
|
|
1046
|
-
*
|
|
1047
|
-
* From the second filter on the identity holds, and then the `+` really does
|
|
1048
|
-
* slide: that movement is what says "the row grew".
|
|
1049
|
-
*/
|
|
1050
987
|
protected readonly triggerFlipId: i0.Signal<"trigger-text" | "trigger-icon">;
|
|
1051
988
|
constructor();
|
|
989
|
+
private askForAnswer;
|
|
990
|
+
private seedDraft;
|
|
991
|
+
private readDraft;
|
|
992
|
+
private money;
|
|
993
|
+
private showDate;
|
|
994
|
+
private open;
|
|
995
|
+
private closePanel;
|
|
996
|
+
private optionFor;
|
|
997
|
+
private matchingSearch;
|
|
998
|
+
private resetDraft;
|
|
999
|
+
private sameAsRows;
|
|
1000
|
+
private commit;
|
|
1001
|
+
private publish;
|
|
1002
|
+
private cancelCommit;
|
|
1003
|
+
private releaseFromFlow;
|
|
1004
|
+
private followEnd;
|
|
1005
|
+
private lastMovingSlot;
|
|
1006
|
+
private withFlip;
|
|
1007
|
+
protected operatorLabel(operator: MonkeyFilterCondition): string;
|
|
1052
1008
|
protected isOpen(rowKey: string, part: OpenPanel['part']): boolean;
|
|
1053
1009
|
protected isFilterActive(optionKey: string): boolean;
|
|
1054
|
-
|
|
1055
|
-
protected
|
|
1056
|
-
protected
|
|
1057
|
-
protected
|
|
1058
|
-
protected
|
|
1059
|
-
protected
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1010
|
+
protected needsDivider(options: readonly MonkeyFilterBarOption[], index: number): boolean;
|
|
1011
|
+
protected conditionsFor(row: MonkeyFilterRow): readonly MonkeyFilterOperator[];
|
|
1012
|
+
protected panelFor(row: MonkeyFilterRow): MonkeyFilterPanel;
|
|
1013
|
+
protected hasValueSegment(row: MonkeyFilterRow): boolean;
|
|
1014
|
+
protected isRange(row: MonkeyFilterRow): boolean;
|
|
1015
|
+
protected displayOf(row: MonkeyFilterRow): string;
|
|
1016
|
+
protected valuePlaceholder(row: MonkeyFilterRow): string;
|
|
1017
|
+
protected statusOptionsOf(row: MonkeyFilterRow): readonly monkey_style_guide.MonkeyFilterBarStatusOption[];
|
|
1018
|
+
protected minDateOf(row: MonkeyFilterRow): Date | string;
|
|
1019
|
+
protected maxDateOf(row: MonkeyFilterRow): Date | string;
|
|
1064
1020
|
protected onSelectCategory(index: number): void;
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
*
|
|
1068
|
-
* The answer always falls: it belongs to the old category's domain — a list
|
|
1069
|
-
* of statuses means nothing inside a date range — so the chip goes back to
|
|
1070
|
-
* waiting, with its value panel open.
|
|
1071
|
-
*/
|
|
1072
|
-
protected onChangeCategory(row: MonkeyFilterBarV2Row, index: number): void;
|
|
1073
|
-
/**
|
|
1074
|
-
* Opening the trigger closes whatever chip panel was open: only one panel is
|
|
1075
|
-
* ever on screen, and a draft chip whose panel was abandoned goes with it.
|
|
1076
|
-
*/
|
|
1021
|
+
protected onChangeCategory(row: MonkeyFilterRow, index: number): void;
|
|
1022
|
+
protected onSelectCondition(row: MonkeyFilterRow, condition: MonkeyFilterOperator): void;
|
|
1077
1023
|
protected onTriggerOpenChange(open: boolean): void;
|
|
1078
|
-
protected onCategoryOpenChange(row:
|
|
1079
|
-
protected
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
* content for the calendar, in the same place.
|
|
1084
|
-
*/
|
|
1085
|
-
protected onQuickDate(row: MonkeyFilterBarV2Row, preset: string): void;
|
|
1086
|
-
protected onDateChange(row: MonkeyFilterBarV2Row, event: {
|
|
1024
|
+
protected onCategoryOpenChange(row: MonkeyFilterRow, open: boolean): void;
|
|
1025
|
+
protected onConditionOpenChange(row: MonkeyFilterRow, open: boolean): void;
|
|
1026
|
+
protected onValueOpenChange(row: MonkeyFilterRow, open: boolean): void;
|
|
1027
|
+
protected onQuickDate(row: MonkeyFilterRow, key: string): void;
|
|
1028
|
+
protected onDateChange(row: MonkeyFilterRow, event: {
|
|
1087
1029
|
startDate: string;
|
|
1088
1030
|
endDate: string;
|
|
1089
1031
|
}): void;
|
|
1090
|
-
/** Cancel inside the calendar goes back to the shortcuts, panel still open. */
|
|
1091
1032
|
protected onBackToShortcuts(): void;
|
|
1092
|
-
protected onStatusChange(value: string, checked: boolean): void;
|
|
1093
1033
|
protected onToggleStatus(value: string): void;
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
* monkey-filter-bar: an empty answer is not an answer, and the panel stays
|
|
1097
|
-
* open instead of writing a filter with nothing in it.
|
|
1098
|
-
*/
|
|
1099
|
-
protected onApply(row: MonkeyFilterBarV2Row): void;
|
|
1100
|
-
protected onRemove(row: MonkeyFilterBarV2Row): void;
|
|
1101
|
-
/** Zeroes the whole bar. The trigger goes back to being the call with a label. */
|
|
1034
|
+
protected onApply(row: MonkeyFilterRow): void;
|
|
1035
|
+
protected onRemove(row: MonkeyFilterRow): void;
|
|
1102
1036
|
protected onClearAll(): void;
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
* Opens a chip's answer panel, pre-filled with the answer it already holds —
|
|
1106
|
-
* this is the edit path the active-filter tag used to be.
|
|
1107
|
-
*/
|
|
1108
|
-
private _openValuePanel;
|
|
1109
|
-
/**
|
|
1110
|
-
* Closing the value panel of a chip that was never confirmed drops the chip:
|
|
1111
|
-
* monkey-filter-bar adds nothing until Apply, and a chip left on the row
|
|
1112
|
-
* with no answer would be a state it does not have.
|
|
1113
|
-
*
|
|
1114
|
-
* Closing the panel of a CONFIRMED chip changes no width — the segment shows
|
|
1115
|
-
* the same text it did before — so that path needs no FLIP.
|
|
1116
|
-
*/
|
|
1117
|
-
private _closePanel;
|
|
1118
|
-
/** Takes the draft chip off the row, ghost and all. */
|
|
1119
|
-
private _dropPending;
|
|
1120
|
-
private _optionFor;
|
|
1121
|
-
private _matchingSearch;
|
|
1122
|
-
private _resetDraft;
|
|
1123
|
-
private _emit;
|
|
1124
|
-
/**
|
|
1125
|
-
* Takes the slots that are about to leave out of the flow, at the exact
|
|
1126
|
-
* place where they are.
|
|
1127
|
-
*
|
|
1128
|
-
* This is done HERE and not by the `animate.leave` class because of ORDER:
|
|
1129
|
-
* Angular only applies the exit class the instant it removes the node, and
|
|
1130
|
-
* that happens AFTER the `afterNextRender` that runs the FLIP. The FLIP
|
|
1131
|
-
* would then measure a layout that had not collapsed yet, see no
|
|
1132
|
-
* displacement at all, and the neighbours would snap into their new place
|
|
1133
|
-
* with no animation — the chip's exit worked and the neighbours' arrival did
|
|
1134
|
-
* not.
|
|
1135
|
-
*
|
|
1136
|
-
* Released from the flow BEFORE the mutation, the row collapses in the same
|
|
1137
|
-
* pass: the FLIP measures a real before and a real after, and the ghost
|
|
1138
|
-
* fades out on top, in place. Explicit `left`/`top` are mandatory — the
|
|
1139
|
-
* static position of an absolute element inside a flex container is the
|
|
1140
|
-
* container's corner, not where the element was.
|
|
1141
|
-
*/
|
|
1142
|
-
private _releaseFromFlow;
|
|
1143
|
-
/**
|
|
1144
|
-
* Takes the row to the end of its travel, so that what has just come in is
|
|
1145
|
-
* not left hidden — and with it the trigger, which is always last in line.
|
|
1146
|
-
*
|
|
1147
|
-
* It runs BEFORE the "after" measurement on purpose. FLIP works in VIEWPORT
|
|
1148
|
-
* coordinates, so scrolling first folds the scroll offset into the same sum:
|
|
1149
|
-
* every piece slides from where the eye saw it to where it ended up, pan
|
|
1150
|
-
* included. One single synchronised movement.
|
|
1151
|
-
*
|
|
1152
|
-
* It is also what makes `scroll-behavior: smooth` unnecessary, which has no
|
|
1153
|
-
* token, guarantees nothing under reduced motion, and stalls in a throttled
|
|
1154
|
-
* tab.
|
|
1155
|
-
*
|
|
1156
|
-
* The sum comes from the LAST SLOT, never from `scrollWidth`. `scrollWidth`
|
|
1157
|
-
* at this instant is a poisoned measurement: the chip that has just been
|
|
1158
|
-
* born brings its answer panel already open, and the panel has not been
|
|
1159
|
-
* anchored yet — it is at its static position, far ahead, and counts as
|
|
1160
|
-
* overflow. The scroll would go hundreds of pixels chasing a ghost, the FLIP
|
|
1161
|
-
* would animate the whole row that distance, and the browser would clamp the
|
|
1162
|
-
* scroll back when the panel got anchored — a hard jump with no animation,
|
|
1163
|
-
* right in the middle of the chip's entrance.
|
|
1164
|
-
*
|
|
1165
|
-
* The slots do not have that problem: they are flow content, already at
|
|
1166
|
-
* their final position on the first render, and none of them is `fixed`.
|
|
1167
|
-
*/
|
|
1168
|
-
private _followEnd;
|
|
1169
|
-
/**
|
|
1170
|
-
* Measures, lets the state change, then makes everything slide from its old
|
|
1171
|
-
* position.
|
|
1172
|
-
*
|
|
1173
|
-
* `afterNextRender` and not a `setTimeout`: we need the first instant at
|
|
1174
|
-
* which the DOM ALREADY reflects the new state, and that is exactly what it
|
|
1175
|
-
* delivers.
|
|
1176
|
-
*/
|
|
1177
|
-
private _withFlip;
|
|
1178
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterBarV2Component, never>;
|
|
1179
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterBarV2Component, "monkey-filter-bar-v2", never, { "key": { "alias": "key"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "addFilterLabel": { "alias": "addFilterLabel"; "required": false; "isSignal": true; }; "clearAllLabel": { "alias": "clearAllLabel"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; "searchChange": "searchChange"; }, never, ["*"], true, never>;
|
|
1037
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterBarComponent, never>;
|
|
1038
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterBarComponent, "monkey-filter-bar", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "debounce": { "alias": "debounce"; "required": false; "isSignal": true; }; }, { "onFiltersChange": "onFiltersChange"; }, never, ["*"], true, never>;
|
|
1180
1039
|
}
|
|
1181
1040
|
|
|
1182
|
-
/**
|
|
1183
|
-
* The segmented row that replaces the trigger once the user has picked a
|
|
1184
|
-
* filter. Two segments and a bin:
|
|
1185
|
-
*
|
|
1186
|
-
* [ icon Data de Emissão | 01/01/2025 - 31/01/2025 | 🗑 ]
|
|
1187
|
-
* category value action
|
|
1188
|
-
*
|
|
1189
|
-
* How many segments there are is the consumer's decision — the value segment
|
|
1190
|
-
* is projected as soon as there is something to answer:
|
|
1191
|
-
*
|
|
1192
|
-
* <monkey-filter-chip (remove)="drop()">
|
|
1193
|
-
* <monkey-filter-segment icon="calendar-box" text="Data" readonlySegment />
|
|
1194
|
-
* <monkey-filter-segment placeholder="Selecione" [(open)]="open" />
|
|
1195
|
-
* </monkey-filter-chip>
|
|
1196
|
-
*
|
|
1197
|
-
* The chip carries NO `overflow: hidden`. It would clip the panels the
|
|
1198
|
-
* segments open right below themselves; the ends are rounded by radius, not by
|
|
1199
|
-
* clipping.
|
|
1200
|
-
*/
|
|
1201
1041
|
declare class MonkeyFilterChipComponent {
|
|
1202
|
-
/** Icon font name of the remove action, without the `mk-i-` prefix. */
|
|
1203
1042
|
readonly removeIcon: i0.InputSignal<string>;
|
|
1204
1043
|
readonly removeLabel: i0.InputSignal<string>;
|
|
1205
|
-
readonly
|
|
1044
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1045
|
+
readonly onRemove: i0.OutputEmitterRef<void>;
|
|
1206
1046
|
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterChipComponent, never>;
|
|
1207
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterChipComponent, "monkey-filter-chip", never, { "removeIcon": { "alias": "removeIcon"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; }, { "
|
|
1047
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterChipComponent, "monkey-filter-chip", never, { "removeIcon": { "alias": "removeIcon"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "onRemove": "onRemove"; }, never, ["*"], true, never>;
|
|
1208
1048
|
}
|
|
1209
1049
|
|
|
1210
|
-
/**
|
|
1211
|
-
* The panel every dropdown of monkey-filter-bar-v2 opens: a surface with an
|
|
1212
|
-
* optional search field on top and the projected rows below it.
|
|
1213
|
-
*
|
|
1214
|
-
* Only the WIDTH changes from one panel to the next, and it is set from the
|
|
1215
|
-
* bar's own stylesheet through a class on this host — the panel component has
|
|
1216
|
-
* no opinion on how wide a company list should be.
|
|
1217
|
-
*
|
|
1218
|
-
* `width` and not `min-width` on those classes: each panel is a fixed-width
|
|
1219
|
-
* frame in the design and a long label ellipsizes inside it. With a floor the
|
|
1220
|
-
* content would win, and the measurement would turn into a suggestion.
|
|
1221
|
-
*/
|
|
1222
1050
|
declare class MonkeyFilterMenuComponent implements OnDestroy {
|
|
1051
|
+
private readonly _zone;
|
|
1052
|
+
private readonly _items;
|
|
1053
|
+
private readonly _overflowing;
|
|
1054
|
+
private _observer?;
|
|
1223
1055
|
readonly showSearch: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1224
1056
|
readonly searchPlaceholder: i0.InputSignal<string>;
|
|
1225
|
-
/** Lets the row list scroll instead of growing past the viewport. */
|
|
1226
1057
|
readonly showScroll: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1227
|
-
/** Ceiling of the scrolling list, in px. */
|
|
1228
1058
|
readonly maxHeight: i0.InputSignal<number>;
|
|
1229
|
-
readonly
|
|
1059
|
+
readonly onSearchChange: i0.OutputEmitterRef<string>;
|
|
1230
1060
|
protected searchValue: string;
|
|
1231
|
-
private readonly _zone;
|
|
1232
|
-
private readonly _items;
|
|
1233
|
-
/** Is the list actually overflowing right now? */
|
|
1234
|
-
private readonly _overflowing;
|
|
1235
|
-
/**
|
|
1236
|
-
* Draw the track only when the content OVERFLOWS.
|
|
1237
|
-
*
|
|
1238
|
-
* Tied to `showScroll` alone, a three-row panel lost 12px of width to a
|
|
1239
|
-
* track that was never going to appear.
|
|
1240
|
-
*/
|
|
1241
1061
|
protected readonly scrolling: i0.Signal<boolean>;
|
|
1242
|
-
private _observer?;
|
|
1243
1062
|
constructor();
|
|
1063
|
+
private disconnect;
|
|
1244
1064
|
ngOnDestroy(): void;
|
|
1245
1065
|
protected onSearchInput(value: string): void;
|
|
1246
|
-
private _disconnect;
|
|
1247
1066
|
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterMenuComponent, never>;
|
|
1248
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterMenuComponent, "monkey-filter-menu", never, { "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "showScroll": { "alias": "showScroll"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; }, { "
|
|
1067
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterMenuComponent, "monkey-filter-menu", never, { "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "showScroll": { "alias": "showScroll"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; }, { "onSearchChange": "onSearchChange"; }, never, ["*"], true, never>;
|
|
1249
1068
|
}
|
|
1250
1069
|
|
|
1251
|
-
/** `text` is a plain row; `checkbox` puts a box in front of the label. */
|
|
1252
1070
|
type MonkeyFilterMenuItemProperty = 'text' | 'checkbox';
|
|
1253
|
-
/**
|
|
1254
|
-
* One row of a monkey-filter-menu.
|
|
1255
|
-
*
|
|
1256
|
-
* The ROW is the click target, which is why the checkbox inside it does not
|
|
1257
|
-
* grow one of its own: the boxes sit 18px apart inside rows of 32px that touch
|
|
1258
|
-
* each other, so a 40px floor on each would make two targets OVERLAP by 8px —
|
|
1259
|
-
* inside rows that are already clickable end to end.
|
|
1260
|
-
*/
|
|
1261
1071
|
declare class MonkeyFilterMenuItemComponent {
|
|
1262
1072
|
readonly property: i0.InputSignal<MonkeyFilterMenuItemProperty>;
|
|
1263
|
-
/** Icon font name, without the `mk-i-` prefix. */
|
|
1264
1073
|
readonly leadIcon: i0.InputSignal<string | null>;
|
|
1265
1074
|
readonly label: i0.InputSignal<string>;
|
|
1266
|
-
/** Secondary line under the label — a document number, a key. */
|
|
1267
1075
|
readonly description: i0.InputSignal<string | null>;
|
|
1268
1076
|
readonly checked: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1269
|
-
/** Already answered elsewhere: the row shows a check and stops responding. */
|
|
1270
1077
|
readonly selected: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1271
1078
|
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1272
|
-
readonly
|
|
1079
|
+
readonly onItemClick: i0.OutputEmitterRef<void>;
|
|
1273
1080
|
protected onClick(): void;
|
|
1274
1081
|
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterMenuItemComponent, never>;
|
|
1275
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterMenuItemComponent, "monkey-filter-menu-item", never, { "property": { "alias": "property"; "required": false; "isSignal": true; }; "leadIcon": { "alias": "leadIcon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "
|
|
1082
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterMenuItemComponent, "monkey-filter-menu-item", never, { "property": { "alias": "property"; "required": false; "isSignal": true; }; "leadIcon": { "alias": "leadIcon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "onItemClick": "onItemClick"; }, never, never, true, never>;
|
|
1276
1083
|
}
|
|
1277
1084
|
|
|
1278
|
-
/**
|
|
1279
|
-
* One segment of a monkey-filter-chip.
|
|
1280
|
-
*
|
|
1281
|
-
* ONE component for the two roles the chip has — the category name and the
|
|
1282
|
-
* answer. Both share the same state table, the same padding, the same
|
|
1283
|
-
* typography and the same height; what changes between them is the content
|
|
1284
|
-
* (the first has an icon) and the rounding of the ends, which belongs to the
|
|
1285
|
-
* chip and not to the segment. Two components would be two copies of the same
|
|
1286
|
-
* stylesheet waiting to drift apart.
|
|
1287
|
-
*
|
|
1288
|
-
* `filled` is not an input: it is `text() !== ''`. Letting the consumer
|
|
1289
|
-
* declare "filled" with an empty text would be a state impossible to draw.
|
|
1290
|
-
*
|
|
1291
|
-
* The projected panel is `position: fixed` and anchored by script — see
|
|
1292
|
-
* `anchored-menu.ts` for why an `absolute` one cannot survive inside a row
|
|
1293
|
-
* that scrolls.
|
|
1294
|
-
*/
|
|
1295
1085
|
declare class MonkeyFilterSegmentComponent {
|
|
1296
|
-
|
|
1086
|
+
private readonly _hostEl;
|
|
1087
|
+
private readonly _menuEl;
|
|
1297
1088
|
readonly icon: i0.InputSignal<string | null>;
|
|
1298
|
-
/** The chosen value. Empty means the segment is still waiting. */
|
|
1299
1089
|
readonly text: i0.InputSignal<string>;
|
|
1300
|
-
/** Waiting text, in the complement colour. */
|
|
1301
1090
|
readonly placeholder: i0.InputSignal<string>;
|
|
1302
|
-
/** A segment with no panel to open. */
|
|
1303
1091
|
readonly readonlySegment: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1304
|
-
readonly
|
|
1305
|
-
readonly
|
|
1092
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1093
|
+
readonly open: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1094
|
+
readonly onOpenChange: i0.OutputEmitterRef<boolean>;
|
|
1095
|
+
readonly onSegmentClick: i0.OutputEmitterRef<void>;
|
|
1306
1096
|
readonly filled: i0.Signal<boolean>;
|
|
1307
|
-
/** What is shown: the value when there is one, the waiting text when not. */
|
|
1308
1097
|
readonly label: i0.Signal<string>;
|
|
1309
|
-
private readonly _hostEl;
|
|
1310
|
-
private readonly _menuEl;
|
|
1311
1098
|
constructor();
|
|
1099
|
+
private focusButton;
|
|
1312
1100
|
toggle(): void;
|
|
1313
|
-
/**
|
|
1314
|
-
* A click outside closes. Without it the panel would only close by clicking
|
|
1315
|
-
* the segment again — behaviour no system menu has, and which left two
|
|
1316
|
-
* panels open at once on a row with several chips.
|
|
1317
|
-
*/
|
|
1318
1101
|
onDocumentPointerdown(event: PointerEvent): void;
|
|
1319
|
-
/**
|
|
1320
|
-
* Escape closes and hands the focus back to the segment's button. Without
|
|
1321
|
-
* the hand-back the focus falls to `<body>` and Tab restarts from the top of
|
|
1322
|
-
* the page: whoever opened the panel from the keyboard loses their place in
|
|
1323
|
-
* the middle of the row.
|
|
1324
|
-
*/
|
|
1325
1102
|
onEscape(): void;
|
|
1326
|
-
/** Closes and returns the focus. Public for whoever needs to close from outside. */
|
|
1327
1103
|
closeAndFocus(): void;
|
|
1328
|
-
private focusButton;
|
|
1329
1104
|
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterSegmentComponent, never>;
|
|
1330
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterSegmentComponent, "monkey-filter-segment", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonlySegment": { "alias": "readonlySegment"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "
|
|
1105
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterSegmentComponent, "monkey-filter-segment", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonlySegment": { "alias": "readonlySegment"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "onOpenChange": "onOpenChange"; "onSegmentClick": "onSegmentClick"; }, never, ["*"], true, never>;
|
|
1331
1106
|
}
|
|
1332
1107
|
|
|
1333
|
-
/** `text` is the 28px button with a label; `icon` is the 28px square. */
|
|
1334
1108
|
type MonkeyFilterTriggerVariant = 'text' | 'icon';
|
|
1335
|
-
/**
|
|
1336
|
-
* The button that adds a filter, and the panel of categories it opens.
|
|
1337
|
-
*
|
|
1338
|
-
* It is always the LAST slot of the row. While the bar is empty the trigger is
|
|
1339
|
-
* the CALL to action and earns its label; with filters on screen it becomes
|
|
1340
|
-
* the ADDITION, and a 28px square is enough.
|
|
1341
|
-
*
|
|
1342
|
-
* Both are 28px tall — the same as a chip segment — because the button turns
|
|
1343
|
-
* into a chip in place, and 1px of difference would show up as a jump at the
|
|
1344
|
-
* moment of the swap.
|
|
1345
|
-
*/
|
|
1346
1109
|
declare class MonkeyFilterTriggerComponent {
|
|
1110
|
+
private readonly _hostEl;
|
|
1111
|
+
private readonly _menuEl;
|
|
1347
1112
|
readonly variant: i0.InputSignal<MonkeyFilterTriggerVariant>;
|
|
1348
|
-
/** Icon font name, without the `mk-i-` prefix. */
|
|
1349
1113
|
readonly icon: i0.InputSignal<string>;
|
|
1350
1114
|
readonly text: i0.InputSignal<string>;
|
|
1351
1115
|
readonly ariaLabel: i0.InputSignal<string>;
|
|
1352
1116
|
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1353
|
-
/**
|
|
1354
|
-
* The panel leaves with no exit animation.
|
|
1355
|
-
*
|
|
1356
|
-
* It exists for ONE case: when the closing goes along with the trigger
|
|
1357
|
-
* itself changing place. The panel is a child of the button, so it travels
|
|
1358
|
-
* with it — and a fade on an element that has just teleported 160px does not
|
|
1359
|
-
* read as an exit, it reads as a glitch. Closing by Escape or by an outside
|
|
1360
|
-
* click is not that case and keeps its fade.
|
|
1361
|
-
*/
|
|
1362
1117
|
readonly immediateExit: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1363
|
-
readonly open: i0.
|
|
1364
|
-
|
|
1365
|
-
* `aria-label` only on the variant with no visible label. Where there is a
|
|
1366
|
-
* label, an `aria-label` over it would swap the name the user reads for one
|
|
1367
|
-
* they cannot see — breaking voice control and the "Label in Name" criterion.
|
|
1368
|
-
*/
|
|
1118
|
+
readonly open: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1119
|
+
readonly onOpenChange: i0.OutputEmitterRef<boolean>;
|
|
1369
1120
|
readonly ariaLabelAttr: i0.Signal<string | null>;
|
|
1370
|
-
private readonly _hostEl;
|
|
1371
|
-
private readonly _menuEl;
|
|
1372
1121
|
constructor();
|
|
1373
1122
|
toggle(): void;
|
|
1374
1123
|
onDocumentPointerdown(event: PointerEvent): void;
|
|
1375
1124
|
onEscape(): void;
|
|
1376
1125
|
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyFilterTriggerComponent, never>;
|
|
1377
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterTriggerComponent, "monkey-filter-trigger", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "immediateExit": { "alias": "immediateExit"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "
|
|
1126
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyFilterTriggerComponent, "monkey-filter-trigger", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "immediateExit": { "alias": "immediateExit"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "onOpenChange": "onOpenChange"; }, never, ["*"], true, never>;
|
|
1378
1127
|
}
|
|
1379
1128
|
|
|
1380
1129
|
declare class MonkeyIconButtonComponent {
|
|
@@ -1404,7 +1153,7 @@ declare class MonkeyInputCurrencyDirective implements MonkeyFormFieldControl, On
|
|
|
1404
1153
|
private el;
|
|
1405
1154
|
private renderer;
|
|
1406
1155
|
private currencyPipe;
|
|
1407
|
-
protected _elementRef: ElementRef<
|
|
1156
|
+
protected _elementRef: ElementRef<HTMLTextAreaElement | HTMLInputElement | HTMLSelectElement>;
|
|
1408
1157
|
protected _uid: string;
|
|
1409
1158
|
protected _id: string;
|
|
1410
1159
|
readonly stateChanges: Subject<void>;
|
|
@@ -1453,7 +1202,7 @@ declare class MonkeyInputCurrencyDirective implements MonkeyFormFieldControl, On
|
|
|
1453
1202
|
************************* */
|
|
1454
1203
|
|
|
1455
1204
|
declare class MonkeyInputDirective implements MonkeyFormFieldControl, OnChanges, OnDestroy {
|
|
1456
|
-
protected _elementRef: ElementRef<
|
|
1205
|
+
protected _elementRef: ElementRef<HTMLTextAreaElement | HTMLInputElement | HTMLSelectElement>;
|
|
1457
1206
|
protected _uid: string;
|
|
1458
1207
|
protected _id: string;
|
|
1459
1208
|
readonly stateChanges: Subject<void>;
|
|
@@ -1567,7 +1316,7 @@ declare class MonkeyInputDateRangeComponent implements MonkeyFormFieldControl, C
|
|
|
1567
1316
|
focused: boolean;
|
|
1568
1317
|
readonly type: string;
|
|
1569
1318
|
readonly stateChanges: Subject<void>;
|
|
1570
|
-
protected _elementRef: ElementRef<
|
|
1319
|
+
protected _elementRef: ElementRef<HTMLTextAreaElement | HTMLInputElement | HTMLSelectElement>;
|
|
1571
1320
|
_onChange: any;
|
|
1572
1321
|
_onTouched: any;
|
|
1573
1322
|
showPopOver: boolean;
|
|
@@ -1984,7 +1733,7 @@ declare class MonkeyRadioButtonComponent implements MonkeyFormFieldControl, Cont
|
|
|
1984
1733
|
private _destroyRef;
|
|
1985
1734
|
private readonly idGenerator;
|
|
1986
1735
|
ngControl: NgControl | null;
|
|
1987
|
-
protected _elementRef: ElementRef<
|
|
1736
|
+
protected _elementRef: ElementRef<HTMLTextAreaElement | HTMLInputElement | HTMLSelectElement>;
|
|
1988
1737
|
focused: boolean;
|
|
1989
1738
|
_disabled: boolean;
|
|
1990
1739
|
readonly id: string;
|
|
@@ -2130,7 +1879,7 @@ declare class MonkeySelectComponent implements MonkeyFormFieldControl, ControlVa
|
|
|
2130
1879
|
private _destroyRef;
|
|
2131
1880
|
private readonly idGenerator;
|
|
2132
1881
|
ngControl: NgControl | null;
|
|
2133
|
-
protected _elementRef: ElementRef<
|
|
1882
|
+
protected _elementRef: ElementRef<HTMLTextAreaElement | HTMLInputElement | HTMLSelectElement>;
|
|
2134
1883
|
readonly currency: boolean;
|
|
2135
1884
|
focused: boolean;
|
|
2136
1885
|
_disabled: boolean;
|
|
@@ -2592,7 +2341,7 @@ declare class MonkeyTabLinkDirective implements OnInit {
|
|
|
2592
2341
|
private router;
|
|
2593
2342
|
disabled: boolean;
|
|
2594
2343
|
get isDisabled(): boolean;
|
|
2595
|
-
get tabIndex():
|
|
2344
|
+
get tabIndex(): -1 | 0;
|
|
2596
2345
|
private destroyRef;
|
|
2597
2346
|
private el;
|
|
2598
2347
|
constructor(router: Router);
|
|
@@ -3027,5 +2776,5 @@ declare const MECX_COUNTRY_ISO_CODE: InjectionToken<string>;
|
|
|
3027
2776
|
declare const MECX_GOOGLE_API_KEY: InjectionToken<string>;
|
|
3028
2777
|
declare function injectTokenWithWarning<T>(token: InjectionToken<T>, name?: string): T | null;
|
|
3029
2778
|
|
|
3030
|
-
export { MECX_COUNTRY_ISO_CODE, MECX_GOOGLE_API_KEY, MECX_I18N_WRAPPER, MECX_MODAL_DATA, MECX_MODAL_DEFAULT_CONFIG, MECX_POPOVER_OPTIONS, MonkeyAccordionComponent, MonkeyActionBarComponent, MonkeyAlertComponent, MonkeyAutocompleteAddressComponent, MonkeyAutocompleteComponent, MonkeyAvatarComponent, MonkeyBadgeComponent, MonkeyBadgeDirective, MonkeyBreadcrumbComponent, MonkeyButtonComponent, MonkeyCheckboxComponent, MonkeyComplexFilterBarComponent, MonkeyDateRangeComponent, MonkeyDictionaryService, MonkeyDisplayDirective, MonkeyDividerComponent, MonkeyDownloadButtonComponent, MonkeyEcxAddressService, MonkeyErrorDirective, MonkeyFilterBarComponent, MonkeyFilterBarService,
|
|
3031
|
-
export type { ActiveFilter, AutocompleteSuggestion, AutocompleteSuggestionType, ColumnAlign, ColumnPinned, ComplexFilterCondition, ComplexFilterGroup, ComplexFilterOperator, ComplexFilterResult, FilterBarConfig, FilterBarState, FilterOption, FilterType, GoogleApiPlaces, GoogleApiPlacesAddressComponents, GoogleApiPlacesResponse, MonkeyAlertType, MonkeyAutocompleteData, MonkeyAutocompleteResponse, MonkeyBreadcrumb, MonkeyButtonColor, MonkeyButtonType, MonkeyDownloadButtonChangeEvent,
|
|
2779
|
+
export { MECX_COUNTRY_ISO_CODE, MECX_GOOGLE_API_KEY, MECX_I18N_WRAPPER, MECX_MODAL_DATA, MECX_MODAL_DEFAULT_CONFIG, MECX_POPOVER_OPTIONS, MonkeyAccordionComponent, MonkeyActionBarComponent, MonkeyAlertComponent, MonkeyAutocompleteAddressComponent, MonkeyAutocompleteComponent, MonkeyAvatarComponent, MonkeyBadgeComponent, MonkeyBadgeDirective, MonkeyBreadcrumbComponent, MonkeyButtonComponent, MonkeyCheckboxComponent, MonkeyComplexFilterBarComponent, MonkeyDateRangeComponent, MonkeyDictionaryService, MonkeyDisplayDirective, MonkeyDividerComponent, MonkeyDownloadButtonComponent, MonkeyEcxAddressService, MonkeyErrorDirective, MonkeyFilterBarComponent, MonkeyFilterBarService, MonkeyFilterChipComponent, MonkeyFilterMenuComponent, MonkeyFilterMenuItemComponent, MonkeyFilterSegmentComponent, MonkeyFilterTriggerComponent, MonkeyFormDirective, MonkeyFormFieldComponent, MonkeyFormFieldControl, MonkeyFormFieldModule, MonkeyHelperDirective, MonkeyIconButtonComponent, MonkeyInfoDirective, MonkeyInputCodeComponent, MonkeyInputCurrencyDirective, MonkeyInputDateRangeComponent, MonkeyInputDirective, MonkeyInputModule, MonkeyInputPhoneComponent, MonkeyInputUploadComponent, MonkeyLabelDirective, MonkeyModalActionsDirective, MonkeyModalComponent, MonkeyModalConfig, MonkeyModalContentDirective, MonkeyModalModule, MonkeyModalRef, MonkeyModalService, MonkeyModalSubtitleDirective, MonkeyModalTitleDirective, MonkeyOptionComponent, MonkeyPaginationActionComponent, MonkeyPaginationLabelComponent, MonkeyPaginationSizeComponent, MonkeyPassNumberComponent, MonkeyPassSecretNumberComponent, MonkeyPopoverContentComponent, MonkeyPopoverDirective, MonkeyPrefixDirective, MonkeyRadioButtonComponent, MonkeyScrollbarComponent, MonkeySecurityLevelComponent, MonkeySelectComponent, MonkeyStatusComponent, MonkeyStepComponent, MonkeyStepperComponent, MonkeyStepperModule, MonkeyStepperService, MonkeySuffixDirective, MonkeyTabComponent, MonkeyTabLinkDirective, MonkeyTableCellDirective, MonkeyTableColumnDirective, MonkeyTableComponent, MonkeyTableEmptyDirective, MonkeyTableHeaderCellDirective, MonkeyTableLoadingDirective, MonkeyTableRowDetailDirective, MonkeyTabsComponent, MonkeyTabsModule, MonkeyToastComponent, MonkeyToastRef, MonkeyToastService, MonkeyToggleComponent, MonkeyToggleLineButtonComponent, MonkeyToggleLineComponent, MonkeyTooltipComponent, MonkeyTooltipDirective, MonkeyUserProfileButtonComponent, MonkeyUserProfileComponent, addKeys, appliedFrom, ariaSortOf, arityOf, conditionsOf, getCurrencySymbol, indexAtOffset, injectTokenWithWarning, interpolate, isComplete, mergeOrder, offsetOfIndex, panelOf, removeKeys, sameColumnState, selectionState, sortByOrder, toPx, toggleKey, totalHeight, withCondition, withType };
|
|
2780
|
+
export type { ActiveFilter, AutocompleteSuggestion, AutocompleteSuggestionType, ColumnAlign, ColumnPinned, ComplexFilterCondition, ComplexFilterGroup, ComplexFilterOperator, ComplexFilterResult, FilterBarConfig, FilterBarState, FilterOption, FilterType, GoogleApiPlaces, GoogleApiPlacesAddressComponents, GoogleApiPlacesResponse, MonkeyAlertType, MonkeyAppliedFilter, MonkeyAutocompleteData, MonkeyAutocompleteResponse, MonkeyBreadcrumb, MonkeyButtonColor, MonkeyButtonType, MonkeyDownloadButtonChangeEvent, MonkeyFilterArity, MonkeyFilterBarConfig, MonkeyFilterBarOption, MonkeyFilterBarStatusOption, MonkeyFilterBarType, MonkeyFilterCondition, MonkeyFilterMenuItemProperty, MonkeyFilterOperand, MonkeyFilterOperator, MonkeyFilterPanel, MonkeyFilterRow, MonkeyFilterTriggerVariant, MonkeyInputUploadChangeEvent, MonkeyModalConfirmationConfig, MonkeyModalDefaultConfig, MonkeyPopoverDir, MonkeyPopoverOptions, MonkeyScrollbarOrientation, MonkeyScrollbarSize, MonkeySize, MonkeyTableCellContext, MonkeyTableColumnState, MonkeyTableScrollConfig, MonkeyTableSortKind, MonkeyToastPosition, MonkeyToastType, RowMetrics, SelectionState, SortDirection, SortState, StatusOption, ToastConfig };
|