ngx-techlify-core 18.73.1 → 18.74.0
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/esm2022/lib/base-model/index.mjs +2 -2
- package/esm2022/lib/base-model/techlify-list/contract/techlify-list.contract.mjs +69 -0
- package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +3 -3
- package/esm2022/lib/file-dropper/file-dropper.component.mjs +3 -1
- package/fesm2022/ngx-techlify-core.mjs +4 -2
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/base-model/index.d.ts +1 -1
- package/lib/base-model/techlify-list/{techlify-list.contract.d.ts → contract/techlify-list.contract.d.ts} +1 -1
- package/package.json +1 -1
- package/esm2022/lib/base-model/techlify-list/techlify-list.contract.mjs +0 -69
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentFixture } from '@angular/core/testing';
|
|
2
|
-
import { TechlifyListComponent } from '
|
|
2
|
+
import { TechlifyListComponent } from '../techlify-list.component';
|
|
3
3
|
export interface TechlifyListContractOptions {
|
|
4
4
|
getFixture: () => ComponentFixture<any>;
|
|
5
5
|
getComponent: () => TechlifyListComponent;
|
package/package.json
CHANGED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { fakeAsync, tick } from '@angular/core/testing';
|
|
2
|
-
export function techlifyListContract(options) {
|
|
3
|
-
describe('TechlifyListComponent Contract', () => {
|
|
4
|
-
it('should pass a service to the base class', () => {
|
|
5
|
-
const component = options.getComponent();
|
|
6
|
-
expect(component.service).toBe(options.getService());
|
|
7
|
-
});
|
|
8
|
-
it('should have a filter form', () => {
|
|
9
|
-
const component = options.getComponent();
|
|
10
|
-
expect(component.filterForm).toBeTruthy();
|
|
11
|
-
});
|
|
12
|
-
it('should call loadData on init', () => {
|
|
13
|
-
const component = options.getComponent();
|
|
14
|
-
spyOn(component, 'loadData');
|
|
15
|
-
component.ngOnInit();
|
|
16
|
-
expect(component.loadData).toHaveBeenCalled();
|
|
17
|
-
});
|
|
18
|
-
it('should patch filters from route on init', () => {
|
|
19
|
-
const component = options.getComponent();
|
|
20
|
-
spyOn(component, 'patchFiltersFromRoute');
|
|
21
|
-
component.ngOnInit();
|
|
22
|
-
expect(component.patchFiltersFromRoute).toHaveBeenCalled();
|
|
23
|
-
});
|
|
24
|
-
it('should reload when filter changes', fakeAsync(() => {
|
|
25
|
-
const component = options.getComponent();
|
|
26
|
-
const filterField = options.filterField ?? 'search';
|
|
27
|
-
if (!component.filterForm?.contains(filterField)) {
|
|
28
|
-
pending(`Filter '${filterField}' does not exist.`);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
spyOn(component, 'reload');
|
|
32
|
-
component.listenFilterChanges();
|
|
33
|
-
component.filterForm.get(filterField)?.setValue('abc');
|
|
34
|
-
tick(501);
|
|
35
|
-
expect(component.reload).toHaveBeenCalled();
|
|
36
|
-
}));
|
|
37
|
-
it('should load next page on scroll', () => {
|
|
38
|
-
const component = options.getComponent();
|
|
39
|
-
component.page = 1;
|
|
40
|
-
component.lastPage = 3;
|
|
41
|
-
component.isWorking = false;
|
|
42
|
-
spyOn(component, 'loadData');
|
|
43
|
-
component.onScroll();
|
|
44
|
-
expect(component.page).toBe(2);
|
|
45
|
-
expect(component.loadData).toHaveBeenCalled();
|
|
46
|
-
});
|
|
47
|
-
it('should not load next page while already loading', () => {
|
|
48
|
-
const component = options.getComponent();
|
|
49
|
-
component.page = 1;
|
|
50
|
-
component.lastPage = 3;
|
|
51
|
-
component.isWorking = true;
|
|
52
|
-
spyOn(component, 'loadData');
|
|
53
|
-
component.onScroll();
|
|
54
|
-
expect(component.loadData).not.toHaveBeenCalled();
|
|
55
|
-
});
|
|
56
|
-
it('should update sort_by filter', () => {
|
|
57
|
-
const component = options.getComponent();
|
|
58
|
-
const control = component.filterForm.get('sort_by');
|
|
59
|
-
if (!control) {
|
|
60
|
-
pending('No sort_by control.');
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
spyOn(control, 'setValue');
|
|
64
|
-
component.sortColumn({ active: 'name', direction: 'asc' });
|
|
65
|
-
expect(control.setValue).toHaveBeenCalledWith('name|ASC');
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbGlzdC5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYmFzZS1tb2RlbC90ZWNobGlmeS1saXN0L3RlY2hsaWZ5LWxpc3QuY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQW9CLE1BQU0sdUJBQXVCLENBQUM7QUFVMUUsTUFBTSxVQUFVLG9CQUFvQixDQUNoQyxPQUFvQztJQUVwQyxRQUFRLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQzVDLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7WUFDL0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE1BQU0sQ0FBRSxTQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7WUFDakMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsU0FBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNuQyxTQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNsRCxD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LENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDLENBQUMsQ0FBQztBQUVQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYWtlQXN5bmMsIHRpY2ssIENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi90ZWNobGlmeS1saXN0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVjaGxpZnlMaXN0Q29udHJhY3RPcHRpb25zIHtcbiAgICBnZXRGaXh0dXJlOiAoKSA9PiBDb21wb25lbnRGaXh0dXJlPGFueT47XG4gICAgZ2V0Q29tcG9uZW50OiAoKSA9PiBUZWNobGlmeUxpc3RDb21wb25lbnQ7XG4gICAgZ2V0U2VydmljZTogKCkgPT4gYW55O1xuICAgIGZpbHRlckZpZWxkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVjaGxpZnlMaXN0Q29udHJhY3QoXG4gICAgb3B0aW9uczogVGVjaGxpZnlMaXN0Q29udHJhY3RPcHRpb25zXG4pOiB2b2lkIHtcbiAgICBkZXNjcmliZSgnVGVjaGxpZnlMaXN0Q29tcG9uZW50IENvbnRyYWN0JywgKCkgPT4ge1xuICAgICAgICBpdCgnc2hvdWxkIHBhc3MgYSBzZXJ2aWNlIHRvIHRoZSBiYXNlIGNsYXNzJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gb3B0aW9ucy5nZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgIGV4cGVjdCgoY29tcG9uZW50IGFzIGFueSkuc2VydmljZSkudG9CZShvcHRpb25zLmdldFNlcnZpY2UoKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgaGF2ZSBhIGZpbHRlciBmb3JtJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gb3B0aW9ucy5nZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgIGV4cGVjdChjb21wb25lbnQuZmlsdGVyRm9ybSkudG9CZVRydXRoeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGNhbGwgbG9hZERhdGEgb24gaW5pdCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IG9wdGlvbnMuZ2V0Q29tcG9uZW50KCk7XG4gICAgICAgICAgICBzcHlPbihjb21wb25lbnQgYXMgYW55LCAnbG9hZERhdGEnKTtcbiAgICAgICAgICAgIChjb21wb25lbnQgYXMgYW55KS5uZ09uSW5pdCgpO1xuICAgICAgICAgICAgZXhwZWN0KGNvbXBvbmVudC5sb2FkRGF0YSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIHBhdGNoIGZpbHRlcnMgZnJvbSByb3V0ZSBvbiBpbml0JywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gb3B0aW9ucy5nZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHNweU9uKGNvbXBvbmVudCBhcyBhbnksICdwYXRjaEZpbHRlcnNGcm9tUm91dGUnKTtcbiAgICAgICAgICAgIChjb21wb25lbnQgYXMgYW55KS5uZ09uSW5pdCgpO1xuICAgICAgICAgICAgZXhwZWN0KGNvbXBvbmVudC5wYXRjaEZpbHRlcnNGcm9tUm91dGUpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCByZWxvYWQgd2hlbiBmaWx0ZXIgY2hhbmdlcycsIGZha2VBc3luYygoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBvcHRpb25zLmdldENvbXBvbmVudCgpO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmllbGQgPSBvcHRpb25zLmZpbHRlckZpZWxkID8/ICdzZWFyY2gnO1xuICAgICAgICAgICAgaWYgKCFjb21wb25lbnQuZmlsdGVyRm9ybT8uY29udGFpbnMoZmlsdGVyRmllbGQpKSB7XG4gICAgICAgICAgICAgICAgcGVuZGluZyhgRmlsdGVyICcke2ZpbHRlckZpZWxkfScgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3B5T24oY29tcG9uZW50IGFzIGFueSwgJ3JlbG9hZCcpO1xuICAgICAgICAgICAgY29tcG9uZW50Lmxpc3RlbkZpbHRlckNoYW5nZXMoKTtcbiAgICAgICAgICAgIGNvbXBvbmVudC5maWx0ZXJGb3JtLmdldChmaWx0ZXJGaWVsZCk/LnNldFZhbHVlKCdhYmMnKTtcbiAgICAgICAgICAgIHRpY2soNTAxKTtcbiAgICAgICAgICAgIGV4cGVjdChjb21wb25lbnQucmVsb2FkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGl0KCdzaG91bGQgbG9hZCBuZXh0IHBhZ2Ugb24gc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gb3B0aW9ucy5nZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgIGNvbXBvbmVudC5wYWdlID0gMTtcbiAgICAgICAgICAgIGNvbXBvbmVudC5sYXN0UGFnZSA9IDM7XG4gICAgICAgICAgICBjb21wb25lbnQuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgICAgICBzcHlPbihjb21wb25lbnQgYXMgYW55LCAnbG9hZERhdGEnKTtcbiAgICAgICAgICAgIGNvbXBvbmVudC5vblNjcm9sbCgpO1xuICAgICAgICAgICAgZXhwZWN0KGNvbXBvbmVudC5wYWdlKS50b0JlKDIpO1xuICAgICAgICAgICAgZXhwZWN0KGNvbXBvbmVudC5sb2FkRGF0YSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIG5vdCBsb2FkIG5leHQgcGFnZSB3aGlsZSBhbHJlYWR5IGxvYWRpbmcnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBvcHRpb25zLmdldENvbXBvbmVudCgpO1xuICAgICAgICAgICAgY29tcG9uZW50LnBhZ2UgPSAxO1xuICAgICAgICAgICAgY29tcG9uZW50Lmxhc3RQYWdlID0gMztcbiAgICAgICAgICAgIGNvbXBvbmVudC5pc1dvcmtpbmcgPSB0cnVlO1xuICAgICAgICAgICAgc3B5T24oY29tcG9uZW50IGFzIGFueSwgJ2xvYWREYXRhJyk7XG4gICAgICAgICAgICBjb21wb25lbnQub25TY3JvbGwoKTtcbiAgICAgICAgICAgIGV4cGVjdChjb21wb25lbnQubG9hZERhdGEpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgdXBkYXRlIHNvcnRfYnkgZmlsdGVyJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gb3B0aW9ucy5nZXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBjb21wb25lbnQuZmlsdGVyRm9ybS5nZXQoJ3NvcnRfYnknKTtcbiAgICAgICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgICAgIHBlbmRpbmcoJ05vIHNvcnRfYnkgY29udHJvbC4nKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcHlPbihjb250cm9sLCAnc2V0VmFsdWUnKTtcbiAgICAgICAgICAgIGNvbXBvbmVudC5zb3J0Q29sdW1uKHsgYWN0aXZlOiAnbmFtZScsIGRpcmVjdGlvbjogJ2FzYycgfSk7XG4gICAgICAgICAgICBleHBlY3QoY29udHJvbC5zZXRWYWx1ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ25hbWV8QVNDJyk7XG4gICAgICAgIH0pO1xuXG4gICAgfSk7XG5cbn0iXX0=
|