@coolon/angular-ui-powerups 2.0.0-alpha.24 → 2.0.0-alpha.26

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 (32) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js +23 -23
  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.metadata.json +1 -1
  7. package/esm2015/lib/components/commands/command-face.js +8 -8
  8. package/esm2015/lib/components/commands/command-face.js.map +1 -1
  9. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  10. package/esm2015/lib/components/forms/abstract-list-input.component.js +1 -1
  11. package/esm2015/lib/components/forms/abstract-list-input.component.js.map +1 -1
  12. package/esm2015/lib/components/forms/abstract-value-input.component.js +1 -1
  13. package/esm2015/lib/components/forms/abstract-value-input.component.js.map +1 -1
  14. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js +6 -6
  15. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -1
  16. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.metadata.json +1 -1
  17. package/esm5/lib/components/commands/command-face.js +16 -16
  18. package/esm5/lib/components/commands/command-face.js.map +1 -1
  19. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  20. package/esm5/lib/components/forms/abstract-list-input.component.js +1 -1
  21. package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
  22. package/esm5/lib/components/forms/abstract-value-input.component.js +1 -1
  23. package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
  24. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js +5 -5
  25. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -1
  26. package/fesm2015/coolon-angular-ui-powerups.js +16 -16
  27. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  28. package/fesm5/coolon-angular-ui-powerups.js +23 -23
  29. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  30. package/lib/components/commands/command-face.d.ts +1 -1
  31. package/lib/components/table/table-row-menu/table-row-menu.component.d.ts +3 -3
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-list-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-list-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,GAAG,EAEH,IAAI,EACJ,KAAK,EAEL,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAmD,8CAA2B;IAuC5E;QAAA,YACE,iBAAO,SAmBR;QAtDD;;;;;;;;;WASG;QACD,0FAA0F;QACzE,oBAAc,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAK,CAAC,CAAC;QACtF,wBAAkB,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAEhD,0BAAoB,GAAG,IAAI,KAAK,EAAE,CAAC;QAkBxB,iBAAW,GAAG,IAAI,YAAY,EAAO,CAAC;QAIjD,IAAA,2BAAgD,EAA9C,cAAI,EAAE,oBAAO,EAAE,gBAA+B,CAAC;QACvD,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,kBAAkB,CAAC,CAAC;QACnF,IAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,KAAI,CAAC,oBAAoB,EACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,EAAE,GAAG;YAC5C,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAV,CAAU,CAAC,CAAC;QACpD,CAAC,EAAE;YACD,YAAY,EAAE,QAAQ;YACtB,4EAA4E;YAC5E,gEAAgE;YAChE,gCAAgC;YAChC,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,EAAK,KAAI,CAAC,WAAW,CAAC,IAAI,oBAAiB,CAAC,CAAC;;IACnF,CAAC;IAjCQ,sBAAI,6CAAK;QAHlB,uFAAuF;QACvF,wFAAwF;QACxF,gBAAgB;aACP,UAAU,KAAU;YAA7B,iBASC;YARC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE;oBACpB,KAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAI,KAAK,CAAC,CAAC;oBACjD,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,UAAU,CAAC;iBAClC;qBAAM;oBACL,KAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;QACL,CAAC;;;OAAA;IAhCD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;;iEACD;IAuB/C;QAAR,KAAK,EAAE;;;2DASP;IAES;QAAT,MAAM,EAAE;;mEAAgD;IArC9C,0BAA0B;QADtC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;OACf,0BAA0B,CA6DtC;IAAD,iCAAC;CAAA,AA7DD,CAAmD,sBAAsB,GA6DxE;SA7DY,0BAA0B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n Binding,\n DebugContext,\n Dsl,\n EventListenerList,\n Form,\n Guard,\n IMutableListModel,\n MutableListModel,\n TrackExternal\n} from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractListInputComponent<T> extends AbstractInputComponent<T[]> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'formValueModel' })\n listModel: Form.ListModelBase<T> | IMutableListModel<T>;\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: Form.ListModelBase<string> | IMutableListModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n protected readonly formValueModel = this.registerDisposable(new Form.DelegatingListModel<T>());\n readonly componentListModel = new MutableListModel<T>();\n\n private setValueIsInProgress = new Guard();\n // we need this for plain values otherwise our Form.DelegatingListModel will stay disabled.\n private listHolder: MutableListModel<T>;\n\n // We add support for simple direct display of values by allowing components to be used\n // by `component.value = ...` This use of the component without a value model in tables\n // and the like.\n @Input() set value(value: T[]) {\n this.setValueIsInProgress.whileTrue(() => {\n if (!this.listHolder) {\n this.listHolder = new MutableListModel<T>(value);\n this.listModel = this.listHolder;\n } else {\n this.listHolder.value = value;\n }\n });\n }\n\n @Output() readonly valueChange = new EventEmitter<T[]>();\n\n constructor() {\n super();\n const { when, valueOf, chain } = Dsl.disposeWith(this);\n const binding = new Binding.Identity(this.formValueModel, this.componentListModel);\n const inExternalChange = valueOf.any(\n this.setValueIsInProgress,\n chain(binding.direction).equals(Binding.Direction.RIGHT)\n ).areTruthy();\n\n when(this.componentListModel).changes((is, was) => {\n this.valueChange.emit(is);\n this.onValueEditedListeners.fire(l => l(is, was));\n }, {\n initialValue: 'ignore',\n // we never fire events during an external changes to the value. This allows\n // the component to behave when used in the conventional angular\n // fashion, i.e. [(value)]=\"...\"\n unless: inExternalChange\n });\n DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);\n }\n\n}\n"]}
1
+ {"version":3,"file":"abstract-list-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-list-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,GAAG,EAEH,IAAI,EACJ,KAAK,EAEL,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAmD,8CAA2B;IAuC5E;QAAA,YACE,iBAAO,SAmBR;QAtDD;;;;;;;;;WASG;QACD,0FAA0F;QACzE,oBAAc,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAK,CAAC,CAAC;QACtF,wBAAkB,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAEhD,0BAAoB,GAAG,IAAI,KAAK,EAAE,CAAC;QAkBxB,iBAAW,GAAG,IAAI,YAAY,EAAO,CAAC;QAIjD,IAAA,2BAAgD,EAA9C,cAAI,EAAE,oBAAO,EAAE,gBAA+B,CAAC;QACvD,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAC;QAChG,IAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,KAAI,CAAC,oBAAoB,EACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,EAAE,GAAG;YAC5C,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAV,CAAU,CAAC,CAAC;QACpD,CAAC,EAAE;YACD,YAAY,EAAE,QAAQ;YACtB,4EAA4E;YAC5E,gEAAgE;YAChE,gCAAgC;YAChC,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,EAAK,KAAI,CAAC,WAAW,CAAC,IAAI,oBAAiB,CAAC,CAAC;;IACnF,CAAC;IAjCQ,sBAAI,6CAAK;QAHlB,uFAAuF;QACvF,wFAAwF;QACxF,gBAAgB;aACP,UAAU,KAAU;YAA7B,iBASC;YARC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE;oBACpB,KAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAI,KAAK,CAAC,CAAC;oBACjD,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,UAAU,CAAC;iBAClC;qBAAM;oBACL,KAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;QACL,CAAC;;;OAAA;IAhCD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;;iEACD;IAuB/C;QAAR,KAAK,EAAE;;;2DASP;IAES;QAAT,MAAM,EAAE;;mEAAgD;IArC9C,0BAA0B;QADtC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;OACf,0BAA0B,CA6DtC;IAAD,iCAAC;CAAA,AA7DD,CAAmD,sBAAsB,GA6DxE;SA7DY,0BAA0B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n Binding,\n DebugContext,\n Dsl,\n EventListenerList,\n Form,\n Guard,\n IMutableListModel,\n MutableListModel,\n TrackExternal\n} from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractListInputComponent<T> extends AbstractInputComponent<T[]> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'formValueModel' })\n listModel: Form.ListModelBase<T> | IMutableListModel<T>;\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: Form.ListModelBase<string> | IMutableListModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n protected readonly formValueModel = this.registerDisposable(new Form.DelegatingListModel<T>());\n readonly componentListModel = new MutableListModel<T>();\n\n private setValueIsInProgress = new Guard();\n // we need this for plain values otherwise our Form.DelegatingListModel will stay disabled.\n private listHolder: MutableListModel<T>;\n\n // We add support for simple direct display of values by allowing components to be used\n // by `component.value = ...` This use of the component without a value model in tables\n // and the like.\n @Input() set value(value: T[]) {\n this.setValueIsInProgress.whileTrue(() => {\n if (!this.listHolder) {\n this.listHolder = new MutableListModel<T>(value);\n this.listModel = this.listHolder;\n } else {\n this.listHolder.value = value;\n }\n });\n }\n\n @Output() readonly valueChange = new EventEmitter<T[]>();\n\n constructor() {\n super();\n const { when, valueOf, chain } = Dsl.disposeWith(this);\n const binding = new Binding.Identity(this.formValueModel, this.componentListModel).writeRight();\n const inExternalChange = valueOf.any(\n this.setValueIsInProgress,\n chain(binding.direction).equals(Binding.Direction.RIGHT)\n ).areTruthy();\n\n when(this.componentListModel).changes((is, was) => {\n this.valueChange.emit(is);\n this.onValueEditedListeners.fire(l => l(is, was));\n }, {\n initialValue: 'ignore',\n // we never fire events during an external changes to the value. This allows\n // the component to behave when used in the conventional angular\n // fashion, i.e. [(value)]=\"...\"\n unless: inExternalChange\n });\n DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);\n }\n\n}\n"]}
@@ -23,7 +23,7 @@ var AbstractValueInputComponent = /** @class */ (function (_super) {
23
23
  _this.componentValueModel = new MutableValueModel();
24
24
  _this.valueChange = new EventEmitter();
25
25
  var _a = Dsl.disposeWith(_this), when = _a.when, chain = _a.chain, valueOf = _a.valueOf;
26
- var binding = new Binding.Identity(_this.formValueModel, _this.componentValueModel);
26
+ var binding = new Binding.Identity(_this.formValueModel, _this.componentValueModel).writeRight();
27
27
  var inExternalChange = valueOf.any(_this.setValueInProgress, chain(binding.direction).equals(Binding.Direction.RIGHT)).areTruthy();
28
28
  when(_this.componentValueModel).changes(function (is, was) {
29
29
  _this.valueChange.emit(is);
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-value-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-value-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,GAAG,EACH,IAAI,EACJ,KAAK,EAEL,iBAAiB,EACjB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAoD,+CAAyB;IAuC3E;QAAA,YACE,iBAAO,SAmBR;QAtDD;;;;;;;;;WASG;QACD,0FAA0F;QACzE,oBAAc,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAK,CAAC,CAAC;QAEtF,wBAAkB,GAAG,IAAI,KAAK,EAAE,CAAC;QAClC,yBAAmB,GAAG,IAAI,iBAAiB,EAAK,CAAC;QAkBvC,iBAAW,GAAG,IAAI,YAAY,EAAK,CAAC;QAI/C,IAAA,2BAAgD,EAA9C,cAAI,EAAE,gBAAK,EAAE,oBAAiC,CAAC;QACvD,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,mBAAmB,CAAC,CAAC;QACpF,IAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,KAAI,CAAC,kBAAkB,EACvB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,EAAE,GAAG;YAC7C,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAV,CAAU,CAAC,CAAC;QACpD,CAAC,EAAE;YACD,YAAY,EAAE,QAAQ;YACtB,2EAA2E;YAC3E,gEAAgE;YAChE,gCAAgC;YAChC,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,EAAK,KAAI,CAAC,WAAW,CAAC,IAAI,oBAAiB,CAAC,CAAC;;IACnF,CAAC;IAjCQ,sBAAI,8CAAK;QAHlB,uFAAuF;QACvF,wFAAwF;QACxF,gBAAgB;aACP,UAAU,KAAQ;YAA3B,iBASC;YARC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,KAAI,CAAC,gBAAgB,EAAE;oBAC1B,KAAI,CAAC,gBAAgB,GAAG,IAAI,iBAAiB,CAAI,KAAK,CAAC,CAAC;oBACxD,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CAAC;iBACzC;qBAAM;oBACL,KAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;iBACrC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;;;OAAA;IAhCD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;;mEACE;IAuBlD;QAAR,KAAK,EAAE;;;4DASP;IAES;QAAT,MAAM,EAAE;;oEAA8C;IArC5C,2BAA2B;QADvC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;OACf,2BAA2B,CA6DvC;IAAD,kCAAC;CAAA,AA7DD,CAAoD,sBAAsB,GA6DzE;SA7DY,2BAA2B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n Binding,\n DebugContext,\n Dsl,\n Form,\n Guard,\n IMutableValueModel,\n MutableValueModel,\n TrackExternal\n} from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractValueInputComponent<T> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'formValueModel' })\n valueModel: Form.ValueModelBase<T> | IMutableValueModel<T>;\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: DirtyTrackingForm.ValueModel<string> | IMutableValueModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n protected readonly formValueModel = this.registerDisposable(new Form.DelegatingValueModel<T>());\n\n protected setValueInProgress = new Guard();\n readonly componentValueModel = new MutableValueModel<T>();\n // we need this for plain values otherwise our Form.DelegatingValueModel will stay disabled.\n private plainValueHolder: MutableValueModel<T>;\n\n // We add support for simple direct display of values by allowing components to be used\n // by `component.value = ...` This use of the component without a value model in tables\n // and the like.\n @Input() set value(value: T) {\n this.setValueInProgress.whileTrue(() => {\n if (!this.plainValueHolder) {\n this.plainValueHolder = new MutableValueModel<T>(value);\n this.valueModel = this.plainValueHolder;\n } else {\n this.plainValueHolder.value = value;\n }\n });\n }\n\n @Output() readonly valueChange = new EventEmitter<T>();\n\n constructor() {\n super();\n const { when, chain, valueOf } = Dsl.disposeWith(this);\n const binding = new Binding.Identity(this.formValueModel, this.componentValueModel);\n const inExternalChange = valueOf.any(\n this.setValueInProgress,\n chain(binding.direction).equals(Binding.Direction.RIGHT)\n ).areTruthy();\n\n when(this.componentValueModel).changes((is, was) => {\n this.valueChange.emit(is);\n this.onValueEditedListeners.fire(l => l(is, was));\n }, {\n initialValue: 'ignore',\n // we never fire events during an external set value operation. This allows\n // the component to behave when used in the conventional angular\n // fashion, i.e. [(value)]=\"...\"\n unless: inExternalChange\n });\n DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);\n }\n\n}\n"]}
1
+ {"version":3,"file":"abstract-value-input.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/forms/abstract-value-input.component.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,OAAO,EACP,YAAY,EACZ,GAAG,EACH,IAAI,EACJ,KAAK,EAEL,iBAAiB,EACjB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;IAAoD,+CAAyB;IAuC3E;QAAA,YACE,iBAAO,SAmBR;QAtDD;;;;;;;;;WASG;QACD,0FAA0F;QACzE,oBAAc,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAK,CAAC,CAAC;QAEtF,wBAAkB,GAAG,IAAI,KAAK,EAAE,CAAC;QAClC,yBAAmB,GAAG,IAAI,iBAAiB,EAAK,CAAC;QAkBvC,iBAAW,GAAG,IAAI,YAAY,EAAK,CAAC;QAI/C,IAAA,2BAAgD,EAA9C,cAAI,EAAE,gBAAK,EAAE,oBAAiC,CAAC;QACvD,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAC;QACjG,IAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,KAAI,CAAC,kBAAkB,EACvB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;QAEd,IAAI,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,EAAE,GAAG;YAC7C,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAV,CAAU,CAAC,CAAC;QACpD,CAAC,EAAE;YACD,YAAY,EAAE,QAAQ;YACtB,2EAA2E;YAC3E,gEAAgE;YAChE,gCAAgC;YAChC,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,EAAK,KAAI,CAAC,WAAW,CAAC,IAAI,oBAAiB,CAAC,CAAC;;IACnF,CAAC;IAjCQ,sBAAI,8CAAK;QAHlB,uFAAuF;QACvF,wFAAwF;QACxF,gBAAgB;aACP,UAAU,KAAQ;YAA3B,iBASC;YARC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,KAAI,CAAC,gBAAgB,EAAE;oBAC1B,KAAI,CAAC,gBAAgB,GAAG,IAAI,iBAAiB,CAAI,KAAK,CAAC,CAAC;oBACxD,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CAAC;iBACzC;qBAAM;oBACL,KAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;iBACrC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;;;OAAA;IAhCD;QADC,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;;mEACE;IAuBlD;QAAR,KAAK,EAAE;;;4DASP;IAES;QAAT,MAAM,EAAE;;oEAA8C;IArC5C,2BAA2B;QADvC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;OACf,2BAA2B,CA6DvC;IAAD,kCAAC;CAAA,AA7DD,CAAoD,sBAAsB,GA6DzE;SA7DY,2BAA2B","sourcesContent":["/* tslint:disable:no-input-rename */\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n Binding,\n DebugContext,\n Dsl,\n Form,\n Guard,\n IMutableValueModel,\n MutableValueModel,\n TrackExternal\n} from '@coolon/pectin';\nimport { AbstractInputComponent } from './abstract-input.component';\n\n@Component({ template: '' })\nexport class AbstractValueInputComponent<T> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @TrackExternal({ delegateTo: 'formValueModel' })\n valueModel: Form.ValueModelBase<T> | IMutableValueModel<T>;\n\n /**\n * A backing model for all our @Input() valueModel properties which should be defined as follows.\n *\n * @Input() @TrackExternal({useExisting: \"inputModel\"})\n * valueModel: DirtyTrackingForm.ValueModel<string> | IMutableValueModel<string>;\n *\n * This approach allows the input to accept plain or form models but all backed by a form\n * friendly delegate. We have to use an existing delegate for union types as pectin just\n * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).\n */\n // We have to register it as a disposable so it ditches any listeners when we're disposed.\n protected readonly formValueModel = this.registerDisposable(new Form.DelegatingValueModel<T>());\n\n protected setValueInProgress = new Guard();\n readonly componentValueModel = new MutableValueModel<T>();\n // we need this for plain values otherwise our Form.DelegatingValueModel will stay disabled.\n private plainValueHolder: MutableValueModel<T>;\n\n // We add support for simple direct display of values by allowing components to be used\n // by `component.value = ...` This use of the component without a value model in tables\n // and the like.\n @Input() set value(value: T) {\n this.setValueInProgress.whileTrue(() => {\n if (!this.plainValueHolder) {\n this.plainValueHolder = new MutableValueModel<T>(value);\n this.valueModel = this.plainValueHolder;\n } else {\n this.plainValueHolder.value = value;\n }\n });\n }\n\n @Output() readonly valueChange = new EventEmitter<T>();\n\n constructor() {\n super();\n const { when, chain, valueOf } = Dsl.disposeWith(this);\n const binding = new Binding.Identity(this.formValueModel, this.componentValueModel).writeRight();\n const inExternalChange = valueOf.any(\n this.setValueInProgress,\n chain(binding.direction).equals(Binding.Direction.RIGHT)\n ).areTruthy();\n\n when(this.componentValueModel).changes((is, was) => {\n this.valueChange.emit(is);\n this.onValueEditedListeners.fire(l => l(is, was));\n }, {\n initialValue: 'ignore',\n // we never fire events during an external set value operation. This allows\n // the component to behave when used in the conventional angular\n // fashion, i.e. [(value)]=\"...\"\n unless: inExternalChange\n });\n DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);\n }\n\n}\n"]}
@@ -12,7 +12,7 @@ var MenuItemData = /** @class */ (function (_super) {
12
12
  return _this;
13
13
  }
14
14
  return MenuItemData;
15
- }(CommandFace.Instance));
15
+ }(CommandFace.Adapter));
16
16
  /**
17
17
  *
18
18
  */
@@ -32,16 +32,16 @@ var TableRowMenuComponent = /** @class */ (function (_super) {
32
32
  };
33
33
  TableRowMenuComponent.prototype.ngOnInit = function () {
34
34
  };
35
- TableRowMenuComponent.prototype.createCommandFor = function (item, value) {
35
+ TableRowMenuComponent.prototype.createMoreMenuCommand = function (item, value) {
36
36
  var _this = this;
37
37
  var when = Dsl.disposeWith(this).when;
38
38
  var command = item.factory.create(value);
39
39
  when(command.busy).becomesFalsey(function () {
40
- _this.closeMenu();
40
+ _this.closeMoreMenu();
41
41
  });
42
42
  return command;
43
43
  };
44
- TableRowMenuComponent.prototype.closeMenu = function () {
44
+ TableRowMenuComponent.prototype.closeMoreMenu = function () {
45
45
  this.menu.closeMenu();
46
46
  };
47
47
  __decorate([
@@ -55,7 +55,7 @@ var TableRowMenuComponent = /** @class */ (function (_super) {
55
55
  TableRowMenuComponent = __decorate([
56
56
  Component({
57
57
  selector: 'aup-table-row-menu',
58
- template: "\n <button mat-icon-button *ngFor=\"let action of actions\" [pectinCommand]=\"createCommandFor(action, value)\">\n <aup-icon [icon]=\"action.icon\"></aup-icon>\n </button>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <button #trigger mat-icon-button [matMenuTriggerFor]=\"menu\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\" matTooltip=\"More options...\">\n <button *ngFor=\"let action of moreActions\"\n mat-menu-item\n [pectinCommand]=\"createCommandFor(action, value)\"\n >\n <aup-icon *ngIf=\"action.icon && action.iconPositionStart\" [icon]=\"action.icon\"></aup-icon>\n {{action.text}}\n <aup-icon *ngIf=\"action.icon && action.iconPositionEnd\" [icon]=\"action.icon\"></aup-icon>\n </button>\n </mat-menu>\n </ng-container>\n ",
58
+ template: "\n <button mat-icon-button *ngFor=\"let action of actions\" [pectinCommand]=\"action.factory.create(value)\">\n <aup-icon [icon]=\"action.icon\"></aup-icon>\n </button>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <button #trigger mat-icon-button [matMenuTriggerFor]=\"menu\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\" matTooltip=\"More options...\">\n <button *ngFor=\"let action of moreActions\"\n mat-menu-item\n [pectinCommand]=\"createMoreMenuCommand(action, value)\"\n >\n <aup-icon *ngIf=\"action.icon && action.iconPositionStart\" [icon]=\"action.icon\"></aup-icon>\n {{action.text}}\n <aup-icon *ngIf=\"action.icon && action.iconPositionEnd\" [icon]=\"action.icon\"></aup-icon>\n </button>\n </mat-menu>\n </ng-container>\n ",
59
59
  styles: [":host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }"]
60
60
  }),
61
61
  __metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":"table-row-menu.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/table/table-row-menu/table-row-menu.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE;IAA8B,gCAAoB;IAChD,sBAAqB,OAAiC,EAAE,IAAiB;QAAzE,YACE,kBAAM,IAAI,CAAC,SACZ;QAFoB,aAAO,GAAP,OAAO,CAA0B;;IAEtD,CAAC;IACH,mBAAC;AAAD,CAAC,AAJD,CAA8B,WAAW,CAAC,QAAQ,GAIjD;AAED;;GAEG;AA6BH;IAA8C,yCAAmB;IAmB/D;QAAA,YACE,iBAAO,SACR;QAbQ,aAAO,GAAsB,EAAE,CAAC;QAChC,iBAAW,GAAsB,EAAE,CAAC;;IAY7C,CAAC;IAVD,8CAAc,GAAd,UAAe,cAAwC,EAAE,UAAuB;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,kDAAkB,GAAlB,UAAmB,cAAwC,EAAE,UAAuB;QAClF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IACtE,CAAC;IAMD,wCAAQ,GAAR;IACA,CAAC;IAED,gDAAgB,GAAhB,UAAiB,IAAqB,EAAE,KAAQ;QAAhD,iBAOC;QANS,IAAA,iCAAI,CAA2B;QACvC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC/B,KAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,yCAAS,GAAjB;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IAlCD;QADC,KAAK,EAAE;;wDACC;IAGT;QADC,SAAS,CAAC,cAAc,CAAC;kCACpB,cAAc;uDAAC;IANV,qBAAqB;QA5BjC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,m6BAmBT;qBACQ,6FAIP;SACH,CAAC;;OACW,qBAAqB,CAsCjC;IAAD,4BAAC;CAAA,AAtCD,CAA8C,mBAAmB,GAsChE;SAtCY,qBAAqB","sourcesContent":["import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\n\nimport { Command, Dsl } from '@coolon/pectin';\nimport { CommandFace } from '../../commands/command-face';\nimport { DisposableComponent } from '../../disposable-component';\n\n\nclass MenuItemData<T> extends CommandFace.Instance {\n constructor(readonly factory: Command.Factory<T, void>, face: CommandFace) {\n super(face);\n }\n}\n\n/**\n *\n */\n@Component({\n selector: 'aup-table-row-menu',\n template: `\n <button mat-icon-button *ngFor=\"let action of actions\" [pectinCommand]=\"createCommandFor(action, value)\">\n <aup-icon [icon]=\"action.icon\"></aup-icon>\n </button>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <button #trigger mat-icon-button [matMenuTriggerFor]=\"menu\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\" matTooltip=\"More options...\">\n <button *ngFor=\"let action of moreActions\"\n mat-menu-item\n [pectinCommand]=\"createCommandFor(action, value)\"\n >\n <aup-icon *ngIf=\"action.icon && action.iconPositionStart\" [icon]=\"action.icon\"></aup-icon>\n {{action.text}}\n <aup-icon *ngIf=\"action.icon && action.iconPositionEnd\" [icon]=\"action.icon\"></aup-icon>\n </button>\n </mat-menu>\n </ng-container>\n `,\n styles: [`:host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }`]\n})\nexport class TableRowMenuComponent<T> extends DisposableComponent implements OnInit {\n\n @Input()\n value: T;\n\n @ViewChild(MatMenuTrigger)\n menu: MatMenuTrigger;\n\n readonly actions: MenuItemData<T>[] = [];\n readonly moreActions: MenuItemData<T>[] = [];\n\n registerAction(commandFactory: Command.Factory<T, void>, properties: CommandFace) {\n this.actions.push(new MenuItemData(commandFactory, properties));\n }\n\n registerMoreAction(commandFactory: Command.Factory<T, void>, properties: CommandFace) {\n this.moreActions.push(new MenuItemData(commandFactory, properties));\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n createCommandFor(item: MenuItemData<T>, value: T): Command<void> {\n const { when } = Dsl.disposeWith(this);\n const command = item.factory.create(value);\n when(command.busy).becomesFalsey(() => {\n this.closeMenu();\n });\n return command;\n }\n\n private closeMenu() {\n this.menu.closeMenu();\n }\n}\n"]}
1
+ {"version":3,"file":"table-row-menu.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/table/table-row-menu/table-row-menu.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE;IAA8B,gCAAmB;IAC/C,sBAAqB,OAAiC,EAAE,IAAiB;QAAzE,YACE,kBAAM,IAAI,CAAC,SACZ;QAFoB,aAAO,GAAP,OAAO,CAA0B;;IAEtD,CAAC;IACH,mBAAC;AAAD,CAAC,AAJD,CAA8B,WAAW,CAAC,OAAO,GAIhD;AAED;;GAEG;AA6BH;IAA8C,yCAAmB;IAmB/D;QAAA,YACE,iBAAO,SACR;QAbQ,aAAO,GAAsB,EAAE,CAAC;QAChC,iBAAW,GAAsB,EAAE,CAAC;;IAY7C,CAAC;IAVD,8CAAc,GAAd,UAAe,cAAwC,EAAE,UAAuB;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,kDAAkB,GAAlB,UAAmB,cAAwC,EAAE,UAAuB;QAClF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IACtE,CAAC;IAMD,wCAAQ,GAAR;IACA,CAAC;IAED,qDAAqB,GAArB,UAAsB,IAAqB,EAAE,KAAQ;QAArD,iBAOC;QANS,IAAA,iCAAI,CAA2B;QACvC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC/B,KAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,6CAAa,GAArB;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IAlCD;QADC,KAAK,EAAE;;wDACC;IAGT;QADC,SAAS,CAAC,cAAc,CAAC;kCACpB,cAAc;uDAAC;IANV,qBAAqB;QA5BjC,SAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,q6BAmBT;qBACQ,6FAIP;SACH,CAAC;;OACW,qBAAqB,CAsCjC;IAAD,4BAAC;CAAA,AAtCD,CAA8C,mBAAmB,GAsChE;SAtCY,qBAAqB","sourcesContent":["import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\n\nimport { Command, Dsl } from '@coolon/pectin';\nimport { CommandFace } from '../../commands/command-face';\nimport { DisposableComponent } from '../../disposable-component';\n\n\nclass MenuItemData<T> extends CommandFace.Adapter {\n constructor(readonly factory: Command.Factory<T, void>, face: CommandFace) {\n super(face);\n }\n}\n\n/**\n *\n */\n@Component({\n selector: 'aup-table-row-menu',\n template: `\n <button mat-icon-button *ngFor=\"let action of actions\" [pectinCommand]=\"action.factory.create(value)\">\n <aup-icon [icon]=\"action.icon\"></aup-icon>\n </button>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <button #trigger mat-icon-button [matMenuTriggerFor]=\"menu\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\" matTooltip=\"More options...\">\n <button *ngFor=\"let action of moreActions\"\n mat-menu-item\n [pectinCommand]=\"createMoreMenuCommand(action, value)\"\n >\n <aup-icon *ngIf=\"action.icon && action.iconPositionStart\" [icon]=\"action.icon\"></aup-icon>\n {{action.text}}\n <aup-icon *ngIf=\"action.icon && action.iconPositionEnd\" [icon]=\"action.icon\"></aup-icon>\n </button>\n </mat-menu>\n </ng-container>\n `,\n styles: [`:host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }`]\n})\nexport class TableRowMenuComponent<T> extends DisposableComponent implements OnInit {\n\n @Input()\n value: T;\n\n @ViewChild(MatMenuTrigger)\n menu: MatMenuTrigger;\n\n readonly actions: MenuItemData<T>[] = [];\n readonly moreActions: MenuItemData<T>[] = [];\n\n registerAction(commandFactory: Command.Factory<T, void>, properties: CommandFace) {\n this.actions.push(new MenuItemData(commandFactory, properties));\n }\n\n registerMoreAction(commandFactory: Command.Factory<T, void>, properties: CommandFace) {\n this.moreActions.push(new MenuItemData(commandFactory, properties));\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n createMoreMenuCommand(item: MenuItemData<T>, value: T): Command<void> {\n const { when } = Dsl.disposeWith(this);\n const command = item.factory.create(value);\n when(command.busy).becomesFalsey(() => {\n this.closeMoreMenu();\n });\n return command;\n }\n\n private closeMoreMenu() {\n this.menu.closeMenu();\n }\n}\n"]}
@@ -649,7 +649,7 @@ let AbstractListInputComponent = class AbstractListInputComponent extends Abstra
649
649
  this.setValueIsInProgress = new Guard();
650
650
  this.valueChange = new EventEmitter();
651
651
  const { when, valueOf, chain } = Dsl.disposeWith(this);
652
- const binding = new Binding.Identity(this.formValueModel, this.componentListModel);
652
+ const binding = new Binding.Identity(this.formValueModel, this.componentListModel).writeRight();
653
653
  const inExternalChange = valueOf.any(this.setValueIsInProgress, chain(binding.direction).equals(Binding.Direction.RIGHT)).areTruthy();
654
654
  when(this.componentListModel).changes((is, was) => {
655
655
  this.valueChange.emit(is);
@@ -715,7 +715,7 @@ let AbstractValueInputComponent = class AbstractValueInputComponent extends Abst
715
715
  this.componentValueModel = new MutableValueModel();
716
716
  this.valueChange = new EventEmitter();
717
717
  const { when, chain, valueOf } = Dsl.disposeWith(this);
718
- const binding = new Binding.Identity(this.formValueModel, this.componentValueModel);
718
+ const binding = new Binding.Identity(this.formValueModel, this.componentValueModel).writeRight();
719
719
  const inExternalChange = valueOf.any(this.setValueInProgress, chain(binding.direction).equals(Binding.Direction.RIGHT)).areTruthy();
720
720
  when(this.componentValueModel).changes((is, was) => {
721
721
  this.valueChange.emit(is);
@@ -2265,7 +2265,7 @@ var CommandFace;
2265
2265
  Position["START"] = "start";
2266
2266
  Position["END"] = "end";
2267
2267
  })(Position = CommandFace.Position || (CommandFace.Position = {}));
2268
- class Instance {
2268
+ class Adapter {
2269
2269
  constructor(face) {
2270
2270
  this.face = face;
2271
2271
  }
@@ -2292,36 +2292,36 @@ var CommandFace;
2292
2292
  Memoize(),
2293
2293
  __metadata("design:type", Object),
2294
2294
  __metadata("design:paramtypes", [])
2295
- ], Instance.prototype, "text", null);
2295
+ ], Adapter.prototype, "text", null);
2296
2296
  __decorate([
2297
2297
  Memoize(),
2298
2298
  __metadata("design:type", Object),
2299
2299
  __metadata("design:paramtypes", [])
2300
- ], Instance.prototype, "icon", null);
2300
+ ], Adapter.prototype, "icon", null);
2301
2301
  __decorate([
2302
2302
  Memoize(),
2303
2303
  __metadata("design:type", Object),
2304
2304
  __metadata("design:paramtypes", [])
2305
- ], Instance.prototype, "iconPosition", null);
2305
+ ], Adapter.prototype, "iconPosition", null);
2306
2306
  __decorate([
2307
2307
  Memoize(),
2308
2308
  __metadata("design:type", Object),
2309
2309
  __metadata("design:paramtypes", [])
2310
- ], Instance.prototype, "tooltip", null);
2310
+ ], Adapter.prototype, "tooltip", null);
2311
2311
  __decorate([
2312
2312
  Memoize(),
2313
2313
  __metadata("design:type", Boolean),
2314
2314
  __metadata("design:paramtypes", [])
2315
- ], Instance.prototype, "iconPositionStart", null);
2315
+ ], Adapter.prototype, "iconPositionStart", null);
2316
2316
  __decorate([
2317
2317
  Memoize(),
2318
2318
  __metadata("design:type", Boolean),
2319
2319
  __metadata("design:paramtypes", [])
2320
- ], Instance.prototype, "iconPositionEnd", null);
2321
- CommandFace.Instance = Instance;
2320
+ ], Adapter.prototype, "iconPositionEnd", null);
2321
+ CommandFace.Adapter = Adapter;
2322
2322
  })(CommandFace || (CommandFace = {}));
2323
2323
 
2324
- class MenuItemData extends CommandFace.Instance {
2324
+ class MenuItemData extends CommandFace.Adapter {
2325
2325
  constructor(factory, face) {
2326
2326
  super(face);
2327
2327
  this.factory = factory;
@@ -2344,15 +2344,15 @@ let TableRowMenuComponent = class TableRowMenuComponent extends DisposableCompon
2344
2344
  }
2345
2345
  ngOnInit() {
2346
2346
  }
2347
- createCommandFor(item, value) {
2347
+ createMoreMenuCommand(item, value) {
2348
2348
  const { when } = Dsl.disposeWith(this);
2349
2349
  const command = item.factory.create(value);
2350
2350
  when(command.busy).becomesFalsey(() => {
2351
- this.closeMenu();
2351
+ this.closeMoreMenu();
2352
2352
  });
2353
2353
  return command;
2354
2354
  }
2355
- closeMenu() {
2355
+ closeMoreMenu() {
2356
2356
  this.menu.closeMenu();
2357
2357
  }
2358
2358
  };
@@ -2368,7 +2368,7 @@ TableRowMenuComponent = __decorate([
2368
2368
  Component({
2369
2369
  selector: 'aup-table-row-menu',
2370
2370
  template: `
2371
- <button mat-icon-button *ngFor="let action of actions" [pectinCommand]="createCommandFor(action, value)">
2371
+ <button mat-icon-button *ngFor="let action of actions" [pectinCommand]="action.factory.create(value)">
2372
2372
  <aup-icon [icon]="action.icon"></aup-icon>
2373
2373
  </button>
2374
2374
  <ng-container *ngIf="moreActions.length > 0">
@@ -2378,7 +2378,7 @@ TableRowMenuComponent = __decorate([
2378
2378
  <mat-menu #menu="matMenu" xPosition="before" matTooltip="More options...">
2379
2379
  <button *ngFor="let action of moreActions"
2380
2380
  mat-menu-item
2381
- [pectinCommand]="createCommandFor(action, value)"
2381
+ [pectinCommand]="createMoreMenuCommand(action, value)"
2382
2382
  >
2383
2383
  <aup-icon *ngIf="action.icon && action.iconPositionStart" [icon]="action.icon"></aup-icon>
2384
2384
  {{action.text}}