@itrocks/list 0.4.0 → 0.5.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/build.js +9 -1
- package/cjs/columns.d.ts +2 -1
- package/cjs/columns.js +18 -1
- package/cjs/columns.js.map +1 -1
- package/cjs/feed.html +1 -1
- package/cjs/list.js +8 -1
- package/cjs/list.js.map +1 -1
- package/list.css +1 -1
- package/package.json +1 -1
package/build.js
CHANGED
|
@@ -9,6 +9,14 @@ import { TableLink } from '@itrocks/table/link.js';
|
|
|
9
9
|
import { tableByElement } from '@itrocks/table/table.js';
|
|
10
10
|
import { xTargetCall } from '@itrocks/xtarget/xtarget.js';
|
|
11
11
|
build('article[data-action="list"] > form > table.objects', table => {
|
|
12
|
+
const tableColumnReorder = new TableColumnReorder({ onReorder: () => {
|
|
13
|
+
const columns = table.tHead?.rows[0].querySelectorAll(':scope > th[data-property]');
|
|
14
|
+
const form = table.closest('form');
|
|
15
|
+
if (!columns?.length || !form)
|
|
16
|
+
return;
|
|
17
|
+
const properties = Array.from(columns, column => encodeURIComponent(column.dataset.property ?? ''));
|
|
18
|
+
fetch(form.action + '?columns=' + properties.join(','), { keepalive: true }).catch(error => console.error('Column order save error:', error));
|
|
19
|
+
} });
|
|
12
20
|
const tableLink = new TableLink({
|
|
13
21
|
call: url => xTargetCall(url, 'main'),
|
|
14
22
|
id: (element) => {
|
|
@@ -19,7 +27,7 @@ build('article[data-action="list"] > form > table.objects', table => {
|
|
|
19
27
|
});
|
|
20
28
|
tableByElement(table, {
|
|
21
29
|
plugins: [
|
|
22
|
-
|
|
30
|
+
tableColumnReorder, TableColumnReorderFreeze, TableFeed, TableFreeze, TableFreezeInheritBackground,
|
|
23
31
|
TableFreezeInheritBorder, tableLink
|
|
24
32
|
]
|
|
25
33
|
});
|
package/cjs/columns.d.ts
CHANGED
|
@@ -6,9 +6,10 @@ import { Parameter } from './parameter';
|
|
|
6
6
|
export declare class Columns<T extends object> extends Parameter implements Iterable<ReflectProperty<T>> {
|
|
7
7
|
properties: ReflectProperty<T, keyof T>[];
|
|
8
8
|
[Symbol.iterator](): ArrayIterator<ReflectProperty<T, keyof T>>;
|
|
9
|
-
getParams(
|
|
9
|
+
getParams(request: Request, type: Type<T>): void;
|
|
10
10
|
get length(): number;
|
|
11
11
|
map(callback: (value: ReflectProperty<T>) => any): any[];
|
|
12
|
+
propertiesOf(object: T): ReflectProperty<T, keyof T>[];
|
|
12
13
|
readOptions(options?: Option[]): Option[];
|
|
13
14
|
remove(propertyName: string): void;
|
|
14
15
|
serialize(): (keyof T)[];
|
package/cjs/columns.js
CHANGED
|
@@ -9,7 +9,21 @@ class Columns extends parameter_1.Parameter {
|
|
|
9
9
|
[Symbol.iterator]() {
|
|
10
10
|
return this.properties[Symbol.iterator]();
|
|
11
11
|
}
|
|
12
|
-
getParams(
|
|
12
|
+
getParams(request, type) {
|
|
13
|
+
const data = request.data.columns;
|
|
14
|
+
if (data !== undefined) {
|
|
15
|
+
const propertyNames = (Array.isArray(data) ? data : [data]).flatMap(property => (typeof property === 'string') ? property.split(',') : property);
|
|
16
|
+
if (propertyNames.every((property) => typeof property === 'string')) {
|
|
17
|
+
const reflected = new list_properties_1.ListReflectClass(type).listProperties();
|
|
18
|
+
const reordered = propertyNames.map(propertyName => reflected.find(property => property.name.toString() === propertyName));
|
|
19
|
+
const properties = reordered.filter((property) => !!property);
|
|
20
|
+
if ((propertyNames.length === reflected.length)
|
|
21
|
+
&& (properties.length === reflected.length)
|
|
22
|
+
&& (new Set(properties).size === reflected.length)) {
|
|
23
|
+
this.properties = properties;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
13
27
|
if (!this.length) {
|
|
14
28
|
this.properties = new list_properties_1.ListReflectClass(type).listProperties();
|
|
15
29
|
}
|
|
@@ -20,6 +34,9 @@ class Columns extends parameter_1.Parameter {
|
|
|
20
34
|
map(callback) {
|
|
21
35
|
return this.properties.map(callback);
|
|
22
36
|
}
|
|
37
|
+
propertiesOf(object) {
|
|
38
|
+
return this.properties.map(property => new reflect_1.ReflectProperty(object, property.name));
|
|
39
|
+
}
|
|
23
40
|
readOptions(options = new Array) {
|
|
24
41
|
return options;
|
|
25
42
|
}
|
package/cjs/columns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../src/columns.ts"],"names":[],"mappings":";;;AACA,8DAA2D;AAC3D,8CAAmD;AAGnD,2CAA8C;AAE9C,aAAuC,SAAQ,qBAAS;IAGvD,UAAU,GAAG,IAAI,KAAyB,CAAC;IAE3C,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEhB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC1C,CAAC;IAED,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../src/columns.ts"],"names":[],"mappings":"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"}
|
package/cjs/feed.html
CHANGED
package/cjs/list.js
CHANGED
|
@@ -74,12 +74,19 @@ let List = (() => {
|
|
|
74
74
|
const type = request.type;
|
|
75
75
|
(0, persist_1.load)(this, request.request, type);
|
|
76
76
|
columns.getParams(request.request, type);
|
|
77
|
+
if (request.request.data.columns) {
|
|
78
|
+
(0, persist_2.save)(this, request.request, type);
|
|
79
|
+
return this.htmlResponse('', 204);
|
|
80
|
+
}
|
|
77
81
|
feed.getParams(request.request);
|
|
78
82
|
filter.getParams(request.request);
|
|
79
83
|
sort.getParams(request.request, type);
|
|
80
84
|
(0, persist_2.save)(this, request.request, type);
|
|
81
85
|
const options = feed.readOptions(filter.readOptions(sort.readOptions()));
|
|
82
|
-
const objects = await (0, storage_1.dataSource)().search(type, filter.searchObject(type), options)
|
|
86
|
+
const objects = (await (0, storage_1.dataSource)().search(type, filter.searchObject(type), options)).map(object => ({
|
|
87
|
+
id: object.id,
|
|
88
|
+
properties: columns.propertiesOf(object)
|
|
89
|
+
}));
|
|
83
90
|
if (feed.offset) {
|
|
84
91
|
return this.htmlTemplateResponse({ objects, type }, request, feed.template);
|
|
85
92
|
}
|
package/cjs/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6C;AAE7C,4CAA6C;AAC7C,4CAA6C;AAE7C,0CAA4C;AAC5C,0CAA4C;AAC5C,8CAA8C;AAC9C,uCAAuC;AACvC,iCAAoC;AACpC,qCAAsC;AACtC,uCAAuC;AACvC,uCAAuC;AACvC,iCAAoC;IAIvB,IAAI;4BAFhB,IAAA,aAAI,EAAC,OAAO,EAAE,KAAK,CAAC,EACpB,IAAA,aAAK,EAAC,OAAO,CAAC;;;;sBACsC,eAAM;oBAAd,SAAQ,WAAS;;;;YAA9D,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"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"}
|
package/list.css
CHANGED
package/package.json
CHANGED