@one-grid-core/angular 0.5.0 → 0.5.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 +3 -0
- package/esm2022/lib/core/instants/one-grid-api.class.mjs +60 -1
- package/esm2022/lib/core/models/one-grid-types.model.mjs +1 -1
- package/esm2022/lib/core/services/one-grid-row.service.mjs +10 -1
- package/fesm2022/one-grid-core-angular.mjs +68 -0
- package/fesm2022/one-grid-core-angular.mjs.map +1 -1
- package/lib/core/instants/one-grid-api.class.d.ts +13 -1
- package/lib/core/models/one-grid-types.model.d.ts +19 -0
- package/lib/core/services/one-grid-row.service.d.ts +7 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtdHlwZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvbW9kZWxzL29uZS1ncmlkLXR5cGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBPbmVHcmlkQXBpIH0gZnJvbSBcIi4uL2luc3RhbnRzL29uZS1ncmlkLWFwaS5jbGFzc1wiO1xuaW1wb3J0IHR5cGUgeyBPbmVSb3dOb2RlIH0gZnJvbSBcIi4uL2luc3RhbnRzL29uZS1yb3ctbm9kZS5jbGFzc1wiO1xuaW1wb3J0IHR5cGUgeyBPbmVDb2x1bW5EZWYsIE9uZUdyb3VwQ29sdW1uRGVmIH0gZnJvbSBcIi4vb25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWxcIjtcbmltcG9ydCB0eXBlIHsgUm93U2VsZWN0aW9uTW9kZSB9IGZyb20gXCIuL29uZS1ldmVudC10eXBlcy5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVEZXRhaWxDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tIFwiLi9vbmUtbWFzdGVyLWRldGFpbC5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tIFwiLi9vbmUtdHJlZS1kYXRhLm1vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIE9uZUdyaWRUeXBlID0gJ3NpbXBsZScgfCAnbWFzdGVyJyB8ICdkZXRhaWwnIHwgJ3RyZWUnIHwgbnVsbDtcblxuLyoqXG4gKiBFdmVyeXRoaW5nIGBPbmVHcmlkQXBpLmluaXRgIG5lZWRzIHRvIHN0YW5kIGEgZ3JpZCB1cC5cbiAqXG4gKiBBbiBvcHRpb25zIG9iamVjdCByYXRoZXIgdGhhbiBhIHBvc2l0aW9uYWwgbGlzdDogdGhlIHByZXZpb3VzIHNpZ25hdHVyZSB0b29rXG4gKiB0ZW4gcG9zaXRpb25hbCBhcmd1bWVudHMsIGZvdXIgb2YgdGhlbSBvcHRpb25hbCBhbmQgdHdvIG9mIHRoZW0gYm9vbGVhbnMsIHNvXG4gKiBhIGNhbGwgc2l0ZSB3YXMgdW5yZWFkYWJsZSBhbmQgYWRkaW5nIGFuIG9wdGlvbiBtZWFudCB0b3VjaGluZyBldmVyeSBjYWxsZXIuXG4gKlxuICogYE9uZUdyaWRDb21wb25lbnRgIGNhbGxzIHRoaXMgZnJvbSBgbmdPbkluaXRgLiBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmVHcmlkSW5pdE9wdGlvbnM8VCA9IGFueT4ge1xuICAgIC8qKiBXaGljaCByb2xlIHRoaXMgaW5zdGFuY2UgcGxheXMuIGBPbmVHcmlkQ29tcG9uZW50YCBkZXJpdmVzIGl0IGZyb20gaXRzIGlucHV0cy4gKi9cbiAgICBncmlkVHlwZTogT25lR3JpZFR5cGU7XG4gICAgLyoqIENvbHVtbiBkZWZpbml0aW9ucywgYmVmb3JlIGBkZWZhdWx0Q29sdW1uRGVmYCBpcyBtZXJnZWQgaW4uICovXG4gICAgY29sdW1uRGVmczogT25lQ29sdW1uRGVmPFQ+W107XG4gICAgLyoqIE1lcmdlZCBpbnRvIGV2ZXJ5IGNvbHVtbiBkZWZpbml0aW9uLiAqL1xuICAgIGRlZmF1bHRDb2x1bW5EZWY/OiBPbmVDb2x1bW5EZWY8VD47XG4gICAgLyoqIEhlYWRlciBncm91cHMuIENvbHVtbnMgam9pbiBvbmUgYnkgYGdyb3VwSWRgLiAqL1xuICAgIGdyb3VwQ29sdW1uRGVmcz86IE9uZUdyb3VwQ29sdW1uRGVmW107XG4gICAgLyoqIFBhc3NlZCB0byByZW5kZXJlcnMsIGdldHRlcnMgYW5kIHByZWRpY2F0ZXM7IGBjb21wb25lbnRQYXJlbnQuZ2V0Um93SWRgIGlzIHJlYWQgZnJvbSBpdC4gKi9cbiAgICBjb250ZXh0PzogYW55O1xuICAgIC8qKiBgbnVsbGAgZGlzYWJsZXMgcm93IHNlbGVjdGlvbiBlbnRpcmVseS4gUmVhZCBvbmNlLCBoZXJlLiAqL1xuICAgIHJvd1NlbGVjdGlvbj86IFJvd1NlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFR1cm5zIG9uIHRoZSBuZXN0ZWQgZGV0YWlsIGdyaWQuIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGB0cmVlRGF0YWAuICovXG4gICAgbWFzdGVyRGV0YWlsPzogYm9vbGVhbjtcbiAgICAvKiogRGV0YWlsIGdyaWQgb3B0aW9ucyBwbHVzIGBnZXREZXRhaWxSb3dEYXRhYC4gUmVxdWlyZWQgd2hlbiBgbWFzdGVyRGV0YWlsYCBpcyBvbi4gKi9cbiAgICBkZXRhaWxDZWxsUmVuZGVyZXJQYXJhbXM/OiBPbmVEZXRhaWxDZWxsUmVuZGVyZXJQYXJhbXM7XG4gICAgLyoqIFJlbmRlciBhIGNvbXBvbmVudCBpbiB0aGUgZGV0YWlsIGFyZWEgaW5zdGVhZCBvZiBhIG5lc3RlZCBncmlkLiAqL1xuICAgIGRldGFpbFJlbmRlcmVyQ29tcG9uZW50PzogVHlwZTxPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQ+O1xuICAgIC8qKiBUdXJucyBvbiBoaWVyYXJjaGljYWwgcm93IGJ1aWxkaW5nLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgbWFzdGVyRGV0YWlsYC4gKi9cbiAgICB0cmVlRGF0YT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lR3JpZFJlYWR5RXZlbnQ8VCA9IGFueT4ge1xuICAgIGFwaTogT25lR3JpZEFwaTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VCA9IGFueT4ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgZGF0YTogVDtcbiAgICBhcGk/OiBPbmVHcmlkQXBpPFQ+O1xuICAgIGNvbHVtbj86IE9uZUNvbHVtbkRlZjtcbiAgICBub2RlOiBPbmVSb3dOb2RlPFQ+O1xuICAgIG1hc3Rlck5vZGU/OiBPbmVSb3dOb2RlPFQ+O1xuICAgIGdyaWRUeXBlPzogT25lR3JpZFR5cGU7XG4gICAgc2VsZWN0ZWQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtdHlwZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvbW9kZWxzL29uZS1ncmlkLXR5cGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBPbmVHcmlkQXBpIH0gZnJvbSBcIi4uL2luc3RhbnRzL29uZS1ncmlkLWFwaS5jbGFzc1wiO1xuaW1wb3J0IHR5cGUgeyBPbmVSb3dOb2RlIH0gZnJvbSBcIi4uL2luc3RhbnRzL29uZS1yb3ctbm9kZS5jbGFzc1wiO1xuaW1wb3J0IHR5cGUgeyBPbmVDb2x1bW5EZWYsIE9uZUdyb3VwQ29sdW1uRGVmIH0gZnJvbSBcIi4vb25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWxcIjtcbmltcG9ydCB0eXBlIHsgUm93U2VsZWN0aW9uTW9kZSB9IGZyb20gXCIuL29uZS1ldmVudC10eXBlcy5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVEZXRhaWxDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tIFwiLi9vbmUtbWFzdGVyLWRldGFpbC5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tIFwiLi9vbmUtdHJlZS1kYXRhLm1vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIE9uZUdyaWRUeXBlID0gJ3NpbXBsZScgfCAnbWFzdGVyJyB8ICdkZXRhaWwnIHwgJ3RyZWUnIHwgbnVsbDtcblxuLyoqXG4gKiBFdmVyeXRoaW5nIGBPbmVHcmlkQXBpLmluaXRgIG5lZWRzIHRvIHN0YW5kIGEgZ3JpZCB1cC5cbiAqXG4gKiBBbiBvcHRpb25zIG9iamVjdCByYXRoZXIgdGhhbiBhIHBvc2l0aW9uYWwgbGlzdDogdGhlIHByZXZpb3VzIHNpZ25hdHVyZSB0b29rXG4gKiB0ZW4gcG9zaXRpb25hbCBhcmd1bWVudHMsIGZvdXIgb2YgdGhlbSBvcHRpb25hbCBhbmQgdHdvIG9mIHRoZW0gYm9vbGVhbnMsIHNvXG4gKiBhIGNhbGwgc2l0ZSB3YXMgdW5yZWFkYWJsZSBhbmQgYWRkaW5nIGFuIG9wdGlvbiBtZWFudCB0b3VjaGluZyBldmVyeSBjYWxsZXIuXG4gKlxuICogYE9uZUdyaWRDb21wb25lbnRgIGNhbGxzIHRoaXMgZnJvbSBgbmdPbkluaXRgLiBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmVHcmlkSW5pdE9wdGlvbnM8VCA9IGFueT4ge1xuICAgIC8qKiBXaGljaCByb2xlIHRoaXMgaW5zdGFuY2UgcGxheXMuIGBPbmVHcmlkQ29tcG9uZW50YCBkZXJpdmVzIGl0IGZyb20gaXRzIGlucHV0cy4gKi9cbiAgICBncmlkVHlwZTogT25lR3JpZFR5cGU7XG4gICAgLyoqIENvbHVtbiBkZWZpbml0aW9ucywgYmVmb3JlIGBkZWZhdWx0Q29sdW1uRGVmYCBpcyBtZXJnZWQgaW4uICovXG4gICAgY29sdW1uRGVmczogT25lQ29sdW1uRGVmPFQ+W107XG4gICAgLyoqIE1lcmdlZCBpbnRvIGV2ZXJ5IGNvbHVtbiBkZWZpbml0aW9uLiAqL1xuICAgIGRlZmF1bHRDb2x1bW5EZWY/OiBPbmVDb2x1bW5EZWY8VD47XG4gICAgLyoqIEhlYWRlciBncm91cHMuIENvbHVtbnMgam9pbiBvbmUgYnkgYGdyb3VwSWRgLiAqL1xuICAgIGdyb3VwQ29sdW1uRGVmcz86IE9uZUdyb3VwQ29sdW1uRGVmW107XG4gICAgLyoqIFBhc3NlZCB0byByZW5kZXJlcnMsIGdldHRlcnMgYW5kIHByZWRpY2F0ZXM7IGBjb21wb25lbnRQYXJlbnQuZ2V0Um93SWRgIGlzIHJlYWQgZnJvbSBpdC4gKi9cbiAgICBjb250ZXh0PzogYW55O1xuICAgIC8qKiBgbnVsbGAgZGlzYWJsZXMgcm93IHNlbGVjdGlvbiBlbnRpcmVseS4gUmVhZCBvbmNlLCBoZXJlLiAqL1xuICAgIHJvd1NlbGVjdGlvbj86IFJvd1NlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFR1cm5zIG9uIHRoZSBuZXN0ZWQgZGV0YWlsIGdyaWQuIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGB0cmVlRGF0YWAuICovXG4gICAgbWFzdGVyRGV0YWlsPzogYm9vbGVhbjtcbiAgICAvKiogRGV0YWlsIGdyaWQgb3B0aW9ucyBwbHVzIGBnZXREZXRhaWxSb3dEYXRhYC4gUmVxdWlyZWQgd2hlbiBgbWFzdGVyRGV0YWlsYCBpcyBvbi4gKi9cbiAgICBkZXRhaWxDZWxsUmVuZGVyZXJQYXJhbXM/OiBPbmVEZXRhaWxDZWxsUmVuZGVyZXJQYXJhbXM7XG4gICAgLyoqIFJlbmRlciBhIGNvbXBvbmVudCBpbiB0aGUgZGV0YWlsIGFyZWEgaW5zdGVhZCBvZiBhIG5lc3RlZCBncmlkLiAqL1xuICAgIGRldGFpbFJlbmRlcmVyQ29tcG9uZW50PzogVHlwZTxPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQ+O1xuICAgIC8qKiBUdXJucyBvbiBoaWVyYXJjaGljYWwgcm93IGJ1aWxkaW5nLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgbWFzdGVyRGV0YWlsYC4gKi9cbiAgICB0cmVlRGF0YT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lR3JpZFJlYWR5RXZlbnQ8VCA9IGFueT4ge1xuICAgIGFwaTogT25lR3JpZEFwaTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VCA9IGFueT4ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgZGF0YTogVDtcbiAgICBhcGk/OiBPbmVHcmlkQXBpPFQ+O1xuICAgIGNvbHVtbj86IE9uZUNvbHVtbkRlZjtcbiAgICBub2RlOiBPbmVSb3dOb2RlPFQ+O1xuICAgIG1hc3Rlck5vZGU/OiBPbmVSb3dOb2RlPFQ+O1xuICAgIGdyaWRUeXBlPzogT25lR3JpZFR5cGU7XG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZUdyaWRHZXRSb3dJZFBhcmFtczxUID0gYW55PiB7XG4gICAgZGF0YTogVDtcbiAgICByb3dJbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVNvcnRNb2RlbDxUID0gYW55PiB7XG4gIGNvbElkOiAga2V5b2YgVDtcbiAgc29ydDogJ2FzYycgfCAnZGVzYyc7XG59XG5cbi8qKlxuICogT25lIGJhdGNoIG9mIHJvdyBjaGFuZ2VzIGZvciBgYXBpLmFwcGx5VHJhbnNhY3Rpb25gIOKAlCB0aGUgd2F5IHRvIGFwcGVuZCxcbiAqIHBhdGNoIG9yIGRyb3Agcm93cyB3aXRob3V0IHJlYmluZGluZyB0aGUgd2hvbGUgZGF0YXNldCBmcm9tIHRoZSBob3N0LlxuICpcbiAqIFJvd3MgYXJlIG1hdGNoZWQgYnkgaWQsIHNvIGEgdHJhbnNhY3Rpb24gcmVxdWlyZXMgYVxuICogYGNvbnRleHQuY29tcG9uZW50UGFyZW50LmdldFJvd0lkYC4gU2VsZWN0aW9uIGFuZCBleHBhbnNpb24gc3Vydml2ZSwgdGhlXG4gKiBhY3RpdmUgc29ydCBhbmQgZmlsdGVycyByZS1hcHBseSwgYW5kIG9uIHRyZWUgZGF0YSBgcmVtb3ZlYCByZWFjaGVzIGFueVxuICogZGVwdGggd2hpbGUgYGFkZFRvUGFyZW50SWRgIHBsYWNlcyBhZGRlZCByb3dzIHVuZGVyIGFuIGV4aXN0aW5nIHBhcmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmVSb3dUcmFuc2FjdGlvbjxUID0gYW55PiB7XG4gIC8qKiBSb3dzIHRvIGFwcGVuZCDigJQgYXQgdGhlIHJvb3QsIG9yIHVuZGVyIGBhZGRUb1BhcmVudElkYC4gKi9cbiAgYWRkPzogVFtdO1xuICAvKiogUm93IGlkIG9mIHRoZSBwYXJlbnQgdGhlIGFkZGVkIHJvd3MgZ28gdW5kZXIgKHRyZWUgZGF0YSBvbmx5KS4gKi9cbiAgYWRkVG9QYXJlbnRJZD86IHN0cmluZztcbiAgLyoqIFJlcGxhY2VtZW50IHJvd3MsIG1hdGNoZWQgdG8gZXhpc3Rpbmcgcm93cyBieSBpZC4gKi9cbiAgdXBkYXRlPzogVFtdO1xuICAvKiogUm93cyAob3Igcm93IGlkcykgdG8gZHJvcCwgYXQgYW55IGRlcHRoLiAqL1xuICByZW1vdmU/OiAoVCB8IHN0cmluZylbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmlkUm93RGF0YSB7XG4gIHJvd0lkOiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTsgLy8gZmxleGlibGUgZXh0cmEgZmllbGRzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFJvd0RhdGFPcGVyYXRpb248VCBleHRlbmRzIEdyaWRSb3dEYXRhID0gR3JpZFJvd0RhdGE+IHtcbiAgLyoqXG4gICAqIE1vdmUgYSByb3cgZnJvbSBvbmUgaW5kZXggdG8gYW5vdGhlclxuICAgKiBAcGFyYW0gc291cmNlSW5kZXggLSB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgcm93XG4gICAqIEBwYXJhbSB0YXJnZXRJbmRleCAtIHRoZSBuZXcgaW5kZXggdG8gbW92ZSB0b1xuICAgKi9cbiAgbW92ZVJvdyhzb3VyY2VJbmRleDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKTogdm9pZDtcblxuICAvKipcbiAgICogUmVtb3ZlIGEgcm93IGJ5IGl0cyB1bmlxdWUgSURcbiAgICogQHBhcmFtIHJvd0lkIC0gdGhlIElEIG9mIHRoZSByb3cgdG8gcmVtb3ZlXG4gICAqL1xuICByZW1vdmVSb3cocm93SWQ6IHN0cmluZyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEluc2VydCBhIG5ldyByb3cgYXQgdGhlIGdpdmVuIGluZGV4XG4gICAqIEBwYXJhbSByb3cgLSB0aGUgcm93IGRhdGFcbiAgICogQHBhcmFtIGluZGV4IC0gd2hlcmUgdG8gaW5zZXJ0XG4gICAqL1xuICBpbnNlcnRSb3cocm93OiBULCBpbmRleDogbnVtYmVyKTogdm9pZDtcbn1cbiJdfQ==
|
|
@@ -20,10 +20,19 @@ export class OneGridRowService {
|
|
|
20
20
|
}
|
|
21
21
|
return uuidv4();
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* The row's id, or null when it cannot be known — no id function, or one
|
|
25
|
+
* that answers nothing for this row. Unlike `generateRowId` this never
|
|
26
|
+
* mints an id, which is what row matching (transactions) needs: a minted
|
|
27
|
+
* id matches nothing and must not pretend otherwise.
|
|
28
|
+
*/
|
|
29
|
+
resolveRowId(data) {
|
|
30
|
+
return this._getRowId?.({ data, rowIndex: -1 }) ?? null;
|
|
31
|
+
}
|
|
23
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
33
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService }); }
|
|
25
34
|
}
|
|
26
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService, decorators: [{
|
|
27
36
|
type: Injectable
|
|
28
37
|
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcm93LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb25lLWdyaWQtcm93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHcEMsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUdZLGNBQVMsR0FBOEMsSUFBSSxDQUFDO0tBaUN2RTtJQS9CRzs7T0FFRztJQUNJLGFBQWEsQ0FBQyxRQUFtRDtRQUVwRSxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhLENBQUMsSUFBUyxFQUFFLFFBQWdCO1FBRTVDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRWpCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzFELENBQUM7UUFFRCxPQUFPLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFlBQVksQ0FBQyxJQUFTO1FBRXpCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzVELENBQUM7K0dBbENRLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT25lR3JpZEdldFJvd0lkUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWxzL29uZS1ncmlkLXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT25lR3JpZFJvd1NlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBfZ2V0Um93SWQ6IChwYXJhbXM6IE9uZUdyaWRHZXRSb3dJZFBhcmFtcykgPT4gc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNldCBSb3cgSWQgRnVuY2l0b25cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0R2V0Um93SWRGbihnZXRSb3dJZDogKHBhcmFtczogT25lR3JpZEdldFJvd0lkUGFyYW1zKSA9PiBzdHJpbmcpIHtcblxuICAgICAgICB0aGlzLl9nZXRSb3dJZCA9IGdldFJvd0lkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlIFVuaXF1ZSBSb3cgSURcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2VuZXJhdGVSb3dJZChkYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgICAgIGlmICh0aGlzLl9nZXRSb3dJZCkge1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Um93SWQoeyBkYXRhLCByb3dJbmRleCB9KSA/PyB1dWlkdjQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1dWlkdjQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcm93J3MgaWQsIG9yIG51bGwgd2hlbiBpdCBjYW5ub3QgYmUga25vd24g4oCUIG5vIGlkIGZ1bmN0aW9uLCBvciBvbmVcbiAgICAgKiB0aGF0IGFuc3dlcnMgbm90aGluZyBmb3IgdGhpcyByb3cuIFVubGlrZSBgZ2VuZXJhdGVSb3dJZGAgdGhpcyBuZXZlclxuICAgICAqIG1pbnRzIGFuIGlkLCB3aGljaCBpcyB3aGF0IHJvdyBtYXRjaGluZyAodHJhbnNhY3Rpb25zKSBuZWVkczogYSBtaW50ZWRcbiAgICAgKiBpZCBtYXRjaGVzIG5vdGhpbmcgYW5kIG11c3Qgbm90IHByZXRlbmQgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXNvbHZlUm93SWQoZGF0YTogYW55KTogc3RyaW5nIHwgbnVsbCB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFJvd0lkPy4oeyBkYXRhLCByb3dJbmRleDogLTEgfSkgPz8gbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1014,6 +1014,15 @@ class OneGridRowService {
|
|
|
1014
1014
|
}
|
|
1015
1015
|
return v4();
|
|
1016
1016
|
}
|
|
1017
|
+
/**
|
|
1018
|
+
* The row's id, or null when it cannot be known — no id function, or one
|
|
1019
|
+
* that answers nothing for this row. Unlike `generateRowId` this never
|
|
1020
|
+
* mints an id, which is what row matching (transactions) needs: a minted
|
|
1021
|
+
* id matches nothing and must not pretend otherwise.
|
|
1022
|
+
*/
|
|
1023
|
+
resolveRowId(data) {
|
|
1024
|
+
return this._getRowId?.({ data, rowIndex: -1 }) ?? null;
|
|
1025
|
+
}
|
|
1017
1026
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1018
1027
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService }); }
|
|
1019
1028
|
}
|
|
@@ -1496,6 +1505,65 @@ class OneGridApi {
|
|
|
1496
1505
|
updateRowData(rowData) {
|
|
1497
1506
|
this.rebuildRows(rowData, false);
|
|
1498
1507
|
}
|
|
1508
|
+
/**
|
|
1509
|
+
* Apply a batch of row changes without the host rebinding the dataset:
|
|
1510
|
+
* append rows (at the root, or under a parent by id on tree data), replace
|
|
1511
|
+
* rows by id, drop rows at any depth. Selection and expansion survive —
|
|
1512
|
+
* this is `updateRowData` fed from the grid's own current rows, so the
|
|
1513
|
+
* host keeps no parallel copy to reconcile.
|
|
1514
|
+
*
|
|
1515
|
+
* Requires a stable `context.componentParent.getRowId`: rows are matched by
|
|
1516
|
+
* id, and without an id function there is nothing to match on — the
|
|
1517
|
+
* transaction is refused with a warning rather than half-applied.
|
|
1518
|
+
*/
|
|
1519
|
+
applyTransaction(transaction) {
|
|
1520
|
+
if (this._destroyed || !transaction)
|
|
1521
|
+
return;
|
|
1522
|
+
const sample = transaction.update?.[0] ?? transaction.add?.[0]
|
|
1523
|
+
?? (transaction.remove ?? []).find(entry => typeof entry !== 'string');
|
|
1524
|
+
if (sample !== undefined && this.rowService.resolveRowId(sample) === null) {
|
|
1525
|
+
console.warn('[one-grid] applyTransaction needs context.componentParent.getRowId — rows are matched by id. Nothing was applied.');
|
|
1526
|
+
return;
|
|
1527
|
+
}
|
|
1528
|
+
const removeIds = new Set((transaction.remove ?? []).map(entry => typeof entry === 'string' ? entry : this.rowService.resolveRowId(entry)));
|
|
1529
|
+
const updates = new Map((transaction.update ?? []).map(data => [this.rowService.resolveRowId(data), data]));
|
|
1530
|
+
const childrenField = this.treeDataChildrenField;
|
|
1531
|
+
// Row grouping folds flat rows itself, so the transaction operates on the
|
|
1532
|
+
// leaves and re-groups; a parent target would name a synthetic group row,
|
|
1533
|
+
// which is not a place data can live.
|
|
1534
|
+
const grouping = this._rowGroupFields.length > 0;
|
|
1535
|
+
const addToParentId = grouping ? undefined : transaction.addToParentId;
|
|
1536
|
+
if (grouping && transaction.addToParentId) {
|
|
1537
|
+
console.warn('[one-grid] applyTransaction: addToParentId is ignored under row grouping — groups are synthetic. Rows were added at the root.');
|
|
1538
|
+
}
|
|
1539
|
+
// Copy-on-write over the grid's own current rows: the node graph carries
|
|
1540
|
+
// the data, so the host's original arrays are never mutated and untouched
|
|
1541
|
+
// branches keep their object identity for the node-reuse path.
|
|
1542
|
+
const applyTo = (rows) => rows
|
|
1543
|
+
.filter(data => !removeIds.has(this.rowService.resolveRowId(data)))
|
|
1544
|
+
.map(data => {
|
|
1545
|
+
const id = this.rowService.resolveRowId(data);
|
|
1546
|
+
let next = updates.get(id) ?? data;
|
|
1547
|
+
if (this.treeData && childrenField) {
|
|
1548
|
+
const children = next[childrenField];
|
|
1549
|
+
const rebuilt = children ? applyTo(children) : undefined;
|
|
1550
|
+
const withAdded = id != null && id === addToParentId
|
|
1551
|
+
? [...(rebuilt ?? []), ...(transaction.add ?? [])]
|
|
1552
|
+
: rebuilt;
|
|
1553
|
+
if (withAdded !== children)
|
|
1554
|
+
next = { ...next, [childrenField]: withAdded ?? [] };
|
|
1555
|
+
}
|
|
1556
|
+
return next;
|
|
1557
|
+
});
|
|
1558
|
+
const currentRows = grouping
|
|
1559
|
+
? this._rowNodes.filter(node => node.leaf).map(node => node.data)
|
|
1560
|
+
: this._rowNodes.filter(node => !node.parent).map(node => node.data);
|
|
1561
|
+
let roots = applyTo(currentRows);
|
|
1562
|
+
if (transaction.add?.length && !addToParentId) {
|
|
1563
|
+
roots = [...roots, ...transaction.add];
|
|
1564
|
+
}
|
|
1565
|
+
this.rebuildRows(roots, false);
|
|
1566
|
+
}
|
|
1499
1567
|
/**
|
|
1500
1568
|
* The one row-loading path. `setRowData` and `updateRowData` differed only in
|
|
1501
1569
|
* whether they cleared the state services first, so everything else — build,
|