monkey-style-guide 21.2.7 → 21.2.9
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/README.md +24 -24
- package/assets/scss/autocomplete/_index.scss +6 -6
- package/assets/scss/autocomplete/_styles.scss +149 -149
- package/assets/scss/directives/_badge.scss +48 -48
- package/assets/scss/directives/_index.scss +8 -8
- package/assets/scss/directives/_popover.scss +102 -102
- package/assets/scss/directives/_styles.scss +99 -99
- package/assets/scss/input/_index.scss +6 -6
- package/assets/scss/input/_styles.scss +67 -67
- package/assets/scss/partials/_breakpoints.scss +145 -145
- package/assets/scss/partials/_grid-system.scss +5069 -5069
- package/assets/scss/partials/_helper-classes.scss +373 -373
- package/assets/scss/partials/_icons.scss +38 -38
- package/assets/scss/partials/_index.scss +14 -14
- package/assets/scss/partials/_popover.scss +3 -3
- package/assets/scss/partials/_scrollbars.scss +29 -29
- package/assets/scss/partials/_skeleton-loading.scss +95 -95
- package/assets/scss/partials/_style-reset.scss +191 -191
- package/assets/scss/partials/_variables.scss +95 -95
- package/assets/scss/table/_index.scss +6 -6
- package/assets/scss/table/_styles.scss +11 -11
- package/assets/scss/theme.scss +14 -14
- package/assets/scss/typography/_index.scss +6 -6
- package/assets/scss/typography/_styles.scss +60 -60
- package/fesm2022/monkey-style-guide.mjs +4369 -2260
- package/fesm2022/monkey-style-guide.mjs.map +1 -1
- package/monkey-style-guide-21.2.9.tgz +0 -0
- package/package.json +1 -1
- package/types/monkey-style-guide.d.ts +844 -133
- package/monkey-style-guide-21.2.7.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef, ComponentRef, InputSignal, OutputEmitterRef, AfterContentInit, AfterContentChecked, OnDestroy,
|
|
2
|
+
import { TemplateRef, EventEmitter, ElementRef, ComponentRef, InputSignal, OutputEmitterRef, AfterContentInit, AfterContentChecked, OnDestroy, ChangeDetectorRef, OnChanges, OnInit, InputSignalWithTransform, AfterViewInit, SimpleChanges, Renderer2, QueryList, StaticProvider, Injector, InjectionToken, ViewContainerRef, ApplicationRef } from '@angular/core';
|
|
3
3
|
import { NgControl, AbstractControlDirective, ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
4
4
|
import * as rxjs from 'rxjs';
|
|
5
5
|
import { Observable, Subject, BehaviorSubject } from 'rxjs';
|
|
@@ -10,6 +10,7 @@ import { CurrencyPipe } from '@angular/common';
|
|
|
10
10
|
import { BooleanInput } from '@angular/cdk/coercion';
|
|
11
11
|
import { OverlayRef, Overlay } from '@angular/cdk/overlay';
|
|
12
12
|
import { ComponentType } from '@angular/cdk/portal';
|
|
13
|
+
import { VirtualScrollStrategy, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
13
14
|
|
|
14
15
|
declare class MonkeyAccordionComponent {
|
|
15
16
|
open: boolean;
|
|
@@ -129,6 +130,35 @@ interface MonkeyTableScrollConfig {
|
|
|
129
130
|
y?: string;
|
|
130
131
|
}
|
|
131
132
|
|
|
133
|
+
/** ************************
|
|
134
|
+
* Copyright Monkey Exchange. All Rights Reserved
|
|
135
|
+
* This style guide was developed by Monkey Exchange Team
|
|
136
|
+
* MIT Licence
|
|
137
|
+
************************* */
|
|
138
|
+
|
|
139
|
+
declare class MonkeyToastComponent {
|
|
140
|
+
private host;
|
|
141
|
+
message: string | undefined;
|
|
142
|
+
icon: string | undefined;
|
|
143
|
+
type: MonkeyToastType;
|
|
144
|
+
isClosable: boolean;
|
|
145
|
+
actionLabel: string | undefined;
|
|
146
|
+
actionIcon: string | undefined;
|
|
147
|
+
onActionClick: EventEmitter<string>;
|
|
148
|
+
onClose: EventEmitter<string>;
|
|
149
|
+
protected _uid: string;
|
|
150
|
+
protected _id: string;
|
|
151
|
+
get id(): string;
|
|
152
|
+
set id(value: string);
|
|
153
|
+
get class(): string;
|
|
154
|
+
constructor(host: ElementRef<HTMLElement>);
|
|
155
|
+
close(): void;
|
|
156
|
+
onAnimationEnd(event: AnimationEvent): void;
|
|
157
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyToastComponent, never>;
|
|
158
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyToastComponent, "monkey-toast", never, { "message": { "alias": "message"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "type": { "alias": "type"; "required": false; }; "isClosable": { "alias": "isClosable"; "required": false; }; "actionLabel": { "alias": "actionLabel"; "required": false; }; "actionIcon": { "alias": "actionIcon"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "onActionClick": "onActionClick"; "onClose": "onClose"; }, never, never, true, never>;
|
|
159
|
+
static ngAcceptInputType_isClosable: unknown;
|
|
160
|
+
}
|
|
161
|
+
|
|
132
162
|
/** ************************
|
|
133
163
|
* Copyright Monkey Exchange. All Rights Reserved
|
|
134
164
|
* This style guide was developed by Monkey Exchange Team
|
|
@@ -884,6 +914,469 @@ declare class MonkeyFilterBarService {
|
|
|
884
914
|
static ɵprov: i0.ɵɵInjectableDeclaration<MonkeyFilterBarService>;
|
|
885
915
|
}
|
|
886
916
|
|
|
917
|
+
/** ************************
|
|
918
|
+
* Copyright Monkey Exchange. All Rights Reserved
|
|
919
|
+
* This style guide was developed by Monkey Exchange Team
|
|
920
|
+
* MIT Licence
|
|
921
|
+
************************* */
|
|
922
|
+
/**
|
|
923
|
+
* Has the page painted its first frame?
|
|
924
|
+
*
|
|
925
|
+
* Use it to decide whether an `animate.enter` should apply:
|
|
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';
|
|
938
|
+
}
|
|
939
|
+
/** One slot of the row: an active filter, or the one being built. */
|
|
940
|
+
interface MonkeyFilterBarV2Row {
|
|
941
|
+
readonly key: string;
|
|
942
|
+
readonly label: string;
|
|
943
|
+
readonly icon?: string;
|
|
944
|
+
readonly type: FilterType;
|
|
945
|
+
/** What the value segment shows. Empty while the answer is pending. */
|
|
946
|
+
readonly value: string;
|
|
947
|
+
/** True while the filter is being built and is not in the service yet. */
|
|
948
|
+
readonly pending: boolean;
|
|
949
|
+
}
|
|
950
|
+
declare class MonkeyFilterBarV2Component {
|
|
951
|
+
private readonly _service;
|
|
952
|
+
private readonly _hostEl;
|
|
953
|
+
private readonly _injector;
|
|
954
|
+
/** Storage key of this bar's state inside MonkeyFilterBarService. */
|
|
955
|
+
readonly key: i0.InputSignal<string>;
|
|
956
|
+
readonly config: i0.InputSignal<FilterBarConfig | undefined>;
|
|
957
|
+
/** Label of the trigger while the bar is still empty. */
|
|
958
|
+
readonly addFilterLabel: i0.InputSignal<string>;
|
|
959
|
+
readonly clearAllLabel: i0.InputSignal<string>;
|
|
960
|
+
readonly filtersChange: i0.OutputEmitterRef<{
|
|
961
|
+
search?: string;
|
|
962
|
+
filters: ActiveFilter[];
|
|
963
|
+
}>;
|
|
964
|
+
readonly searchChange: i0.OutputEmitterRef<string>;
|
|
965
|
+
/** A chip seeded by the consumer does not animate; one the user made does. */
|
|
966
|
+
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>;
|
|
977
|
+
protected readonly openPanel: i0.WritableSignal<OpenPanel | null>;
|
|
978
|
+
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
|
+
protected readonly calendarOpen: i0.WritableSignal<string | null>;
|
|
988
|
+
/** Search of the category panel. */
|
|
989
|
+
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
|
+
protected readonly immediateTriggerExit: i0.WritableSignal<boolean>;
|
|
996
|
+
protected textValue: string;
|
|
997
|
+
protected currencyValue: number | null;
|
|
998
|
+
protected currencyMode: 'from' | 'until';
|
|
999
|
+
protected statusValues: string[];
|
|
1000
|
+
protected dateRange: {
|
|
1001
|
+
startDate: string;
|
|
1002
|
+
endDate: string;
|
|
1003
|
+
};
|
|
1004
|
+
protected readonly serviceConfig: i0.Signal<FilterBarConfig | undefined>;
|
|
1005
|
+
protected readonly activeFilters: i0.Signal<ActiveFilter[]>;
|
|
1006
|
+
protected readonly searchValue: i0.Signal<string>;
|
|
1007
|
+
protected readonly searchPlaceholder: i0.Signal<string>;
|
|
1008
|
+
/** The slots of the row, in order: the confirmed ones, then the draft. */
|
|
1009
|
+
protected readonly rows: i0.Signal<MonkeyFilterBarV2Row[]>;
|
|
1010
|
+
/**
|
|
1011
|
+
* What the TRIGGER offers: only what can still be added.
|
|
1012
|
+
*
|
|
1013
|
+
* This is monkey-filter-bar's rule — a filter already on the row is not on
|
|
1014
|
+
* offer, because the bar holds one filter per key.
|
|
1015
|
+
*/
|
|
1016
|
+
protected readonly addOptions: i0.Signal<FilterOption[]>;
|
|
1017
|
+
/**
|
|
1018
|
+
* What a chip's CATEGORY segment offers: the whole list.
|
|
1019
|
+
*
|
|
1020
|
+
* A different list from the trigger's on purpose. Here the question is "what
|
|
1021
|
+
* else could this chip be", so the current category has to be visible — it
|
|
1022
|
+
* is the one carrying the check — and the other filters already on the row
|
|
1023
|
+
* are shown greyed out rather than hidden, which is what tells the user the
|
|
1024
|
+
* category they were looking for is already in use.
|
|
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
|
+
*/
|
|
1031
|
+
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
|
+
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
|
+
protected readonly triggerFlipId: i0.Signal<"trigger-text" | "trigger-icon">;
|
|
1051
|
+
constructor();
|
|
1052
|
+
protected isOpen(rowKey: string, part: OpenPanel['part']): boolean;
|
|
1053
|
+
protected isFilterActive(optionKey: string): boolean;
|
|
1054
|
+
/** A divider goes where the type changes relative to the row above. */
|
|
1055
|
+
protected needsDivider(options: readonly FilterOption[], index: number): boolean;
|
|
1056
|
+
protected valuePlaceholder(row: MonkeyFilterBarV2Row): string;
|
|
1057
|
+
protected statusOptionsOf(row: MonkeyFilterBarV2Row): monkey_style_guide.StatusOption[];
|
|
1058
|
+
protected minDateOf(row: MonkeyFilterBarV2Row): Date | string;
|
|
1059
|
+
protected maxDateOf(row: MonkeyFilterBarV2Row): Date | string;
|
|
1060
|
+
/**
|
|
1061
|
+
* `index` is the position in the list the template walked — the one the
|
|
1062
|
+
* search filtered. Indexing the full list would pick the wrong option.
|
|
1063
|
+
*/
|
|
1064
|
+
protected onSelectCategory(index: number): void;
|
|
1065
|
+
/**
|
|
1066
|
+
* Swaps the category of a chip that already exists, from its first segment.
|
|
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
|
+
*/
|
|
1077
|
+
protected onTriggerOpenChange(open: boolean): void;
|
|
1078
|
+
protected onCategoryOpenChange(row: MonkeyFilterBarV2Row, open: boolean): void;
|
|
1079
|
+
protected onValueOpenChange(row: MonkeyFilterBarV2Row, open: boolean): void;
|
|
1080
|
+
/**
|
|
1081
|
+
* The same shortcuts monkey-filter-bar offers. "Personalizado" is the only
|
|
1082
|
+
* one that does not resolve the interval on its own: it swaps the panel's
|
|
1083
|
+
* content for the calendar, in the same place.
|
|
1084
|
+
*/
|
|
1085
|
+
protected onQuickDate(row: MonkeyFilterBarV2Row, preset: string): void;
|
|
1086
|
+
protected onDateChange(row: MonkeyFilterBarV2Row, event: {
|
|
1087
|
+
startDate: string;
|
|
1088
|
+
endDate: string;
|
|
1089
|
+
}): void;
|
|
1090
|
+
/** Cancel inside the calendar goes back to the shortcuts, panel still open. */
|
|
1091
|
+
protected onBackToShortcuts(): void;
|
|
1092
|
+
protected onStatusChange(value: string, checked: boolean): void;
|
|
1093
|
+
protected onToggleStatus(value: string): void;
|
|
1094
|
+
/**
|
|
1095
|
+
* The one place where an answer is written. Same validation as
|
|
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. */
|
|
1102
|
+
protected onClearAll(): void;
|
|
1103
|
+
protected onSearchChange(value: string): void;
|
|
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>;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
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
|
+
declare class MonkeyFilterChipComponent {
|
|
1202
|
+
/** Icon font name of the remove action, without the `mk-i-` prefix. */
|
|
1203
|
+
readonly removeIcon: i0.InputSignal<string>;
|
|
1204
|
+
readonly removeLabel: i0.InputSignal<string>;
|
|
1205
|
+
readonly remove: i0.OutputEmitterRef<void>;
|
|
1206
|
+
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; }; }, { "remove": "remove"; }, never, ["*"], true, never>;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
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
|
+
declare class MonkeyFilterMenuComponent implements OnDestroy {
|
|
1223
|
+
readonly showSearch: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1224
|
+
readonly searchPlaceholder: i0.InputSignal<string>;
|
|
1225
|
+
/** Lets the row list scroll instead of growing past the viewport. */
|
|
1226
|
+
readonly showScroll: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1227
|
+
/** Ceiling of the scrolling list, in px. */
|
|
1228
|
+
readonly maxHeight: i0.InputSignal<number>;
|
|
1229
|
+
readonly searchChange: i0.OutputEmitterRef<string>;
|
|
1230
|
+
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
|
+
protected readonly scrolling: i0.Signal<boolean>;
|
|
1242
|
+
private _observer?;
|
|
1243
|
+
constructor();
|
|
1244
|
+
ngOnDestroy(): void;
|
|
1245
|
+
protected onSearchInput(value: string): void;
|
|
1246
|
+
private _disconnect;
|
|
1247
|
+
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; }; }, { "searchChange": "searchChange"; }, never, ["*"], true, never>;
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
/** `text` is a plain row; `checkbox` puts a box in front of the label. */
|
|
1252
|
+
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
|
+
declare class MonkeyFilterMenuItemComponent {
|
|
1262
|
+
readonly property: i0.InputSignal<MonkeyFilterMenuItemProperty>;
|
|
1263
|
+
/** Icon font name, without the `mk-i-` prefix. */
|
|
1264
|
+
readonly leadIcon: i0.InputSignal<string | null>;
|
|
1265
|
+
readonly label: i0.InputSignal<string>;
|
|
1266
|
+
/** Secondary line under the label — a document number, a key. */
|
|
1267
|
+
readonly description: i0.InputSignal<string | null>;
|
|
1268
|
+
readonly checked: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1269
|
+
/** Already answered elsewhere: the row shows a check and stops responding. */
|
|
1270
|
+
readonly selected: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1271
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1272
|
+
readonly itemClick: i0.OutputEmitterRef<void>;
|
|
1273
|
+
protected onClick(): void;
|
|
1274
|
+
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; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
|
|
1276
|
+
}
|
|
1277
|
+
|
|
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
|
+
declare class MonkeyFilterSegmentComponent {
|
|
1296
|
+
/** Category icon — usually only the chip's first segment has one. */
|
|
1297
|
+
readonly icon: i0.InputSignal<string | null>;
|
|
1298
|
+
/** The chosen value. Empty means the segment is still waiting. */
|
|
1299
|
+
readonly text: i0.InputSignal<string>;
|
|
1300
|
+
/** Waiting text, in the complement colour. */
|
|
1301
|
+
readonly placeholder: i0.InputSignal<string>;
|
|
1302
|
+
/** A segment with no panel to open. */
|
|
1303
|
+
readonly readonlySegment: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1304
|
+
readonly open: i0.ModelSignal<boolean>;
|
|
1305
|
+
readonly segmentClick: i0.OutputEmitterRef<void>;
|
|
1306
|
+
readonly filled: i0.Signal<boolean>;
|
|
1307
|
+
/** What is shown: the value when there is one, the waiting text when not. */
|
|
1308
|
+
readonly label: i0.Signal<string>;
|
|
1309
|
+
private readonly _hostEl;
|
|
1310
|
+
private readonly _menuEl;
|
|
1311
|
+
constructor();
|
|
1312
|
+
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
|
+
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
|
+
onEscape(): void;
|
|
1326
|
+
/** Closes and returns the focus. Public for whoever needs to close from outside. */
|
|
1327
|
+
closeAndFocus(): void;
|
|
1328
|
+
private focusButton;
|
|
1329
|
+
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; }; }, { "open": "openChange"; "segmentClick": "segmentClick"; }, never, ["*"], true, never>;
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
/** `text` is the 28px button with a label; `icon` is the 28px square. */
|
|
1334
|
+
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
|
+
declare class MonkeyFilterTriggerComponent {
|
|
1347
|
+
readonly variant: i0.InputSignal<MonkeyFilterTriggerVariant>;
|
|
1348
|
+
/** Icon font name, without the `mk-i-` prefix. */
|
|
1349
|
+
readonly icon: i0.InputSignal<string>;
|
|
1350
|
+
readonly text: i0.InputSignal<string>;
|
|
1351
|
+
readonly ariaLabel: i0.InputSignal<string>;
|
|
1352
|
+
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
|
+
readonly immediateExit: i0.InputSignalWithTransform<boolean, unknown>;
|
|
1363
|
+
readonly open: i0.ModelSignal<boolean>;
|
|
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
|
+
*/
|
|
1369
|
+
readonly ariaLabelAttr: i0.Signal<string | null>;
|
|
1370
|
+
private readonly _hostEl;
|
|
1371
|
+
private readonly _menuEl;
|
|
1372
|
+
constructor();
|
|
1373
|
+
toggle(): void;
|
|
1374
|
+
onDocumentPointerdown(event: PointerEvent): void;
|
|
1375
|
+
onEscape(): void;
|
|
1376
|
+
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; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
|
|
1378
|
+
}
|
|
1379
|
+
|
|
887
1380
|
declare class MonkeyIconButtonComponent {
|
|
888
1381
|
type: 'primary' | 'secondary' | 'tertiary';
|
|
889
1382
|
size: 'sm' | 'md' | 'lg';
|
|
@@ -1517,6 +2010,83 @@ declare class MonkeyRadioButtonComponent implements MonkeyFormFieldControl, Cont
|
|
|
1517
2010
|
static ngAcceptInputType_required: unknown;
|
|
1518
2011
|
}
|
|
1519
2012
|
|
|
2013
|
+
type MonkeyScrollbarOrientation = 'horizontal' | 'vertical';
|
|
2014
|
+
/** `small` = 8px track (menus) · `medium` = 16px (page bar, what the table uses). */
|
|
2015
|
+
type MonkeyScrollbarSize = 'small' | 'medium';
|
|
2016
|
+
/**
|
|
2017
|
+
* A DRAWN scrollbar, not the native one styled — a native scrollbar can't
|
|
2018
|
+
* live outside the element that scrolls (e.g. below a table's rows, next to
|
|
2019
|
+
* its footer), and cross-browser track styling (radius, border) is
|
|
2020
|
+
* inconsistent enough that matching a design exactly isn't reliable with
|
|
2021
|
+
* `::-webkit-scrollbar`/`scrollbar-color` alone.
|
|
2022
|
+
*
|
|
2023
|
+
* It does NOT replace real scrolling: `target` keeps its own
|
|
2024
|
+
* `overflow: auto`, so keyboard, wheel and trackpad scrolling all keep
|
|
2025
|
+
* working — this is a draggable mirror drawn on top. That's also why it's
|
|
2026
|
+
* `aria-hidden`: a screen reader user scrolls the real region, and a second
|
|
2027
|
+
* widget announcing the same position would only add noise.
|
|
2028
|
+
*/
|
|
2029
|
+
declare class MonkeyScrollbarComponent implements OnDestroy {
|
|
2030
|
+
private readonly _zone;
|
|
2031
|
+
readonly orientation: i0.InputSignal<MonkeyScrollbarOrientation>;
|
|
2032
|
+
readonly size: i0.InputSignal<MonkeyScrollbarSize>;
|
|
2033
|
+
/** The element that actually scrolls. */
|
|
2034
|
+
readonly target: i0.InputSignal<HTMLElement>;
|
|
2035
|
+
private readonly trackEl;
|
|
2036
|
+
/** Scrollable length of the content, in px. */
|
|
2037
|
+
private readonly total;
|
|
2038
|
+
/** Visible length of the viewport, in px. */
|
|
2039
|
+
private readonly visible;
|
|
2040
|
+
/** How far the target is scrolled, in px. */
|
|
2041
|
+
private readonly scrolled;
|
|
2042
|
+
/** Length of the track the thumb slides along, in px. */
|
|
2043
|
+
private readonly trackLength;
|
|
2044
|
+
protected readonly scrollable: i0.Signal<boolean>;
|
|
2045
|
+
protected readonly thumbSize: i0.Signal<string>;
|
|
2046
|
+
/**
|
|
2047
|
+
* A px distance, applied as a `translate`, not as `left`/`top`: moving the
|
|
2048
|
+
* thumb then costs a composited transform instead of a layout pass on every
|
|
2049
|
+
* scroll frame. It has to be px rather than a percentage of the thumb
|
|
2050
|
+
* because the thumb has a minimum length — once that kicks in, a
|
|
2051
|
+
* percentage of its own (clamped) size no longer maps to track distance.
|
|
2052
|
+
*/
|
|
2053
|
+
protected readonly thumbOffset: i0.Signal<string>;
|
|
2054
|
+
private resizeObserver?;
|
|
2055
|
+
private observedTarget?;
|
|
2056
|
+
/** Pending animation frame, 0 when none is queued. */
|
|
2057
|
+
private frame;
|
|
2058
|
+
/** Whether the cached lengths need re-reading on the next frame. */
|
|
2059
|
+
private sizeStale;
|
|
2060
|
+
private readonly onScroll;
|
|
2061
|
+
/** Drag state. `null` = nobody is dragging. */
|
|
2062
|
+
private drag;
|
|
2063
|
+
constructor();
|
|
2064
|
+
ngOnDestroy(): void;
|
|
2065
|
+
private attach;
|
|
2066
|
+
private detach;
|
|
2067
|
+
/**
|
|
2068
|
+
* Scroll events fire far more often than the screen refreshes, and each
|
|
2069
|
+
* measurement reads layout. Coalescing to one read per frame is what keeps
|
|
2070
|
+
* a long table from thrashing layout while it scrolls.
|
|
2071
|
+
*/
|
|
2072
|
+
private schedule;
|
|
2073
|
+
private measure;
|
|
2074
|
+
protected onPointerDown(event: PointerEvent): void;
|
|
2075
|
+
protected onPointerMove(event: PointerEvent): void;
|
|
2076
|
+
protected onPointerUp(event: PointerEvent): void;
|
|
2077
|
+
/** Clicking the track outside the thumb jumps the content there, centered on the click. */
|
|
2078
|
+
protected onTrackPointerDown(event: PointerEvent): void;
|
|
2079
|
+
/**
|
|
2080
|
+
* Manual re-measure. Public on purpose: the automatic triggers (scroll,
|
|
2081
|
+
* ResizeObserver on the target and its children) cover what the browser
|
|
2082
|
+
* reports on its own — this is the escape hatch for what it doesn't, e.g.
|
|
2083
|
+
* a target swapped out from under the component.
|
|
2084
|
+
*/
|
|
2085
|
+
remeasure(): void;
|
|
2086
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyScrollbarComponent, never>;
|
|
2087
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyScrollbarComponent, "monkey-scrollbar", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2088
|
+
}
|
|
2089
|
+
|
|
1520
2090
|
declare class MonkeySecurityLevelComponent {
|
|
1521
2091
|
label: i0.InputSignal<string | undefined>;
|
|
1522
2092
|
score: i0.InputSignal<number>;
|
|
@@ -1727,84 +2297,98 @@ declare class MonkeyPaginationSizeComponent {
|
|
|
1727
2297
|
* This style guide was developed by Monkey Exchange Team
|
|
1728
2298
|
* MIT Licence
|
|
1729
2299
|
************************* */
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
2300
|
+
type SortDirection = 'ascending' | 'descending';
|
|
2301
|
+
interface SortState {
|
|
2302
|
+
column: string;
|
|
2303
|
+
direction: SortDirection;
|
|
2304
|
+
}
|
|
2305
|
+
type SelectionState = 'none' | 'partial' | 'all';
|
|
2306
|
+
type ColumnAlign = 'start' | 'end';
|
|
2307
|
+
type ColumnPinned = 'none' | 'left' | 'right';
|
|
2308
|
+
interface MonkeyTableColumnState {
|
|
2309
|
+
name: string;
|
|
2310
|
+
hidden: boolean;
|
|
2311
|
+
pinned: ColumnPinned;
|
|
2312
|
+
}
|
|
2313
|
+
declare function sameColumnState(a: readonly MonkeyTableColumnState[], b: readonly MonkeyTableColumnState[]): boolean;
|
|
2314
|
+
declare function ariaSortOf(sort: SortState | null, column: string): SortDirection | null;
|
|
2315
|
+
declare function interpolate(template: string, values: Record<string, string | number>): string;
|
|
2316
|
+
declare function toggleKey(current: ReadonlySet<string>, key: string): ReadonlySet<string>;
|
|
2317
|
+
declare function selectionState(current: ReadonlySet<string>, keys: readonly string[]): SelectionState;
|
|
2318
|
+
declare function addKeys(current: ReadonlySet<string>, keys: readonly string[], limit?: number): ReadonlySet<string>;
|
|
2319
|
+
declare function removeKeys(current: ReadonlySet<string>, keys: readonly string[]): ReadonlySet<string>;
|
|
2320
|
+
declare function sortByOrder<T>(items: readonly T[], nameOf: (item: T) => string, order: readonly string[]): T[];
|
|
2321
|
+
declare function mergeOrder(previous: readonly string[], next: readonly string[]): string[];
|
|
2322
|
+
interface RowMetrics {
|
|
2323
|
+
count: number;
|
|
2324
|
+
rowHeight: number;
|
|
2325
|
+
detailHeight: number;
|
|
2326
|
+
openIndices: readonly number[];
|
|
2327
|
+
}
|
|
2328
|
+
declare function totalHeight(metrics: RowMetrics): number;
|
|
2329
|
+
declare function offsetOfIndex(index: number, metrics: RowMetrics): number;
|
|
2330
|
+
declare function indexAtOffset(offset: number, metrics: RowMetrics): number;
|
|
2331
|
+
declare function toPx(width: string | null | undefined): number;
|
|
2332
|
+
|
|
2333
|
+
interface MonkeyTableCellContext<T> {
|
|
2334
|
+
$implicit: T;
|
|
2335
|
+
row: T;
|
|
2336
|
+
index: number;
|
|
2337
|
+
first: boolean;
|
|
2338
|
+
last: boolean;
|
|
1754
2339
|
}
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
declare class
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
static
|
|
2340
|
+
type MonkeyTableSortKind = 'text' | 'number' | 'date';
|
|
2341
|
+
declare class MonkeyTableCellDirective<T> {
|
|
2342
|
+
readonly template: TemplateRef<MonkeyTableCellContext<T>>;
|
|
2343
|
+
static ngTemplateContextGuard<T>(_dir: MonkeyTableCellDirective<T>, _ctx: unknown): _ctx is MonkeyTableCellContext<T>;
|
|
2344
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyTableCellDirective<any>, never>;
|
|
2345
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MonkeyTableCellDirective<any>, "ng-template[mkCell]", never, {}, {}, never, never, true, never>;
|
|
2346
|
+
}
|
|
2347
|
+
declare class MonkeyTableHeaderCellDirective {
|
|
2348
|
+
readonly template: TemplateRef<void>;
|
|
2349
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyTableHeaderCellDirective, never>;
|
|
2350
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MonkeyTableHeaderCellDirective, "ng-template[mkHeaderCell]", never, {}, {}, never, never, true, never>;
|
|
2351
|
+
}
|
|
2352
|
+
declare class MonkeyTableColumnDirective<T = any> {
|
|
2353
|
+
readonly name: i0.InputSignal<string>;
|
|
2354
|
+
readonly label: i0.InputSignal<string>;
|
|
2355
|
+
readonly labelHidden: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2356
|
+
readonly unit: i0.InputSignal<string>;
|
|
2357
|
+
readonly width: i0.InputSignal<string>;
|
|
2358
|
+
readonly align: i0.InputSignal<ColumnAlign>;
|
|
2359
|
+
readonly sortable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2360
|
+
readonly sortKind: i0.InputSignal<MonkeyTableSortKind>;
|
|
2361
|
+
readonly hideable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2362
|
+
readonly movable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2363
|
+
readonly pinnable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2364
|
+
readonly pinned: i0.ModelSignal<ColumnPinned>;
|
|
2365
|
+
readonly hidden: i0.ModelSignal<boolean>;
|
|
2366
|
+
readonly cell: i0.Signal<MonkeyTableCellDirective<any> | undefined>;
|
|
2367
|
+
readonly headerCell: i0.Signal<MonkeyTableHeaderCellDirective | undefined>;
|
|
2368
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyTableColumnDirective<any>, never>;
|
|
2369
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MonkeyTableColumnDirective<any>, "ng-container[mkColumn]", never, { "name": { "alias": "mkColumn"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "labelHidden": { "alias": "labelHidden"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "sortKind": { "alias": "sortKind"; "required": false; "isSignal": true; }; "hideable": { "alias": "hideable"; "required": false; "isSignal": true; }; "movable": { "alias": "movable"; "required": false; "isSignal": true; }; "pinnable": { "alias": "pinnable"; "required": false; "isSignal": true; }; "pinned": { "alias": "pinned"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; }, { "pinned": "pinnedChange"; "hidden": "hiddenChange"; }, ["cell", "headerCell"], never, true, never>;
|
|
2370
|
+
}
|
|
2371
|
+
declare class MonkeyTableRowDetailDirective<T> {
|
|
2372
|
+
readonly template: TemplateRef<{
|
|
2373
|
+
$implicit: T;
|
|
2374
|
+
row: T;
|
|
2375
|
+
}>;
|
|
2376
|
+
static ngTemplateContextGuard<T>(_dir: MonkeyTableRowDetailDirective<T>, _ctx: unknown): _ctx is {
|
|
2377
|
+
$implicit: T;
|
|
2378
|
+
row: T;
|
|
2379
|
+
};
|
|
2380
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyTableRowDetailDirective<any>, never>;
|
|
2381
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MonkeyTableRowDetailDirective<any>, "ng-template[mkRowDetail]", never, {}, {}, never, never, true, never>;
|
|
1784
2382
|
}
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
private renderer;
|
|
1795
|
-
table: MonkeyTableComponent;
|
|
1796
|
-
expansionChange: EventEmitter<any>;
|
|
1797
|
-
private _opened;
|
|
1798
|
-
private _subscriptions;
|
|
1799
|
-
private _enableAnimation;
|
|
1800
|
-
disabled: boolean;
|
|
1801
|
-
constructor(el: ElementRef, renderer: Renderer2, table: MonkeyTableComponent);
|
|
1802
|
-
private createSvgElement;
|
|
1803
|
-
ngOnInit(): void;
|
|
1804
|
-
onClick(): void;
|
|
1805
|
-
ngOnDestroy(): void;
|
|
1806
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyColumnExpansible, [null, null, { optional: true; }]>;
|
|
1807
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MonkeyColumnExpansible, "[mkExpansible]", never, {}, { "expansionChange": "expansionChange"; }, never, never, false, never>;
|
|
2383
|
+
declare class MonkeyTableEmptyDirective {
|
|
2384
|
+
readonly template: TemplateRef<void>;
|
|
2385
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyTableEmptyDirective, never>;
|
|
2386
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MonkeyTableEmptyDirective, "ng-template[mkEmpty]", never, {}, {}, never, never, true, never>;
|
|
2387
|
+
}
|
|
2388
|
+
declare class MonkeyTableLoadingDirective {
|
|
2389
|
+
readonly template: TemplateRef<void>;
|
|
2390
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyTableLoadingDirective, never>;
|
|
2391
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MonkeyTableLoadingDirective, "ng-template[mkLoading]", never, {}, {}, never, never, true, never>;
|
|
1808
2392
|
}
|
|
1809
2393
|
|
|
1810
2394
|
/** ************************
|
|
@@ -1813,33 +2397,189 @@ declare class MonkeyColumnExpansible implements OnInit, OnDestroy {
|
|
|
1813
2397
|
* MIT Licence
|
|
1814
2398
|
************************* */
|
|
1815
2399
|
|
|
1816
|
-
declare class
|
|
1817
|
-
private
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
private
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
2400
|
+
declare class MonkeyTableVirtualScroll implements VirtualScrollStrategy {
|
|
2401
|
+
private readonly _indexChange;
|
|
2402
|
+
readonly scrolledIndexChange: Observable<number>;
|
|
2403
|
+
private _viewport;
|
|
2404
|
+
private _metrics;
|
|
2405
|
+
private _buffer;
|
|
2406
|
+
attach(viewport: CdkVirtualScrollViewport): void;
|
|
2407
|
+
detach(): void;
|
|
2408
|
+
onContentScrolled(): void;
|
|
2409
|
+
onDataLengthChanged(): void;
|
|
2410
|
+
onContentRendered(): void;
|
|
2411
|
+
onRenderedOffsetChanged(): void;
|
|
2412
|
+
scrollToIndex(index: number, behavior: ScrollBehavior): void;
|
|
2413
|
+
setMetrics(metrics: RowMetrics, buffer: number): void;
|
|
2414
|
+
private update;
|
|
2415
|
+
}
|
|
2416
|
+
|
|
2417
|
+
type Column<T> = MonkeyTableColumnDirective<T>;
|
|
2418
|
+
interface SlotBase {
|
|
2419
|
+
key: string;
|
|
2420
|
+
width: string | null;
|
|
2421
|
+
px: number;
|
|
2422
|
+
pinned: ColumnPinned;
|
|
2423
|
+
offset: number;
|
|
2424
|
+
align: ColumnAlign;
|
|
2425
|
+
}
|
|
2426
|
+
type Slot<T> = (SlotBase & {
|
|
2427
|
+
kind: 'data';
|
|
2428
|
+
column: Column<T>;
|
|
2429
|
+
}) | (SlotBase & {
|
|
2430
|
+
kind: 'selection' | 'expand';
|
|
2431
|
+
column: null;
|
|
2432
|
+
});
|
|
2433
|
+
interface RowView<T> {
|
|
2434
|
+
row: T;
|
|
2435
|
+
key: string;
|
|
2436
|
+
index: number;
|
|
2437
|
+
selectable: boolean;
|
|
1831
2438
|
}
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
2439
|
+
interface RenderRow<T> extends RowView<T> {
|
|
2440
|
+
selected: boolean;
|
|
2441
|
+
open: boolean;
|
|
2442
|
+
blockedReason: string | null;
|
|
2443
|
+
selectLabel: string;
|
|
2444
|
+
expandLabel: string;
|
|
1837
2445
|
}
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
2446
|
+
declare class MonkeyTableComponent<T> implements OnDestroy {
|
|
2447
|
+
readonly virtualStrategy: MonkeyTableVirtualScroll;
|
|
2448
|
+
private readonly _zone;
|
|
2449
|
+
private readonly _text;
|
|
2450
|
+
private readonly _columns;
|
|
2451
|
+
private readonly _columnByName;
|
|
2452
|
+
private readonly _visibleColumns;
|
|
2453
|
+
private readonly _selectableKeys;
|
|
2454
|
+
private readonly _selection;
|
|
2455
|
+
private readonly _narrow;
|
|
2456
|
+
private readonly _detailHeight;
|
|
2457
|
+
private readonly _headHeight;
|
|
2458
|
+
private readonly _host;
|
|
2459
|
+
private _scroller?;
|
|
2460
|
+
private _observer?;
|
|
2461
|
+
private _frame;
|
|
2462
|
+
private _sizeStale;
|
|
2463
|
+
private _clientWidth;
|
|
2464
|
+
private _scrollWidth;
|
|
2465
|
+
private readonly _layout;
|
|
2466
|
+
readonly rows: i0.InputSignal<readonly T[]>;
|
|
2467
|
+
readonly rowKey: i0.InputSignal<(row: T) => string>;
|
|
2468
|
+
readonly rowLabel: i0.InputSignal<((row: T) => string) | undefined>;
|
|
2469
|
+
readonly rowSelectable: i0.InputSignal<((row: T) => boolean) | undefined>;
|
|
2470
|
+
readonly ariaLabel: i0.InputSignal<string>;
|
|
2471
|
+
readonly caption: i0.InputSignal<string>;
|
|
2472
|
+
readonly selectionMode: i0.InputSignal<"none" | "multiple">;
|
|
2473
|
+
readonly selected: i0.ModelSignal<ReadonlySet<string>>;
|
|
2474
|
+
readonly maxSelected: i0.InputSignal<number>;
|
|
2475
|
+
readonly sort: i0.InputSignal<SortState | null>;
|
|
2476
|
+
readonly expandable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2477
|
+
readonly expanded: i0.ModelSignal<ReadonlySet<string>>;
|
|
2478
|
+
readonly reorderable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2479
|
+
readonly hideable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2480
|
+
readonly pinnable: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2481
|
+
readonly rowHeight: i0.InputSignal<number>;
|
|
2482
|
+
readonly maxVisibleRows: i0.InputSignal<number | "none">;
|
|
2483
|
+
readonly virtualScroll: i0.InputSignal<"auto" | "off">;
|
|
2484
|
+
readonly columnOrder: i0.ModelSignal<readonly string[]>;
|
|
2485
|
+
readonly columnState: i0.InputSignal<readonly MonkeyTableColumnState[]>;
|
|
2486
|
+
readonly striped: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2487
|
+
readonly loading: i0.InputSignalWithTransform<boolean, unknown>;
|
|
2488
|
+
readonly emptyText: i0.InputSignal<string>;
|
|
2489
|
+
readonly skeletonRows: i0.InputSignal<number | "auto">;
|
|
2490
|
+
readonly onSortChange: i0.OutputEmitterRef<SortState | null>;
|
|
2491
|
+
readonly onColumnHidden: i0.OutputEmitterRef<{
|
|
2492
|
+
name: string;
|
|
2493
|
+
label: string;
|
|
2494
|
+
}>;
|
|
2495
|
+
readonly onColumnStateChange: i0.OutputEmitterRef<MonkeyTableColumnState[]>;
|
|
2496
|
+
readonly onSelectionChange: i0.OutputEmitterRef<string[]>;
|
|
2497
|
+
readonly onExpandChange: i0.OutputEmitterRef<{
|
|
2498
|
+
row: T;
|
|
2499
|
+
key: string;
|
|
2500
|
+
expanded: boolean;
|
|
2501
|
+
}>;
|
|
2502
|
+
protected readonly emptyTemplate: i0.Signal<MonkeyTableEmptyDirective | undefined>;
|
|
2503
|
+
protected readonly loadingTemplate: i0.Signal<MonkeyTableLoadingDirective | undefined>;
|
|
2504
|
+
protected readonly rowDetailTemplate: i0.Signal<MonkeyTableRowDetailDirective<any> | undefined>;
|
|
2505
|
+
protected readonly plainScroller: i0.Signal<ElementRef<HTMLElement> | undefined>;
|
|
2506
|
+
protected readonly headClip: i0.Signal<ElementRef<HTMLElement> | undefined>;
|
|
2507
|
+
protected readonly virtualViewport: i0.Signal<CdkVirtualScrollViewport | undefined>;
|
|
2508
|
+
protected readonly scrollTarget: i0.Signal<HTMLElement | null>;
|
|
2509
|
+
private readonly _rowCap;
|
|
2510
|
+
protected readonly bounded: i0.Signal<boolean>;
|
|
2511
|
+
protected readonly virtual: i0.Signal<boolean>;
|
|
2512
|
+
protected readonly effectiveHeight: i0.Signal<string>;
|
|
2513
|
+
protected readonly rowMetrics: i0.Signal<{
|
|
2514
|
+
openIndices: number[];
|
|
2515
|
+
count: number;
|
|
2516
|
+
rowHeight: number;
|
|
2517
|
+
detailHeight: number;
|
|
2518
|
+
}>;
|
|
2519
|
+
protected readonly overflowing: i0.WritableSignal<boolean>;
|
|
2520
|
+
protected readonly atStart: i0.WritableSignal<boolean>;
|
|
2521
|
+
protected readonly atEnd: i0.WritableSignal<boolean>;
|
|
2522
|
+
protected readonly openMenu: i0.WritableSignal<string | null>;
|
|
2523
|
+
protected readonly slots: i0.Signal<Slot<T>[]>;
|
|
2524
|
+
protected readonly pinnedStartWidth: i0.Signal<number>;
|
|
2525
|
+
protected readonly pinnedEndWidth: i0.Signal<number>;
|
|
2526
|
+
protected readonly totalWidth: i0.Signal<number>;
|
|
2527
|
+
protected readonly allSelected: i0.Signal<boolean>;
|
|
2528
|
+
protected readonly someSelected: i0.Signal<boolean>;
|
|
2529
|
+
protected readonly atSelectionLimit: i0.Signal<boolean>;
|
|
2530
|
+
protected readonly hasSelectable: i0.Signal<boolean>;
|
|
2531
|
+
protected readonly rowViews: i0.Signal<RowView<T>[]>;
|
|
2532
|
+
protected readonly renderRows: i0.Signal<RenderRow<T>[]>;
|
|
2533
|
+
protected readonly skeletonRange: i0.Signal<number[]>;
|
|
2534
|
+
protected readonly labels: i0.Signal<{
|
|
2535
|
+
moveLeft: string;
|
|
2536
|
+
moveRight: string;
|
|
2537
|
+
hide: string;
|
|
2538
|
+
pin: string;
|
|
2539
|
+
unpin: string;
|
|
2540
|
+
selectAll: string;
|
|
2541
|
+
detail: string;
|
|
2542
|
+
limit: string;
|
|
2543
|
+
notSelectable: string;
|
|
2544
|
+
empty: string;
|
|
2545
|
+
}>;
|
|
2546
|
+
constructor();
|
|
2547
|
+
private word;
|
|
2548
|
+
private effectivePinned;
|
|
2549
|
+
private schedule;
|
|
2550
|
+
private cancelFrame;
|
|
2551
|
+
private measure;
|
|
2552
|
+
private closeMenuWhenColumnGone;
|
|
2553
|
+
private currentOrder;
|
|
2554
|
+
private currentColumnState;
|
|
2555
|
+
private commitSelection;
|
|
2556
|
+
private applyOrder;
|
|
2557
|
+
private restoreColumnState;
|
|
2558
|
+
ngOnDestroy(): void;
|
|
2559
|
+
protected closeMenu: () => void;
|
|
2560
|
+
protected trackKey: (_index: number, view: RowView<T>) => string;
|
|
2561
|
+
protected toggleMenu(column: Column<T>): void;
|
|
2562
|
+
protected hasMenu(column: Column<T> | null): boolean;
|
|
2563
|
+
protected canHide(column: Column<T>): boolean;
|
|
2564
|
+
protected canReorder(column: Column<T>): boolean;
|
|
2565
|
+
protected canPin(column: Column<T>): boolean;
|
|
2566
|
+
protected isLastColumn(): boolean;
|
|
2567
|
+
protected sortLabels(column: Column<T>): {
|
|
2568
|
+
asc: string;
|
|
2569
|
+
desc: string;
|
|
2570
|
+
};
|
|
2571
|
+
protected ariaSortFor(column: Column<T> | null): string | null;
|
|
2572
|
+
protected isSortedBy(column: Column<T>, direction: SortDirection): boolean;
|
|
2573
|
+
protected sortBy(column: Column<T>, direction: SortDirection): void;
|
|
2574
|
+
protected canMove(column: Column<T>, delta: -1 | 1): boolean;
|
|
2575
|
+
protected move(column: Column<T>, delta: -1 | 1): void;
|
|
2576
|
+
protected hide(column: Column<T>): void;
|
|
2577
|
+
protected togglePin(column: Column<T>): void;
|
|
2578
|
+
protected toggleRow(view: RowView<T>): void;
|
|
2579
|
+
protected toggleAllRows(): void;
|
|
2580
|
+
protected toggleOpen(view: RowView<T>): void;
|
|
2581
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyTableComponent<any>, never>;
|
|
2582
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyTableComponent<any>, "monkey-table", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": true; "isSignal": true; }; "rowLabel": { "alias": "rowLabel"; "required": false; "isSignal": true; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "maxSelected": { "alias": "maxSelected"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "hideable": { "alias": "hideable"; "required": false; "isSignal": true; }; "pinnable": { "alias": "pinnable"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "maxVisibleRows": { "alias": "maxVisibleRows"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "columnOrder": { "alias": "columnOrder"; "required": false; "isSignal": true; }; "columnState": { "alias": "columnState"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "expanded": "expandedChange"; "columnOrder": "columnOrderChange"; "onSortChange": "onSortChange"; "onColumnHidden": "onColumnHidden"; "onColumnStateChange": "onColumnStateChange"; "onSelectionChange": "onSelectionChange"; "onExpandChange": "onExpandChange"; }, ["_columns", "emptyTemplate", "loadingTemplate", "rowDetailTemplate"], ["monkey-pagination-size", "monkey-pagination-label", "monkey-pagination-action"], true, never>;
|
|
1843
2583
|
}
|
|
1844
2584
|
|
|
1845
2585
|
/** ************************
|
|
@@ -1923,35 +2663,6 @@ declare class MonkeyTabsModule {
|
|
|
1923
2663
|
static ɵinj: i0.ɵɵInjectorDeclaration<MonkeyTabsModule>;
|
|
1924
2664
|
}
|
|
1925
2665
|
|
|
1926
|
-
/** ************************
|
|
1927
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
1928
|
-
* This style guide was developed by Monkey Exchange Team
|
|
1929
|
-
* MIT Licence
|
|
1930
|
-
************************* */
|
|
1931
|
-
|
|
1932
|
-
declare class MonkeyToastComponent {
|
|
1933
|
-
private host;
|
|
1934
|
-
message: string | undefined;
|
|
1935
|
-
icon: string | undefined;
|
|
1936
|
-
type: MonkeyToastType;
|
|
1937
|
-
isClosable: boolean;
|
|
1938
|
-
actionLabel: string | undefined;
|
|
1939
|
-
actionIcon: string | undefined;
|
|
1940
|
-
onActionClick: EventEmitter<string>;
|
|
1941
|
-
onClose: EventEmitter<string>;
|
|
1942
|
-
protected _uid: string;
|
|
1943
|
-
protected _id: string;
|
|
1944
|
-
get id(): string;
|
|
1945
|
-
set id(value: string);
|
|
1946
|
-
get class(): string;
|
|
1947
|
-
constructor(host: ElementRef<HTMLElement>);
|
|
1948
|
-
close(): void;
|
|
1949
|
-
onAnimationEnd(event: AnimationEvent): void;
|
|
1950
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyToastComponent, never>;
|
|
1951
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MonkeyToastComponent, "monkey-toast", never, { "message": { "alias": "message"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "type": { "alias": "type"; "required": false; }; "isClosable": { "alias": "isClosable"; "required": false; }; "actionLabel": { "alias": "actionLabel"; "required": false; }; "actionIcon": { "alias": "actionIcon"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "onActionClick": "onActionClick"; "onClose": "onClose"; }, never, never, true, never>;
|
|
1952
|
-
static ngAcceptInputType_isClosable: unknown;
|
|
1953
|
-
}
|
|
1954
|
-
|
|
1955
2666
|
declare class MonkeyToggleComponent {
|
|
1956
2667
|
disabled: boolean;
|
|
1957
2668
|
size: 'lg' | 'md' | 'sm';
|
|
@@ -2316,5 +3027,5 @@ declare const MECX_COUNTRY_ISO_CODE: InjectionToken<string>;
|
|
|
2316
3027
|
declare const MECX_GOOGLE_API_KEY: InjectionToken<string>;
|
|
2317
3028
|
declare function injectTokenWithWarning<T>(token: InjectionToken<T>, name?: string): T | null;
|
|
2318
3029
|
|
|
2319
|
-
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,
|
|
2320
|
-
export type { ActiveFilter, AutocompleteSuggestion, AutocompleteSuggestionType, ComplexFilterCondition, ComplexFilterGroup, ComplexFilterOperator, ComplexFilterResult, FilterBarConfig, FilterBarState, FilterOption, FilterType, GoogleApiPlaces, GoogleApiPlacesAddressComponents, GoogleApiPlacesResponse, MonkeyAlertType, MonkeyAutocompleteData, MonkeyAutocompleteResponse, MonkeyBreadcrumb, MonkeyButtonColor, MonkeyButtonType, MonkeyDownloadButtonChangeEvent, MonkeyInputUploadChangeEvent, MonkeyModalConfirmationConfig, MonkeyModalDefaultConfig, MonkeyPopoverDir, MonkeyPopoverOptions, MonkeySize, MonkeyTableScrollConfig, MonkeyToastPosition, MonkeyToastType, StatusOption, ToastConfig };
|
|
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, MonkeyFilterBarV2Component, 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, ariaSortOf, getCurrencySymbol, indexAtOffset, injectTokenWithWarning, interpolate, mergeOrder, offsetOfIndex, removeKeys, sameColumnState, selectionState, sortByOrder, toPx, toggleKey, totalHeight };
|
|
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, MonkeyFilterBarV2Row, MonkeyFilterMenuItemProperty, MonkeyFilterTriggerVariant, MonkeyInputUploadChangeEvent, MonkeyModalConfirmationConfig, MonkeyModalDefaultConfig, MonkeyPopoverDir, MonkeyPopoverOptions, MonkeyScrollbarOrientation, MonkeyScrollbarSize, MonkeySize, MonkeyTableCellContext, MonkeyTableColumnState, MonkeyTableScrollConfig, MonkeyTableSortKind, MonkeyToastPosition, MonkeyToastType, RowMetrics, SelectionState, SortDirection, SortState, StatusOption, ToastConfig };
|