@ruc-lib/multi-select 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,97 @@
1
+ # ruclib-multi-select
2
+
3
+ Multi Select box gives user flexibility to select multiple or single select options. It also used as parent child selection. Options are dynamic. Below points are configurable.
4
+
5
+ # Features
6
+ - Can be a single or multi select.
7
+ - Set a limit on selections
8
+ - Disable the whole select box at once.
9
+ - Can change appearance
10
+ - Maximum height of dropdown box.
11
+ - Maximum height of options box.
12
+ - Sort element by enabling sortBy.
13
+ - Can customize the theme.
14
+
15
+ # Installation guide
16
+
17
+ # Install complete library
18
+
19
+ `npm install @uxpractice/ruc-lib`
20
+
21
+ # Install individual component
22
+
23
+ If users only need the multi select component, they can install it separately
24
+ `npm install @ruc-lib/multi-select`
25
+
26
+ # Usage
27
+
28
+ # import required modules
29
+
30
+ for library
31
+ `import { RuclibMultiSelectModule } from '@uxpractice/ruc-lib/multi-select'`
32
+
33
+ for seperate package
34
+ `import { RuclibMultiSelectModule } from '@ruc-lib/multi-select'`
35
+
36
+ # use component selector
37
+
38
+ ```
39
+ <uxp-ruclib-multi-select [dataSource]="dataSourceForMultiSelectData" [rucInputData]="inputObjectDataMulti" [customTheme]="customTheme" (rucEvent)="passEvent($event)"></uxp-ruclib-multi-select>
40
+ ```
41
+
42
+ # Input and Output
43
+
44
+ # Inputs
45
+ dataSource -> It is data to be passed in the multi-select component.
46
+
47
+ rucInputData -> It is the configuration to be passed in the multi-select component.
48
+
49
+ customTheme -> It is the name of the theme.
50
+
51
+ # Output
52
+
53
+ rucEvent -> is the event which will be fired when selection changes happens in multi-select.
54
+
55
+ # rucInputData (sample object)
56
+
57
+ # Detail definition of the each property can be found in type definition file.
58
+
59
+ ```
60
+ dataSourceForMultiSelectData = {
61
+ singleSelection: false,
62
+ label: 'Cities',
63
+ showSelectAll: true,
64
+ showSelected: true,
65
+ appearance: 'outline',
66
+ scroll: true,
67
+ placeholder: 'Search or select from dropdown',
68
+ //limit : 5,
69
+ maxDropdownHeight: 200 /** height in px */,
70
+ // inputbox properties
71
+ // width: 100,
72
+ /** width in % */
73
+ maxHeight: 150 /** width in px */,
74
+ disabled: false,
75
+ //sort object
76
+ sortBy: 'id',
77
+ sortOrder: 'desc',
78
+ };
79
+ ```
80
+
81
+ # rucInputData (sample object)
82
+
83
+ ```
84
+ inputObjectDataMulti = {
85
+ { text: 'Afghanistan', id: 'AF', isDisable: true },
86
+ { text: 'Åland Islands', id: 'AX', isDisable: false },
87
+ { text: 'Albania', id: 'AL', isDisable: false },
88
+ { text: 'Algeria', id: 'DZ', isDisable: false },
89
+ }
90
+ ```
91
+
92
+
93
+ # Contribution
94
+ Contributions are welcome! Feel free to open issues or pull requests for any enhancements or fixes.
95
+
96
+ # Acknowledgements
97
+ Thank you for choosing the Multi Select Component Library. If you have any feedback or suggestions, please let us know!
@@ -0,0 +1,5 @@
1
+ export * from './lib/ruclib-multi-select.module';
2
+ export * from './lib/ruclib-multi-select/ruclib-multi-select.component';
3
+ export * from './lib/model/ruc-multi-select.model';
4
+ export * from './lib/interfaces/multiSelectDefault';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3J1Y2xpYi1tdWx0aS1zZWxlY3QubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcnVjbGliLW11bHRpLXNlbGVjdC9ydWNsaWItbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3J1Yy1tdWx0aS1zZWxlY3QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL211bHRpU2VsZWN0RGVmYXVsdCc7XHJcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { animate, query, sequence, stagger, style, transition, trigger } from "@angular/animations";
2
+ export const DropDownAnimation = trigger("dropDownMenu", [
3
+ transition(":enter", [
4
+ style({ height: 0, overflow: "hidden" }),
5
+ query(".option", [
6
+ style({ opacity: 0, transform: "translateY(-50px)" })
7
+ ]),
8
+ sequence([
9
+ animate("400ms", style({ height: "*" })),
10
+ query(".option", [
11
+ stagger(50, [
12
+ animate("200ms ease", style({ opacity: 1, transform: "none" }))
13
+ ])
14
+ ])
15
+ ])
16
+ ]),
17
+ transition(":leave", [
18
+ style({ height: "*", overflow: "hidden" }),
19
+ query(".option", [style({ opacity: 1, transform: "none" })]),
20
+ sequence([
21
+ query(".option", [
22
+ stagger(-10, [
23
+ animate("400ms ease", style({ opacity: 0, transform: "translateY(-50px)" }))
24
+ ])
25
+ ]),
26
+ animate("400ms", style({ height: 0 }))
27
+ ])
28
+ ])
29
+ ]);
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYW5pbWF0aW9ucy9hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxPQUFPLEVBQ1AsS0FBSyxFQUNMLFFBQVEsRUFDUixPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFO0lBQ3ZELFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDbkIsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDeEMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNmLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUM7U0FDdEQsQ0FBQztRQUNGLFFBQVEsQ0FBQztZQUNQLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEMsS0FBSyxDQUFDLFNBQVMsRUFBRTtnQkFDZixPQUFPLENBQUMsRUFBRSxFQUFFO29CQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDaEUsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQztJQUVGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDbkIsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDMUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RCxRQUFRLENBQUM7WUFDUCxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDWCxPQUFPLENBQ0wsWUFBWSxFQUNaLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FDdEQ7aUJBQ0YsQ0FBQzthQUNILENBQUM7WUFDRixPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDLENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIGFuaW1hdGUsXHJcbiAgICBxdWVyeSxcclxuICAgIHNlcXVlbmNlLFxyXG4gICAgc3RhZ2dlcixcclxuICAgIHN0eWxlLFxyXG4gICAgdHJhbnNpdGlvbixcclxuICAgIHRyaWdnZXJcclxuICB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbiAgXHJcbiAgZXhwb3J0IGNvbnN0IERyb3BEb3duQW5pbWF0aW9uID0gdHJpZ2dlcihcImRyb3BEb3duTWVudVwiLCBbXHJcbiAgICB0cmFuc2l0aW9uKFwiOmVudGVyXCIsIFtcclxuICAgICAgc3R5bGUoeyBoZWlnaHQ6IDAsIG92ZXJmbG93OiBcImhpZGRlblwiIH0pLFxyXG4gICAgICBxdWVyeShcIi5vcHRpb25cIiwgW1xyXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVkoLTUwcHgpXCIgfSlcclxuICAgICAgXSksXHJcbiAgICAgIHNlcXVlbmNlKFtcclxuICAgICAgICBhbmltYXRlKFwiNDAwbXNcIiwgc3R5bGUoeyBoZWlnaHQ6IFwiKlwiIH0pKSxcclxuICAgICAgICBxdWVyeShcIi5vcHRpb25cIiwgW1xyXG4gICAgICAgICAgc3RhZ2dlcig1MCwgW1xyXG4gICAgICAgICAgICBhbmltYXRlKFwiMjAwbXMgZWFzZVwiLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogXCJub25lXCIgfSkpXHJcbiAgICAgICAgICBdKVxyXG4gICAgICAgIF0pXHJcbiAgICAgIF0pXHJcbiAgICBdKSxcclxuICBcclxuICAgIHRyYW5zaXRpb24oXCI6bGVhdmVcIiwgW1xyXG4gICAgICBzdHlsZSh7IGhlaWdodDogXCIqXCIsIG92ZXJmbG93OiBcImhpZGRlblwiIH0pLFxyXG4gICAgICBxdWVyeShcIi5vcHRpb25cIiwgW3N0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiBcIm5vbmVcIiB9KV0pLFxyXG4gICAgICBzZXF1ZW5jZShbXHJcbiAgICAgICAgcXVlcnkoXCIub3B0aW9uXCIsIFtcclxuICAgICAgICAgIHN0YWdnZXIoLTEwLCBbXHJcbiAgICAgICAgICAgIGFuaW1hdGUoXHJcbiAgICAgICAgICAgICAgXCI0MDBtcyBlYXNlXCIsXHJcbiAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtNTBweClcIiB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICBdKVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGFuaW1hdGUoXCI0MDBtc1wiLCBzdHlsZSh7IGhlaWdodDogMCB9KSlcclxuICAgICAgXSlcclxuICAgIF0pXHJcbiAgXSk7XHJcbiAgIl19
@@ -0,0 +1,31 @@
1
+ import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ClickOutsideDirective {
4
+ constructor(_elementRef) {
5
+ this._elementRef = _elementRef;
6
+ this.clickOutside = new EventEmitter();
7
+ }
8
+ onClick(event, targetElement) {
9
+ if (!targetElement) {
10
+ return;
11
+ }
12
+ const clickedInside = this._elementRef.nativeElement.contains(targetElement);
13
+ if (!clickedInside) {
14
+ this.clickOutside.emit(event);
15
+ }
16
+ }
17
+ }
18
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event,$event.target)" } }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClickOutsideDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: '[clickOutside]'
24
+ }]
25
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { clickOutside: [{
26
+ type: Output
27
+ }], onClick: [{
28
+ type: HostListener,
29
+ args: ['document:click', ['$event', '$event.target']]
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2tPdXRzaWRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGlyZWN0aXZlcy9jbGlja091dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUt4RixNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBSXBDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUhyRCxDQUFDO0lBTU0sT0FBTyxDQUFDLEtBQWlCLEVBQUUsYUFBMEI7UUFDeEQsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztJQUNMLENBQUM7O21IQWpCUSxxQkFBcUI7dUdBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzdCO2lHQU1VLFlBQVk7c0JBRGxCLE1BQU07Z0JBSUEsT0FBTztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuICAgIFxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2NsaWNrT3V0c2lkZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGlja091dHNpZGVEaXJlY3RpdmUge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNsaWNrT3V0c2lkZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50JywgJyRldmVudC50YXJnZXQnXSlcclxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGFyZ2V0RWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xyXG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsaWNrT3V0c2lkZS5lbWl0KGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlTZWxlY3REZWZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9pbnRlcmZhY2VzL211bHRpU2VsZWN0RGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0Q29uZmlnIHtcclxuICAgIC8qKlxyXG4gICAgICogT1B0aW9uYWxcclxuICAgICAqIFZhbHVlcyA6LSB0cnVlICwgZmFsc2VcclxuICAgICAqL1xyXG4gICAgc2luZ2xlU2VsZWN0aW9uOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFuZGF0b3J5LCBcclxuICAgICAqIHZhbHVlOiBhbnkgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWwgXHJcbiAgICAgKiB2YWx1ZSA6dHJ1ZSBmYWxzZVxyXG4gICAgICovXHJcbiAgICBzaG93U2VsZWN0QWxsPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICogT3B0aW9uYWwgXHJcbiAgICAqIHZhbHVlIDp0cnVlIGZhbHNlXHJcbiAgICAqL1xyXG4gICAgc2hvd1NlbGVjdGVkPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbmFsIFxyXG4gICAgICogXHJcbiAgICAgKi9cclxuICAgIGFwcGVhcmFuY2U/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25hbCBcclxuICAgICAqIFxyXG4gICAgICovXHJcbiAgICBzY3JvbGw/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWwgXHJcbiAgICAgKiBcclxuICAgICAqL1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25hbCBcclxuICAgICAqIFxyXG4gICAgICovXHJcbiAgICBsaW1pdD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbmFsIFxyXG4gICAgICogXHJcbiAgICAgKi9cclxuICAgIG1heERyb3Bkb3duSGVpZ2h0Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWwgXHJcbiAgICAgKiBcclxuICAgICAqL1xyXG4gICAgc29ydEJ5Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWxcclxuICAgICAqL1xyXG4gICAgc29ydE9yZGVyPzogc3RyaW5nO1xyXG4gICAgLyoqXHJcbiAgICAgICAgKiBPcHRpb25hbFxyXG4gICAgICAgICovXHJcbiAgICBtYXhIZWlnaHQ/OiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAgICAqIE9wdGlvbmFsXHJcbiAgICAgICAgKi9cclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ export class ListItem {
2
+ constructor(data) {
3
+ this.id = data.id;
4
+ this.text = data.text;
5
+ this.isDisabled = data.isDisabled;
6
+ this.icon = data.icon;
7
+ this.childItem = data.childItem;
8
+ this.grouped = data.grouped;
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjLW11bHRpLXNlbGVjdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWwvcnVjLW11bHRpLXNlbGVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQU9uQixZQUFvQixJQUFTO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2xDLENBQUM7Q0FDQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBMaXN0SXRlbSB7XHJcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICBpY29uPyA6IHN0cmluZztcclxuICAgIGNoaWxkSXRlbT8gOiBhbnk7XHJcbiAgICBncm91cGVkPyA6IGFueTtcclxuICBwdWJsaWMgY29uc3RydWN0b3IgKGRhdGE6IGFueSl7XHJcbiAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQ7XHJcbiAgICAgICAgdGhpcy50ZXh0ID0gZGF0YS50ZXh0O1xyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGRhdGEuaXNEaXNhYmxlZDtcclxuICAgICAgICB0aGlzLmljb24gPSBkYXRhLmljb247XHJcbiAgICAgICAgdGhpcy5jaGlsZEl0ZW0gPSBkYXRhLmNoaWxkSXRlbTtcclxuICAgICAgICB0aGlzLmdyb3VwZWQgPSBkYXRhLmdyb3VwZWQ7XHJcbiAgfVxyXG4gIH0iXX0=
@@ -0,0 +1,28 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FilterPipe {
4
+ transform(items, searchText, key) {
5
+ if (!items)
6
+ return [];
7
+ if (!searchText)
8
+ return items;
9
+ searchText = searchText.toLowerCase();
10
+ return items.filter(it => {
11
+ if (!key) {
12
+ return it.toLowerCase().includes(searchText);
13
+ }
14
+ else {
15
+ return it[key].toLowerCase().includes(searchText);
16
+ }
17
+ });
18
+ }
19
+ }
20
+ FilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
21
+ FilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FilterPipe, name: "filter" });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterPipe, decorators: [{
23
+ type: Pipe,
24
+ args: [{
25
+ name: 'filter'
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BpcGVzL2ZpbHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUlwRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixTQUFTLENBQUMsS0FBWSxFQUFFLFVBQWtCLEVBQUUsR0FBVztRQUNyRCxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDOUIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdkIsSUFBRyxDQUFDLEdBQUcsRUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDOUM7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ25EO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3R0FaVSxVQUFVO3NHQUFWLFVBQVU7NEZBQVYsVUFBVTtrQkFIdEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdmaWx0ZXInXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSwgc2VhcmNoVGV4dDogc3RyaW5nLCBrZXk/OnN0cmluZyk6IGFueVtdIHtcclxuICAgIGlmICghaXRlbXMpIHJldHVybiBbXTtcclxuICAgIGlmICghc2VhcmNoVGV4dCkgcmV0dXJuIGl0ZW1zO1xyXG4gICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKTtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXQgPT4ge1xyXG4gICAgICBpZigha2V5KXtcclxuICAgICAgICByZXR1cm4gaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRba2V5XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,38 @@
1
+ import { Injectable, Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SortPipe {
4
+ transform(value, sortOrder = 'asc', sortKey = 'text') {
5
+ sortOrder = sortOrder && sortOrder.toLowerCase();
6
+ if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc'))
7
+ return value;
8
+ let numberArray = [];
9
+ let stringArray = [];
10
+ numberArray = value
11
+ .filter((item) => typeof item[sortKey] === 'number')
12
+ .sort((a, b) => a[sortKey] - b[sortKey]);
13
+ stringArray = value
14
+ .filter((item) => typeof item[sortKey] === 'string')
15
+ .sort((a, b) => {
16
+ if (a[sortKey] < b[sortKey])
17
+ return -1;
18
+ else if (a[sortKey] > b[sortKey])
19
+ return 1;
20
+ else
21
+ return 0;
22
+ });
23
+ const sorted = numberArray.concat(stringArray);
24
+ return sortOrder === 'asc' ? sorted : sorted.reverse();
25
+ }
26
+ }
27
+ SortPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
28
+ SortPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SortPipe, name: "sort" });
29
+ SortPipe.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SortPipe });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SortPipe, decorators: [{
31
+ type: Injectable
32
+ }, {
33
+ type: Pipe,
34
+ args: [{
35
+ name: 'sort',
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9waXBlcy9zb3J0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVFoRSxNQUFNLE9BQU8sUUFBUTtJQUNuQixTQUFTLENBQ1AsS0FBWSxFQUNaLFlBQWdDLEtBQUssRUFDckMsT0FBTyxHQUFHLE1BQU07UUFFaEIsU0FBUyxHQUFHLFNBQVMsSUFBSyxTQUFTLENBQUMsV0FBVyxFQUFVLENBQUM7UUFFMUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLElBQUksU0FBUyxLQUFLLE1BQU0sQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTFFLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsV0FBVyxHQUFHLEtBQUs7YUFDaEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7YUFDbkQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzNDLFdBQVcsR0FBRyxLQUFLO2FBQ2hCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDO2FBQ25ELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDbEMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQzs7Z0JBQ3RDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQyxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pELENBQUM7O3NHQXpCVSxRQUFRO29HQUFSLFFBQVE7MEdBQVIsUUFBUTs0RkFBUixRQUFRO2tCQUpwQixVQUFVOztrQkFDVixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgU29ydE9yZGVyID0gJ2FzYycgfCAnZGVzYyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc29ydCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTb3J0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBhbnlbXSxcclxuICAgIHNvcnRPcmRlcjogU29ydE9yZGVyIHwgc3RyaW5nID0gJ2FzYycsXHJcbiAgICBzb3J0S2V5ID0gJ3RleHQnXHJcbiAgKTogYW55IHtcclxuICAgIHNvcnRPcmRlciA9IHNvcnRPcmRlciAmJiAoc29ydE9yZGVyLnRvTG93ZXJDYXNlKCkgYXMgYW55KTtcclxuXHJcbiAgICBpZiAoIXZhbHVlIHx8IChzb3J0T3JkZXIgIT09ICdhc2MnICYmIHNvcnRPcmRlciAhPT0gJ2Rlc2MnKSkgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgIGxldCBudW1iZXJBcnJheSA9IFtdO1xyXG4gICAgbGV0IHN0cmluZ0FycmF5ID0gW107XHJcbiAgICBudW1iZXJBcnJheSA9IHZhbHVlXHJcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHR5cGVvZiBpdGVtW3NvcnRLZXldID09PSAnbnVtYmVyJylcclxuICAgICAgLnNvcnQoKGEsIGIpID0+IGFbc29ydEtleV0gLSBiW3NvcnRLZXldKTtcclxuICAgIHN0cmluZ0FycmF5ID0gdmFsdWVcclxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gdHlwZW9mIGl0ZW1bc29ydEtleV0gPT09ICdzdHJpbmcnKVxyXG4gICAgICAuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIGlmIChhW3NvcnRLZXldIDwgYltzb3J0S2V5XSkgcmV0dXJuIC0xO1xyXG4gICAgICAgIGVsc2UgaWYgKGFbc29ydEtleV0gPiBiW3NvcnRLZXldKSByZXR1cm4gMTtcclxuICAgICAgICBlbHNlIHJldHVybiAwO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBjb25zdCBzb3J0ZWQgPSBudW1iZXJBcnJheS5jb25jYXQoc3RyaW5nQXJyYXkpO1xyXG4gICAgcmV0dXJuIHNvcnRPcmRlciA9PT0gJ2FzYycgPyBzb3J0ZWQgOiBzb3J0ZWQucmV2ZXJzZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=