@coolon/angular-ui-powerups 1.11.3 → 1.12.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.
Files changed (73) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js +830 -821
  3. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  6. package/coolon-angular-ui-powerups.d.ts +15 -16
  7. package/coolon-angular-ui-powerups.metadata.json +1 -1
  8. package/esm2015/coolon-angular-ui-powerups.js +15 -16
  9. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  10. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  11. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  12. package/esm2015/lib/components/index.js +1 -0
  13. package/esm2015/lib/components/index.js.map +1 -1
  14. package/esm2015/lib/components/index.metadata.json +1 -1
  15. package/esm2015/lib/components/table/column-model.js +13 -2
  16. package/esm2015/lib/components/table/column-model.js.map +1 -1
  17. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  18. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js +3 -4
  19. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +1 -1
  20. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.metadata.json +1 -1
  21. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.js +2 -2
  22. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.js.map +1 -1
  23. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -1
  24. package/esm2015/lib/components/table/edit-session.js +20 -0
  25. package/esm2015/lib/components/table/edit-session.js.map +1 -0
  26. package/esm2015/lib/components/table/edit-session.metadata.json +1 -0
  27. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +2 -1
  28. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  29. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.metadata.json +1 -1
  30. package/esm2015/lib/components/table/table-model.js +4 -24
  31. package/esm2015/lib/components/table/table-model.js.map +1 -1
  32. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  33. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +1 -1
  34. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  35. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  36. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +2 -2
  37. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  38. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -1
  39. package/esm5/coolon-angular-ui-powerups.js +15 -16
  40. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  41. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  42. package/esm5/lib/components/index.js +1 -0
  43. package/esm5/lib/components/index.js.map +1 -1
  44. package/esm5/lib/components/table/column-model.js +13 -2
  45. package/esm5/lib/components/table/column-model.js.map +1 -1
  46. package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js +3 -4
  47. package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +1 -1
  48. package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.js +2 -2
  49. package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.js.map +1 -1
  50. package/esm5/lib/components/table/edit-session.js +25 -0
  51. package/esm5/lib/components/table/edit-session.js.map +1 -0
  52. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +2 -1
  53. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  54. package/esm5/lib/components/table/table-model.js +5 -28
  55. package/esm5/lib/components/table/table-model.js.map +1 -1
  56. package/esm5/lib/interaction/components/activity-actions/activity-actions.component.js +1 -1
  57. package/esm5/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  58. package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +2 -2
  59. package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  60. package/fesm2015/coolon-angular-ui-powerups.js +552 -544
  61. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  62. package/fesm5/coolon-angular-ui-powerups.js +804 -796
  63. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  64. package/lib/components/index.d.ts +1 -0
  65. package/lib/components/table/column-model.d.ts +16 -12
  66. package/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +1 -2
  67. package/lib/components/table/edit-row-controls/edit-row-controls.component.d.ts +2 -2
  68. package/lib/components/table/edit-session.d.ts +9 -0
  69. package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +2 -1
  70. package/lib/components/table/table-model.d.ts +4 -13
  71. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +1 -1
  72. package/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.d.ts +3 -2
  73. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ import { __extends } from "tslib";
2
+ import { Form, GarbageCollector, MutableValueModel } from '@coolon/pectin';
3
+ import produce from 'immer';
4
+ var EditSession = /** @class */ (function (_super) {
5
+ __extends(EditSession, _super);
6
+ function EditSession(rowId, row, saveCommand) {
7
+ var _this = _super.call(this) || this;
8
+ _this.rowId = rowId;
9
+ _this.saveCommand = saveCommand;
10
+ _this._editorValue = new MutableValueModel();
11
+ _this.rowValueModel = _this._editorValue.readonly;
12
+ _this.form = new Form();
13
+ _this.form.load(row);
14
+ _this._editorValue.value = row;
15
+ _this.form.onEdit(function () {
16
+ _this._editorValue.value = produce(_this._editorValue.value, function (draft) {
17
+ _this.form.writeDirtyStateTo(draft);
18
+ });
19
+ });
20
+ return _this;
21
+ }
22
+ return EditSession;
23
+ }(GarbageCollector));
24
+ export { EditSession };
25
+ //# sourceMappingURL=edit-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-session.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/table/edit-session.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,iBAAiB,EAAgB,MAAM,gBAAgB,CAAC;AAEzF,OAAO,OAAO,MAAM,OAAO,CAAC;AAE5B;IAAsC,+BAAgB;IAKpD,qBAAqB,KAAU,EAAE,GAAQ,EAAW,WAA6C;QAAjG,YACE,iBAAO,SASR;QAVoB,WAAK,GAAL,KAAK,CAAK;QAAqB,iBAAW,GAAX,WAAW,CAAkC;QAHzF,kBAAY,GAAG,IAAI,iBAAiB,EAAO,CAAC;QAC3C,mBAAa,GAAG,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QAIlD,KAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAO,CAAC;QAC5B,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,KAAI,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC;QAC9B,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACf,KAAI,CAAC,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAA,KAAK;gBAC9D,KAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAyB,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;;IACL,CAAC;IACH,kBAAC;AAAD,CAAC,AAhBD,CAAsC,gBAAgB,GAgBrD","sourcesContent":["import { Form, GarbageCollector, MutableValueModel, UnaryCommand } from '@coolon/pectin';\nimport { PickMutable } from '@coolon/typescript-utilities';\nimport produce from 'immer';\n\nexport class EditSession<Row> extends GarbageCollector {\n readonly form: Form<Row>;\n private _editorValue = new MutableValueModel<Row>();\n readonly rowValueModel = this._editorValue.readonly;\n\n constructor(readonly rowId: any, row: Row, readonly saveCommand: UnaryCommand<Form<Row>, boolean>) {\n super();\n this.form = new Form<Row>();\n this.form.load(row);\n this._editorValue.value = row;\n this.form.onEdit(() => {\n this._editorValue.value = produce(this._editorValue.value, draft => {\n this.form.writeDirtyStateTo(draft as PickMutable<Row>);\n });\n });\n }\n}\n"]}
@@ -2,6 +2,7 @@ import { __decorate, __metadata } from "tslib";
2
2
  import { Component, HostBinding, Input } from '@angular/core';
3
3
  import { Command } from '@coolon/pectin';
4
4
  import { ColumnModel } from '../column-model';
5
+ import { EditSession } from '../edit-session';
5
6
  import { TableModel } from '../table-model';
6
7
  var TableCellRendererComponent = /** @class */ (function () {
7
8
  function TableCellRendererComponent() {
@@ -42,7 +43,7 @@ var TableCellRendererComponent = /** @class */ (function () {
42
43
  ], TableCellRendererComponent.prototype, "column", void 0);
43
44
  __decorate([
44
45
  Input(),
45
- __metadata("design:type", TableModel.EditSession)
46
+ __metadata("design:type", EditSession)
46
47
  ], TableCellRendererComponent.prototype, "editSession", void 0);
47
48
  __decorate([
48
49
  Input(),
@@ -1 +1 @@
1
- {"version":3,"file":"table-cell-renderer.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/table/table-cell-renderer/table-cell-renderer.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAA+C,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAO5C;IAsBE;QAAA,iBAIC;QAND,sBAAiB,GAAG,0BAA0B,CAAA;QAG5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,KAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uDAAkB,GAAlB,UAAmB,QAAa;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAChG;IACH,CAAC;IAED,qDAAgB,GAAhB,UAAiB,QAAa;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,gDAAW,GAAX,UAAY,OAAsB;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/F,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SAC9C;IACH,CAAC;IAED,oDAAe,GAAf;QACE,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACrD,CAAC;IAhDD;QADC,KAAK,EAAE;;2DACC;IAGT;QADC,KAAK,EAAE;kCACA,WAAW;8DAAM;IAGzB;QADC,KAAK,EAAE;kCACK,UAAU,CAAC,WAAW;mEAAM;IAGzC;QADC,KAAK,EAAE;kCACI,UAAU;kEAAM;IAQ5B;QADC,WAAW,CAAC,OAAO,CAAC;;yEACyB;IApBnC,0BAA0B;QALtC,SAAS,CAAC;YACT,QAAQ,EAAE,yBAAyB;YACnC,qUAAmD;;SAEpD,CAAC;;OACW,0BAA0B,CAoDtC;IAAD,iCAAC;CAAA,AApDD,IAoDC;SApDY,0BAA0B","sourcesContent":["import { Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { Command } from '@coolon/pectin';\nimport { ColumnModel } from '../column-model';\nimport { TableModel } from '../table-model';\n\n@Component({\n selector: 'aup-table-cell-renderer',\n templateUrl: './table-cell-renderer.component.html',\n styleUrls: ['./table-cell-renderer.component.scss']\n})\nexport class TableCellRendererComponent<Row> implements OnChanges {\n\n @Input()\n row: Row;\n\n @Input()\n column: ColumnModel<Row>;\n\n @Input()\n editSession: TableModel.EditSession<Row>;\n\n @Input()\n tableModel: TableModel<Row>;\n\n private renderer: any;\n private editor: any;\n\n private editRowCommand: Command<void>;\n\n @HostBinding('class')\n defaultClassNames = \"aup-header-cell-renderer\"\n\n constructor() {\n this.editRowCommand = Command.create(() => {\n this.tableModel.startEditSession(this.row);\n });\n }\n\n initialiseRenderer(instance: any) {\n if (this.renderer !== instance) {\n this.renderer = instance;\n this.column.updateCellRenderer(this.renderer, this.row, this.editRowCommand, this.editSession);\n }\n }\n\n initialiseEditor(instance: any) {\n if (this.editor !== instance) {\n this.editor = instance;\n this.column.initialiseEditor(this.editor, this.editSession);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.renderer) {\n this.column.updateCellRenderer(this.renderer, this.row, this.editRowCommand, this.editSession);\n this.renderer.editSession = this.editSession;\n }\n }\n\n hasActiveEditor() {\n return this.editSession && this.column.hasEditor();\n }\n}\n"]}
1
+ {"version":3,"file":"table-cell-renderer.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/table/table-cell-renderer/table-cell-renderer.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAA+C,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAO5C;IAsBE;QAAA,iBAIC;QAND,sBAAiB,GAAG,0BAA0B,CAAA;QAG5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,KAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uDAAkB,GAAlB,UAAmB,QAAa;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAChG;IACH,CAAC;IAED,qDAAgB,GAAhB,UAAiB,QAAa;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,gDAAW,GAAX,UAAY,OAAsB;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/F,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SAC9C;IACH,CAAC;IAED,oDAAe,GAAf;QACE,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACrD,CAAC;IAhDD;QADC,KAAK,EAAE;;2DACC;IAGT;QADC,KAAK,EAAE;kCACA,WAAW;8DAAM;IAGzB;QADC,KAAK,EAAE;kCACK,WAAW;mEAAM;IAG9B;QADC,KAAK,EAAE;kCACI,UAAU;kEAAM;IAQ5B;QADC,WAAW,CAAC,OAAO,CAAC;;yEACyB;IApBnC,0BAA0B;QALtC,SAAS,CAAC;YACT,QAAQ,EAAE,yBAAyB;YACnC,qUAAmD;;SAEpD,CAAC;;OACW,0BAA0B,CAoDtC;IAAD,iCAAC;CAAA,AApDD,IAoDC;SApDY,0BAA0B","sourcesContent":["import { Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { Command } from '@coolon/pectin';\nimport { ColumnModel } from '../column-model';\nimport { EditSession } from '../edit-session';\nimport { TableModel } from '../table-model';\n\n@Component({\n selector: 'aup-table-cell-renderer',\n templateUrl: './table-cell-renderer.component.html',\n styleUrls: ['./table-cell-renderer.component.scss']\n})\nexport class TableCellRendererComponent<Row> implements OnChanges {\n\n @Input()\n row: Row;\n\n @Input()\n column: ColumnModel<Row>;\n\n @Input()\n editSession: EditSession<Row>;\n\n @Input()\n tableModel: TableModel<Row>;\n\n private renderer: any;\n private editor: any;\n\n private editRowCommand: Command<void>;\n\n @HostBinding('class')\n defaultClassNames = \"aup-header-cell-renderer\"\n\n constructor() {\n this.editRowCommand = Command.create(() => {\n this.tableModel.startEditSession(this.row);\n });\n }\n\n initialiseRenderer(instance: any) {\n if (this.renderer !== instance) {\n this.renderer = instance;\n this.column.updateCellRenderer(this.renderer, this.row, this.editRowCommand, this.editSession);\n }\n }\n\n initialiseEditor(instance: any) {\n if (this.editor !== instance) {\n this.editor = instance;\n this.column.initialiseEditor(this.editor, this.editSession);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.renderer) {\n this.column.updateCellRenderer(this.renderer, this.row, this.editRowCommand, this.editSession);\n this.renderer.editSession = this.editSession;\n }\n }\n\n hasActiveEditor() {\n return this.editSession && this.column.hasEditor();\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- import { __decorate, __extends, __metadata } from "tslib";
2
- import { BooleanValueModelChain, CanIdentify, Dsl, Form, GarbageCollector, lang, ListModel, ListModelChain, MapModelChain, MutableListModel, MutableValueModel, SelectionModel, TrackExternal, Types, UnaryCommand } from '@coolon/pectin';
3
- import produce from 'immer';
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { BooleanValueModelChain, CanIdentify, Dsl, Form, GarbageCollector, lang, ListModel, ListModelChain, MapModelChain, MutableListModel, SelectionModel, TrackExternal, Types, UnaryCommand } from '@coolon/pectin';
4
3
  import { CustomValueColumnModel, EditorControlColumnModel, PropertyColumnModel, SelectionColumnModel } from './column-model';
4
+ import { EditSession } from './edit-session';
5
5
  // export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];
6
6
  // export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];
7
7
  /**
@@ -142,7 +142,7 @@ var TableModel = /** @class */ (function () {
142
142
  this._columnTextPropertiesLookup = columnTextProperties;
143
143
  };
144
144
  TableModel.prototype.getColumnTextProperties = function (column) {
145
- var factory = this._columnTextPropertiesLookup[column.columnId];
145
+ var factory = this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[column.columnId] : undefined;
146
146
  return factory ? factory() : undefined;
147
147
  };
148
148
  TableModel.prototype.startEditSession = function (row) {
@@ -152,7 +152,7 @@ var TableModel = /** @class */ (function () {
152
152
  return lang.illegalState("Row with id=" + rowId + " already being edited");
153
153
  }
154
154
  else {
155
- var editSession_1 = new TableModel_1.EditSession(rowId, row, this.saveCommand);
155
+ var editSession_1 = new EditSession(rowId, row, this.saveCommand);
156
156
  var when = Dsl.disposeWith(editSession_1).when;
157
157
  when.valueOf(editSession_1.rowValueModel).changes(function (editedValue) {
158
158
  _this._rowsBeingEdited.replaceOrPush(editedValue);
@@ -187,27 +187,4 @@ var TableModel = /** @class */ (function () {
187
187
  return TableModel;
188
188
  }());
189
189
  export { TableModel };
190
- (function (TableModel) {
191
- var EditSession = /** @class */ (function (_super) {
192
- __extends(EditSession, _super);
193
- function EditSession(rowId, row, saveCommand) {
194
- var _this = _super.call(this) || this;
195
- _this.rowId = rowId;
196
- _this.saveCommand = saveCommand;
197
- _this._editorValue = new MutableValueModel();
198
- _this.rowValueModel = _this._editorValue.readonly;
199
- _this.form = new Form();
200
- _this.form.load(row);
201
- _this._editorValue.value = row;
202
- _this.form.onEdit(function () {
203
- _this._editorValue.value = produce(_this._editorValue.value, function (draft) {
204
- _this.form.writeDirtyStateTo(draft);
205
- });
206
- });
207
- return _this;
208
- }
209
- return EditSession;
210
- }(GarbageCollector));
211
- TableModel.EditSession = EditSession;
212
- })(TableModel || (TableModel = {}));
213
190
  //# sourceMappingURL=table-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-model.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/table/table-model.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,GAAG,EACH,IAAI,EACJ,gBAAgB,EAChB,IAAI,EACJ,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,EACL,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAEL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAGxB,oGAAoG;AACpG,oGAAoG;AAGpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAEH;IAwBE,oBAA8B,aAA6B;QAA7B,kBAAa,GAAb,aAAa,CAAgB;QAtB1C,aAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAElC,aAAQ,GAAG,IAAI,gBAAgB,EAAoB,CAAC;QAE7D,oBAAe,GAAG,IAAI,gBAAgB,EAA+B,CAAC;QAmB5E,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;QACrC,IAAA,mCAA2F,EAAzF,gBAAK,EAAE,oBAAO,EAAE,kBAAM,EAAE,cAAI,EAAE,gBAAK,EAAE,oBAAO,EAAE,sBAA2C,CAAC;QAClG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAM,EAAE,EAAE;YACpD,cAAc,EAAE,IAAI,CAAC,UAAU;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/E,CAAC;mBAlCU,UAAU;IAkBd,mBAAQ,GAAf,UAAqB,aAA6B,EAAE,OAA+C;QACjG,IAAM,KAAK,GAAG,IAAI,YAAU,CAAM,aAAa,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAcD,sBAAI,uCAAe;aAAnB;YACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACxC,CAAC;;;OAAA;IAED,uCAAkB,GAAlB;QAAA,iBAIC;QAHC,OAAO,UAAC,KAAa,EAAE,IAAS;YAC9B,OAAO,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC;IAED,sBAAI,+BAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChC,CAAC;;;OAAA;IAED,0BAAK,GAAL,UAA8C,QAAW;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAS,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,uCAAkB,GAAlB,UAAmB,cAAmC;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAM,WAAW,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,oCAAe,GAAf,UAAgB,WAA6C;QAC3D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAM,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,oCAAe,GAAf,UAAmB,QAAgB,EAAE,YAA6B;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAS,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1F,CAAC;IAES,8BAAS,GAAnB,UAAgD,MAAS;QACvD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,oBAAkB,MAAM,CAAC,QAAQ,oBAAiB,CAAC,CAAC;SACvE;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,yCAAoB,GAApB,UAAqB,oBAA0E;QAC7F,IAAI,CAAC,2BAA2B,GAAG,oBAAoB,CAAC;IAC1D,CAAC;IAED,4CAAuB,GAAvB,UAAwB,MAAwB;QAC9C,IAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,qCAAgB,GAAhB,UAAiB,GAAQ;QAAzB,iBAkBC;QAjBC,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAe,KAAK,0BAAuB,CAAC,CAAC;SACvE;aAAM;YACL,IAAM,aAAW,GAAG,IAAI,YAAU,CAAC,WAAW,CAAM,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1E,IAAA,0CAAI,CAAkC;YAC9C,IAAI,CAAC,OAAO,CAAC,aAAW,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,WAAW;gBAC1D,KAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAE/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAW,CAAC,CAAC;YACvC,aAAW,CAAC,SAAS,CAAC;gBACpB,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC9D,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,aAAW,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO,aAAW,CAAC;SACpB;IACH,CAAC;IAED,sCAAiB,GAAjB,UAAkB,GAAQ;QACxB,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,4CAAuB,GAAvB;QAAA,iBAMC;QALC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,UAAC,KAAK;YAC1C,KAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;gBACrC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,OAAO,EAAE,EAAjB,CAAiB,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;;gBA3F4C,SAAS;;IAxB3C,UAAU;QADtB,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;yCAyBZ,SAAS;OAxB3C,UAAU,CAoHtB;IAAD,iBAAC;CAAA,AApHD,IAoHC;SApHY,UAAU;AAsHvB,WAAiB,UAAU;IAGzB;QAAsC,+BAAgB;QAKpD,qBAAqB,KAAU,EAAE,GAAQ,EAAW,WAA6C;YAAjG,YACE,iBAAO,SASR;YAVoB,WAAK,GAAL,KAAK,CAAK;YAAqB,iBAAW,GAAX,WAAW,CAAkC;YAHzF,kBAAY,GAAG,IAAI,iBAAiB,EAAO,CAAC;YAC3C,mBAAa,GAAG,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAIlD,KAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAO,CAAC;YAC5B,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,KAAI,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC;YAC9B,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACf,KAAI,CAAC,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAA,KAAK;oBAC9D,KAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAyB,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;;QACL,CAAC;QACH,kBAAC;IAAD,CAAC,AAhBD,CAAsC,gBAAgB,GAgBrD;IAhBY,sBAAW,cAgBvB,CAAA;AACH,CAAC,EApBgB,UAAU,KAAV,UAAU,QAoB1B","sourcesContent":["import {\n BooleanValueModelChain,\n CanIdentify,\n Dsl,\n Form,\n GarbageCollector,\n lang,\n ListModel,\n ListModelChain,\n MapModelChain,\n MutableListModel,\n MutableValueModel,\n SelectionModel,\n TrackExternal,\n Types,\n UnaryCommand\n} from '@coolon/pectin';\nimport { PickMutable } from '@coolon/typescript-utilities';\nimport produce from 'immer';\nimport {\n ColumnModel,\n CustomValueColumnModel,\n EditorControlColumnModel,\n PropertyColumnModel,\n SelectionColumnModel\n} from './column-model';\nimport { ColumnTextProperties } from './column-text-properties';\n\n// export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];\n// export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];\n\n\n/**\n * Example:\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"firstName\");\n * table.pluck(\"lastName\");\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n * });\n *\n * Editable tables\n * @example\n * const saveCommand = UnaryCommand.create((form: Form<Hero>) => {\n * if (form.validate()) {\n * // normal form save stuff\n * return true; // finish editing\n * }\n * return false; // continue editiing\n * }\n * const colorsNames: ListModel<string> = ...;\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"firstName\").cellEditor(StringInputComponent); <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }\n * table.pluck(\"lastName\").cellEditor(StringInputComponent, {\n * validators: [Validator.present(\"We need a last name\")]\n * });\n * table.pluck(\"age\").cellEditor(NumberInputComponent);\n * table.pluck(\"favoriteColor\").cellEditor(SelectInputComponent, {\n * initialiseComponent(component: SelectInputComponent) {\n * selectInput.optionsModel = colorsNames; // <- initialise our component\n * }\n * });\n * table.addEditControls(saveCommand); // <- required to enable editing\n * });\n *\n * Selection models\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model\n * table.pluck(\"firstName\");\n * table.pluck(\"lastName\");\n * });\n *\n * Custom cell renderers and editors\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"favoriteColor\")\n * .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {\n * // configure your component with what ever you need.\n * });\n * .cellRenderer(CellRendererComponent) // <-- interface CellEditor { value: string; }\n * .cellEditor(CellEditorComponent.); // <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n * });\n *\n * I18n\n * @example\n * [table.yml]\n * table:\n * columns(ColumnTextProperties[]):\n * firstName:\n * headerText: \"First Name\"\n * fullName:\n * headerText: \"Full Name\"\n *\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"favoriteColor\").cellRenderer(...).cellEditor(...);\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n *\n * table.columnTextProperties(I18n.table.columns); // <- configures all columns\n * });\n */\n@TrackExternal.Strategy(new TrackExternal.OneTimeBinding())\nexport class TableModel<Row> {\n\n private readonly _garbage = new GarbageCollector();\n\n private readonly _columns = new MutableListModel<ColumnModel<Row>>();\n private _columnsById: MapModelChain<string, ColumnModel<Row>>;\n private _editorSessions = new MutableListModel<TableModel.EditSession<Row>>();\n private readonly _rowsBeingEdited: MutableListModel<Row>;\n\n private _columnTextPropertiesLookup: { [columnName: string]: () => ColumnTextProperties };\n\n readonly identityOf: CanIdentify<Row>['identityOf'];\n private saveCommand: UnaryCommand<Form<Row>, boolean>;\n private _editorSessionByRowId: MapModelChain<any, TableModel.EditSession<Row>>;\n\n readonly editing: BooleanValueModelChain;\n readonly dataSource: ListModelChain<Row>;\n\n static fromList<Row>(sourceOfTruth: ListModel<Row>, builder?: (tableModel: TableModel<Row>) => void): TableModel<Row> {\n const model = new TableModel<Row>(sourceOfTruth);\n builder(model);\n return model;\n }\n\n protected constructor(private sourceOfTruth: ListModel<Row>) {\n this.identityOf = sourceOfTruth.identityOf;\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this._garbage);\n this._columnsById = chain(this._columns).indexBy('columnId');\n this._rowsBeingEdited = new MutableListModel<Row>([], {\n identifiedWith: this.identityOf\n });\n this._editorSessionByRowId = chain(this._editorSessions).indexBy('rowId');\n this.editing = chain(this._editorSessions).count().isGreaterThan(0);\n this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);\n }\n\n get rowsBeingEdited(): ListModel<Row> {\n return this._rowsBeingEdited.readonly;\n }\n\n getTrackByFunction() {\n return (index: number, item: Row) => {\n return this.identityOf ? this.identityOf(item) : index;\n };\n }\n\n get columns(): ListModel<ColumnModel<Row>> {\n return this._columns.readonly;\n }\n\n pluck<P extends Types.ValuePropertiesOf<Row>>(property: P): PropertyColumnModel<Row, P> {\n return this.addColumn(new PropertyColumnModel<Row, P>(property, this));\n }\n\n addSelectionColumn(selectionModel: SelectionModel<Row>): SelectionColumnModel<Row> {\n return this.addColumn(new SelectionColumnModel<Row>('selection', this, selectionModel));\n }\n\n addEditControls(saveCommand: UnaryCommand<Form<Row>, boolean>):EditorControlColumnModel<Row> {\n this.saveCommand = saveCommand;\n return this.addColumn(new EditorControlColumnModel<Row>('editControls', saveCommand, this));\n }\n\n addCustomColumn<V>(columnId: string, dataAccessor: (row: Row) => V): CustomValueColumnModel<Row, V> {\n return this.addColumn(new CustomValueColumnModel<Row, V>(columnId, this, dataAccessor));\n }\n\n protected addColumn<C extends ColumnModel<Row>>(column: C): C {\n if (this._columnsById.get(column.columnId)) {\n lang.illegalState(`Column with id=${column.columnId} already exists`);\n } else {\n this._columns.push(column);\n }\n return column;\n }\n\n columnTextProperties(columnTextProperties: { [columnName: string]: () => ColumnTextProperties }) {\n this._columnTextPropertiesLookup = columnTextProperties;\n }\n\n getColumnTextProperties(column: ColumnModel<Row>): ColumnTextProperties {\n const factory = this._columnTextPropertiesLookup[column.columnId];\n return factory ? factory() : undefined;\n }\n\n startEditSession(row: Row): TableModel.EditSession<Row> {\n const rowId = this.identityOf(row);\n if (this._rowsBeingEdited.query().indexOf(row) > -1) {\n return lang.illegalState(`Row with id=${rowId} already being edited`);\n } else {\n const editSession = new TableModel.EditSession<Row>(rowId, row, this.saveCommand);\n const { when } = Dsl.disposeWith(editSession);\n when.valueOf(editSession.rowValueModel).changes((editedValue) => {\n this._rowsBeingEdited.replaceOrPush(editedValue);\n }, { initialValue: 'triggerChangeUnlessNil' });\n\n this._editorSessions.push(editSession);\n editSession.onDispose(() => {\n this._rowsBeingEdited.remove(editSession.rowValueModel.value);\n this._editorSessions.remove(editSession);\n });\n return editSession;\n }\n }\n\n getEditSessionFor(row: Row): TableModel.EditSession<Row> {\n return this._editorSessionByRowId.get(this.identityOf(row));\n }\n\n cancelAllEditorSessions() {\n this._editorSessions.runInTransaction((draft) => {\n this._rowsBeingEdited.runInTransaction(() => {\n draft.value.forEach(session => session.dispose());\n });\n });\n }\n}\n\nexport namespace TableModel {\n\n\n export class EditSession<Row> extends GarbageCollector {\n readonly form: Form<Row>;\n private _editorValue = new MutableValueModel<Row>();\n readonly rowValueModel = this._editorValue.readonly;\n\n constructor(readonly rowId: any, row: Row, readonly saveCommand: UnaryCommand<Form<Row>, boolean>) {\n super();\n this.form = new Form<Row>();\n this.form.load(row);\n this._editorValue.value = row;\n this.form.onEdit(() => {\n this._editorValue.value = produce(this._editorValue.value, draft => {\n this.form.writeDirtyStateTo(draft as PickMutable<Row>);\n });\n });\n }\n }\n}\n"]}
1
+ {"version":3,"file":"table-model.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/table/table-model.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BooleanValueModelChain,\n CanIdentify,\n Dsl,\n Form,\n GarbageCollector,\n lang,\n ListModel,\n ListModelChain,\n MapModelChain,\n MutableListModel,\n SelectionModel,\n TrackExternal,\n Types,\n UnaryCommand\n} from '@coolon/pectin';\nimport {\n ColumnModel,\n CustomValueColumnModel,\n EditorControlColumnModel,\n PropertyColumnModel,\n SelectionColumnModel\n} from './column-model';\nimport { ColumnTextProperties } from './column-text-properties';\nimport { EditSession } from './edit-session';\n\n// export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];\n// export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];\n\n\n/**\n * Example:\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"firstName\");\n * table.pluck(\"lastName\");\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n * });\n *\n * Editable tables\n * @example\n * const saveCommand = UnaryCommand.create((form: Form<Hero>) => {\n * if (form.validate()) {\n * // normal form save stuff\n * return true; // finish editing\n * }\n * return false; // continue editiing\n * }\n * const colorsNames: ListModel<string> = ...;\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"firstName\").cellEditor(StringInputComponent); <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }\n * table.pluck(\"lastName\").cellEditor(StringInputComponent, {\n * validators: [Validator.present(\"We need a last name\")]\n * });\n * table.pluck(\"age\").cellEditor(NumberInputComponent);\n * table.pluck(\"favoriteColor\").cellEditor(SelectInputComponent, {\n * initialiseComponent(component: SelectInputComponent) {\n * selectInput.optionsModel = colorsNames; // <- initialise our component\n * }\n * });\n * table.addEditControls(saveCommand); // <- required to enable editing\n * });\n *\n * Selection models\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model\n * table.pluck(\"firstName\");\n * table.pluck(\"lastName\");\n * });\n *\n * Custom cell renderers and editors\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"favoriteColor\")\n * .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {\n * // configure your component with what ever you need.\n * });\n * .cellRenderer(CellRendererComponent) // <-- interface CellEditor { value: string; }\n * .cellEditor(CellEditorComponent.); // <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n * });\n *\n * I18n\n * @example\n * [table.yml]\n * table:\n * columns(ColumnTextProperties[]):\n * firstName:\n * headerText: \"First Name\"\n * fullName:\n * headerText: \"Full Name\"\n *\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"favoriteColor\").cellRenderer(...).cellEditor(...);\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n *\n * table.columnTextProperties(I18n.table.columns); // <- configures all columns\n * });\n */\n@TrackExternal.Strategy(new TrackExternal.OneTimeBinding())\nexport class TableModel<Row> {\n\n private readonly _garbage = new GarbageCollector();\n\n private readonly _columns = new MutableListModel<ColumnModel<Row>>();\n private _columnsById: MapModelChain<string, ColumnModel<Row>>;\n private _editorSessions = new MutableListModel<EditSession<Row>>();\n private readonly _rowsBeingEdited: MutableListModel<Row>;\n\n private _columnTextPropertiesLookup: { [columnName: string]: () => ColumnTextProperties };\n\n readonly identityOf: CanIdentify<Row>['identityOf'];\n private saveCommand: UnaryCommand<Form<Row>, boolean>;\n private _editorSessionByRowId: MapModelChain<any, EditSession<Row>>;\n\n readonly editing: BooleanValueModelChain;\n readonly dataSource: ListModelChain<Row>;\n\n static fromList<Row>(sourceOfTruth: ListModel<Row>, builder?: (tableModel: TableModel<Row>) => void): TableModel<Row> {\n const model = new TableModel<Row>(sourceOfTruth);\n builder(model);\n return model;\n }\n\n protected constructor(private sourceOfTruth: ListModel<Row>) {\n this.identityOf = sourceOfTruth.identityOf;\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this._garbage);\n this._columnsById = chain(this._columns).indexBy('columnId');\n this._rowsBeingEdited = new MutableListModel<Row>([], {\n identifiedWith: this.identityOf\n });\n this._editorSessionByRowId = chain(this._editorSessions).indexBy('rowId');\n this.editing = chain(this._editorSessions).count().isGreaterThan(0);\n this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);\n }\n\n get rowsBeingEdited(): ListModel<Row> {\n return this._rowsBeingEdited.readonly;\n }\n\n getTrackByFunction() {\n return (index: number, item: Row) => {\n return this.identityOf ? this.identityOf(item) : index;\n };\n }\n\n get columns(): ListModel<ColumnModel<Row>> {\n return this._columns.readonly;\n }\n\n pluck<P extends Types.ValuePropertiesOf<Row>>(property: P): PropertyColumnModel<Row, P> {\n return this.addColumn(new PropertyColumnModel<Row, P>(property, this));\n }\n\n addSelectionColumn(selectionModel: SelectionModel<Row>): SelectionColumnModel<Row> {\n return this.addColumn(new SelectionColumnModel<Row>('selection', this, selectionModel));\n }\n\n addEditControls(saveCommand: UnaryCommand<Form<Row>, boolean>): EditorControlColumnModel<Row> {\n this.saveCommand = saveCommand;\n return this.addColumn(new EditorControlColumnModel<Row>('editControls', saveCommand, this));\n }\n\n addCustomColumn<V>(columnId: string, dataAccessor: (row: Row) => V): CustomValueColumnModel<Row, V> {\n return this.addColumn(new CustomValueColumnModel<Row, V>(columnId, this, dataAccessor));\n }\n\n protected addColumn<C extends ColumnModel<Row>>(column: C): C {\n if (this._columnsById.get(column.columnId)) {\n lang.illegalState(`Column with id=${column.columnId} already exists`);\n } else {\n this._columns.push(column);\n }\n return column;\n }\n\n columnTextProperties(columnTextProperties: { [columnName: string]: () => ColumnTextProperties }) {\n this._columnTextPropertiesLookup = columnTextProperties;\n }\n\n getColumnTextProperties(column: ColumnModel<Row>): ColumnTextProperties {\n const factory = this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[column.columnId] : undefined;\n return factory ? factory() : undefined;\n }\n\n startEditSession(row: Row): EditSession<Row> {\n const rowId = this.identityOf(row);\n if (this._rowsBeingEdited.query().indexOf(row) > -1) {\n return lang.illegalState(`Row with id=${rowId} already being edited`);\n } else {\n const editSession = new EditSession<Row>(rowId, row, this.saveCommand);\n const { when } = Dsl.disposeWith(editSession);\n when.valueOf(editSession.rowValueModel).changes((editedValue) => {\n this._rowsBeingEdited.replaceOrPush(editedValue);\n }, { initialValue: 'triggerChangeUnlessNil' });\n\n this._editorSessions.push(editSession);\n editSession.onDispose(() => {\n this._rowsBeingEdited.remove(editSession.rowValueModel.value);\n this._editorSessions.remove(editSession);\n });\n return editSession;\n }\n }\n\n getEditSessionFor(row: Row): EditSession<Row> {\n return this._editorSessionByRowId.get(this.identityOf(row));\n }\n\n cancelAllEditorSessions() {\n this._editorSessions.runInTransaction((draft) => {\n this._rowsBeingEdited.runInTransaction(() => {\n draft.value.forEach(session => session.dispose());\n });\n });\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { __decorate, __extends, __metadata } from "tslib";
2
2
  import { Component, HostBinding, Input } from '@angular/core';
3
3
  import { Command, TrackExternal } from '@coolon/pectin';
4
4
  import _ from 'lodash';
5
- import { DisposableComponent } from '../../../components';
5
+ import { DisposableComponent } from '../../../components/disposable-component';
6
6
  var ActivityActionsComponent = /** @class */ (function (_super) {
7
7
  __extends(ActivityActionsComponent, _super);
8
8
  function ActivityActionsComponent() {
@@ -1 +1 @@
1
- {"version":3,"file":"activity-actions.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/interaction/components/activity-actions/activity-actions.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO1D;IAA8C,4CAAmB;IAAjE;QAAA,qEA4BC;QAdC,WAAK,GAAoB,OAAO,CAAC;;IAcnC,CAAC;IAXC,sBAAI,8CAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QAC9B,CAAC;;;OAAA;IAED,2CAAQ,GAAR;IACA,CAAC;IAED,iDAAc,GAAd;QACE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAtBD;QAFC,KAAK,EAAE;QACP,aAAa,EAAE;kCACA,OAAO;oEAAM;IAG7B;QADC,KAAK,EAAE;;iEACY;IAIpB;QAFC,KAAK,EAAE;QACP,aAAa,EAAE;kCACD,OAAO;mEAAM;IAG5B;QADC,KAAK,EAAE;;2DACyB;IAGjC;QADC,WAAW,CAAC,iBAAiB,CAAC;;;4DAG9B;IAnBU,wBAAwB;QALpC,SAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,gdAAgD;;SAEjD,CAAC;OACW,wBAAwB,CA4BpC;IAAD,+BAAC;CAAA,AA5BD,CAA8C,mBAAmB,GA4BhE;SA5BY,wBAAwB","sourcesContent":["import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { Command, TrackExternal } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { DisposableComponent } from '../../../components';\n\n@Component({\n selector: 'aup-activity-actions',\n templateUrl: './activity-actions.component.html',\n styleUrls: ['./activity-actions.component.scss']\n})\nexport class ActivityActionsComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @TrackExternal()\n confirmCommand: Command<any>;\n\n @Input()\n confirmText: string;\n\n @Input()\n @TrackExternal()\n cancelCommand: Command<any>;\n\n @Input()\n align: 'start' | 'end' = 'start';\n\n @HostBinding('class.align-end')\n get alignEnd(): boolean {\n return this.align === 'end';\n }\n\n ngOnInit() {\n }\n\n hasConfirmText() {\n return !_.isEmpty(this.confirmText);\n }\n\n}\n"]}
1
+ {"version":3,"file":"activity-actions.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/interaction/components/activity-actions/activity-actions.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAO/E;IAA8C,4CAAmB;IAAjE;QAAA,qEA4BC;QAdC,WAAK,GAAoB,OAAO,CAAC;;IAcnC,CAAC;IAXC,sBAAI,8CAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QAC9B,CAAC;;;OAAA;IAED,2CAAQ,GAAR;IACA,CAAC;IAED,iDAAc,GAAd;QACE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAtBD;QAFC,KAAK,EAAE;QACP,aAAa,EAAE;kCACA,OAAO;oEAAM;IAG7B;QADC,KAAK,EAAE;;iEACY;IAIpB;QAFC,KAAK,EAAE;QACP,aAAa,EAAE;kCACD,OAAO;mEAAM;IAG5B;QADC,KAAK,EAAE;;2DACyB;IAGjC;QADC,WAAW,CAAC,iBAAiB,CAAC;;;4DAG9B;IAnBU,wBAAwB;QALpC,SAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,gdAAgD;;SAEjD,CAAC;OACW,wBAAwB,CA4BpC;IAAD,+BAAC;CAAA,AA5BD,CAA8C,mBAAmB,GA4BhE;SA5BY,wBAAwB","sourcesContent":["import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { Command, TrackExternal } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\n@Component({\n selector: 'aup-activity-actions',\n templateUrl: './activity-actions.component.html',\n styleUrls: ['./activity-actions.component.scss']\n})\nexport class ActivityActionsComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @TrackExternal()\n confirmCommand: Command<any>;\n\n @Input()\n confirmText: string;\n\n @Input()\n @TrackExternal()\n cancelCommand: Command<any>;\n\n @Input()\n align: 'start' | 'end' = 'start';\n\n @HostBinding('class.align-end')\n get alignEnd(): boolean {\n return this.align === 'end';\n }\n\n ngOnInit() {\n }\n\n hasConfirmText() {\n return !_.isEmpty(this.confirmText);\n }\n\n}\n"]}
@@ -2,8 +2,8 @@ import { __decorate, __extends, __metadata } from "tslib";
2
2
  import { ConnectedPosition, Overlay } from '@angular/cdk/overlay';
3
3
  import { ComponentPortal } from '@angular/cdk/portal';
4
4
  import { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';
5
- import { InPlaceInteractionContextComponent } from '../..';
6
- import { DisposableComponent } from '../../../components';
5
+ import { DisposableComponent } from '../../../components/disposable-component';
6
+ import { InPlaceInteractionContextComponent } from '../inplace-interaction-context/in-place-interaction-context.component';
7
7
  var PopupInteractionContextComponent = /** @class */ (function (_super) {
8
8
  __extends(PopupInteractionContextComponent, _super);
9
9
  function PopupInteractionContextComponent(_element, _overlay) {
@@ -1 +1 @@
1
- {"version":3,"file":"popup-interaction-context.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/interaction/components/popup-interaction-context/popup-interaction-context.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConnectedPosition, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity, InPlaceInteractionContextComponent } from '../..';\nimport { DisposableComponent } from '../../../components';\n\n@Component({\n selector: 'aup-popup-interaction-context',\n templateUrl: './popup-interaction-context.component.html',\n styleUrls: ['./popup-interaction-context.component.scss']\n})\nexport class PopupInteractionContextComponent extends DisposableComponent implements OnInit {\n\n private interactionContext: InPlaceInteractionContextComponent<any, any, any>;\n\n @HostBinding('class.interaction-active')\n public get active(): boolean {\n return this.isActive();\n }\n\n readonly outputPortal = new ComponentPortal<InPlaceInteractionContextComponent<any, any, any>>(InPlaceInteractionContextComponent);\n\n @Input()\n anchorX: 'start' | 'end' = 'start';\n\n @Input()\n anchorY: 'top' | 'bottom' = 'bottom';\n\n constructor(private _element: ElementRef, private _overlay: Overlay) {\n super();\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n\n const overlayRef = this._overlay.create({\n hasBackdrop: false,\n panelClass: 'aup-popup-interaction-panel',\n positionStrategy: this._overlay.position()\n .flexibleConnectedTo(this._element)\n .withPositions(this.computePositions())\n .withGrowAfterOpen(true)\n });\n\n const componentRef = overlayRef.attach(this.outputPortal);\n this.interactionContext = componentRef.instance;\n\n return new Promise((resolve, reject) => {\n // HACK: afterViewInit won't have been called yet. Need to add when.valueOf(interactionContext.ready).becomesTruthy(...)\n setTimeout(() => {\n this.interactionContext.startActivity(activityType, data)\n .then(resolve)\n .catch(reject)\n .finally(() => overlayRef.dispose());\n });\n });\n }\n\n computePositions(): ConnectedPosition[] {\n const overlayX = this.anchorX === 'start' ? 'start' : 'end';\n const overlayY = this.anchorY === 'top' ? 'bottom' : 'top';\n return [\n { originX: this.anchorX, originY: this.anchorY, overlayX: overlayX, overlayY: overlayY }\n // TODO: compute some meaningful alternatives.\n // { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n // { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n // { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n // { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' }\n ];\n }\n\n cancelActiveActivity(): Promise<boolean> {\n return this.interactionContext.cancelActiveActivity();\n }\n\n isActive(): boolean {\n return this.interactionContext && this.interactionContext.isActive();\n }\n\n ngOnInit() {\n }\n\n\n}\n"]}
1
+ {"version":3,"file":"popup-interaction-context.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/interaction/components/popup-interaction-context/popup-interaction-context.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConnectedPosition, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { Activity } from '../../activity';\nimport { InPlaceInteractionContextComponent } from '../inplace-interaction-context/in-place-interaction-context.component';\n\n@Component({\n selector: 'aup-popup-interaction-context',\n templateUrl: './popup-interaction-context.component.html',\n styleUrls: ['./popup-interaction-context.component.scss']\n})\nexport class PopupInteractionContextComponent extends DisposableComponent implements OnInit {\n\n private interactionContext: InPlaceInteractionContextComponent<any, any, any>;\n\n @HostBinding('class.interaction-active')\n public get active(): boolean {\n return this.isActive();\n }\n\n readonly outputPortal = new ComponentPortal<InPlaceInteractionContextComponent<any, any, any>>(InPlaceInteractionContextComponent);\n\n @Input()\n anchorX: 'start' | 'end' = 'start';\n\n @Input()\n anchorY: 'top' | 'bottom' = 'bottom';\n\n constructor(private _element: ElementRef, private _overlay: Overlay) {\n super();\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n\n const overlayRef = this._overlay.create({\n hasBackdrop: false,\n panelClass: 'aup-popup-interaction-panel',\n positionStrategy: this._overlay.position()\n .flexibleConnectedTo(this._element)\n .withPositions(this.computePositions())\n .withGrowAfterOpen(true)\n });\n\n const componentRef = overlayRef.attach(this.outputPortal);\n this.interactionContext = componentRef.instance;\n\n return new Promise((resolve, reject) => {\n // HACK: afterViewInit won't have been called yet. Need to add when.valueOf(interactionContext.ready).becomesTruthy(...)\n setTimeout(() => {\n this.interactionContext.startActivity(activityType, data)\n .then(resolve)\n .catch(reject)\n .finally(() => overlayRef.dispose());\n });\n });\n }\n\n computePositions(): ConnectedPosition[] {\n const overlayX = this.anchorX === 'start' ? 'start' : 'end';\n const overlayY = this.anchorY === 'top' ? 'bottom' : 'top';\n return [\n { originX: this.anchorX, originY: this.anchorY, overlayX: overlayX, overlayY: overlayY }\n // TODO: compute some meaningful alternatives.\n // { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n // { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n // { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n // { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' }\n ];\n }\n\n cancelActiveActivity(): Promise<boolean> {\n return this.interactionContext.cancelActiveActivity();\n }\n\n isActive(): boolean {\n return this.interactionContext && this.interactionContext.isActive();\n }\n\n ngOnInit() {\n }\n\n\n}\n"]}