@coolon/angular-ui-powerups 2.0.0-alpha.36 → 2.0.0-alpha.38

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 (29) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js +25 -19
  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/command.component.js +17 -4
  8. package/esm2015/lib/components/commands/command/command.component.js.map +1 -1
  9. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  10. package/esm2015/lib/components/commands/command-face.js +7 -3
  11. package/esm2015/lib/components/commands/command-face.js.map +1 -1
  12. package/esm2015/lib/components/commands/group/command-group.js +1 -13
  13. package/esm2015/lib/components/commands/group/command-group.js.map +1 -1
  14. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  15. package/esm5/lib/components/commands/command/command.component.js +17 -4
  16. package/esm5/lib/components/commands/command/command.component.js.map +1 -1
  17. package/esm5/lib/components/commands/command-face.js +7 -3
  18. package/esm5/lib/components/commands/command-face.js.map +1 -1
  19. package/esm5/lib/components/commands/group/command-group.js +1 -13
  20. package/esm5/lib/components/commands/group/command-group.js.map +1 -1
  21. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  22. package/fesm2015/coolon-angular-ui-powerups.js +25 -19
  23. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  24. package/fesm5/coolon-angular-ui-powerups.js +25 -19
  25. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  26. package/lib/components/commands/command/command.component.d.ts +4 -0
  27. package/lib/components/commands/command-face.d.ts +1 -0
  28. package/lib/components/commands/group/command-group.d.ts +2 -5
  29. package/package.json +1 -1
@@ -12,10 +12,15 @@ let CommandComponent = class CommandComponent extends DisposableComponent {
12
12
  super();
13
13
  this.parent = parent;
14
14
  this.CommandFace = CommandFace;
15
- const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
16
- this.buttonStyle = chain(this.faceModel).map(f => CommandFace.getStyleOf(f));
15
+ const { chain, switchOn } = Dsl.disposeWith(this);
16
+ this.activeFaceModel = switchOn(this.command.busy).toValue(when => {
17
+ when.equalTo(true, this.busyFaceModel);
18
+ when.otherwise(this.faceModel);
19
+ }).otherwise(this.faceModel);
20
+ this.buttonStyle = chain(this.activeFaceModel).map(f => CommandFace.getStyleOf(f));
21
+ this.colorModel = chain(this.activeFaceModel).map(f => CommandFace.getColorOf(f));
17
22
  if (parent) {
18
- this.registerDisposable(this.parent.registerCommand(this.command, this.faceModel));
23
+ this.registerDisposable(this.parent.registerCommand(this.command, this.activeFaceModel));
19
24
  }
20
25
  }
21
26
  ngOnInit() {
@@ -36,10 +41,18 @@ __decorate([
36
41
  Input(), StoreInValueModel('faceModel'),
37
42
  __metadata("design:type", Object)
38
43
  ], CommandComponent.prototype, "face", void 0);
44
+ __decorate([
45
+ Input(), TrackExternal(),
46
+ __metadata("design:type", ValueModel)
47
+ ], CommandComponent.prototype, "busyFaceModel", void 0);
48
+ __decorate([
49
+ Input(), StoreInValueModel('busyFaceModel'),
50
+ __metadata("design:type", Object)
51
+ ], CommandComponent.prototype, "busyFace", void 0);
39
52
  CommandComponent = __decorate([
40
53
  Component({
41
54
  selector: 'aup-command',
42
- template: "<ng-container *ngIf=\"!parent\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <button *ngSwitchCase=\"CommandFace.Style.STROKED\" mat-stroked-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <button *ngSwitchCase=\"CommandFace.Style.RAISED\" mat-raised-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <button *ngSwitchDefault mat-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n </ng-container>\n</ng-container>\n"
55
+ template: "<ng-container *ngIf=\"!parent\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <button *ngSwitchCase=\"CommandFace.Style.STROKED\" mat-stroked-button [pectinCommand]=\"command\" [color]=\"colorModel.value\">\n <aup-command-face [face]=\"activeFaceModel.value\"></aup-command-face>\n </button>\n <button *ngSwitchCase=\"CommandFace.Style.RAISED\" mat-raised-button [pectinCommand]=\"command\" [color]=\"colorModel.value\">\n <aup-command-face [face]=\"activeFaceModel.value\"></aup-command-face>\n </button>\n <button *ngSwitchDefault mat-button [pectinCommand]=\"command\" [color]=\"colorModel.value\">\n <aup-command-face [face]=\"activeFaceModel.value\"></aup-command-face>\n </button>\n </ng-container>\n</ng-container>\n"
43
56
  }),
44
57
  __param(0, Optional()),
45
58
  __metadata("design:paramtypes", [CommandGroup])
@@ -1 +1 @@
1
- {"version":3,"file":"command.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/commands/command/command.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EACL,OAAO,EACP,GAAG,EACH,iBAAiB,EACjB,aAAa,EAEb,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AAMH,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,mBAAmB;IAevD,YAAiC,MAAqB;QACpD,KAAK,EAAE,CAAC;QADuB,WAAM,GAAN,MAAM,CAAe;QAJtD,gBAAW,GAAG,WAAW,CAAC;QAMxB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACpF;IACH,CAAC;IAGD,QAAQ;IACR,CAAC;CACF,CAAA;;YAZ2C,YAAY,uBAAzC,QAAQ;;AAZrB;IADC,KAAK,EAAE,EAAE,aAAa,EAAE;8BAChB,OAAO;iDAAU;AAG1B;IADC,KAAK,EAAE,EAAE,aAAa,EAAE;8BACd,UAAU;mDAAc;AAGnC;IADC,KAAK,EAAE,EAAE,iBAAiB,CAAC,WAAW,CAAC;;8CACtB;AATP,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,0vBAAuC;KAExC,CAAC;IAgBa,WAAA,QAAQ,EAAE,CAAA;qCAAmB,YAAY;GAf3C,gBAAgB,CA2B5B;SA3BY,gBAAgB","sourcesContent":["import { Component, Input, OnInit, Optional } from '@angular/core';\n\nimport {\n Command,\n Dsl,\n StoreInValueModel,\n TrackExternal,\n TransactionObserver,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { DisposableComponent } from '../../disposable-component';\nimport { CommandFace } from '../command-face';\nimport { CommandGroup } from '../group/command-group';\n\n/**\n *\n */\n@Component({\n selector: 'aup-command',\n templateUrl: './command.component.html',\n styles: []\n})\nexport class CommandComponent extends DisposableComponent implements OnInit {\n\n @Input() @TrackExternal()\n command: Command<unknown>;\n\n @Input() @TrackExternal()\n faceModel: ValueModel<CommandFace>;\n\n @Input() @StoreInValueModel('faceModel')\n face: CommandFace;\n\n CommandFace = CommandFace;\n\n readonly buttonStyle: ValueModelChain<string>;\n\n constructor(@Optional() readonly parent?: CommandGroup) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.buttonStyle = chain(this.faceModel).map(f => CommandFace.getStyleOf(f));\n if (parent) {\n this.registerDisposable(this.parent.registerCommand(this.command, this.faceModel));\n }\n }\n\n\n ngOnInit() {\n }\n}\n\n"]}
1
+ {"version":3,"file":"command.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/commands/command/command.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EACL,OAAO,EACP,GAAG,EACH,iBAAiB,EACjB,aAAa,EAEb,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AAMH,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,mBAAmB;IAuBvD,YAAiC,MAAqB;QACpD,KAAK,EAAE,CAAC;QADuB,WAAM,GAAN,MAAM,CAAe;QANtD,gBAAW,GAAG,WAAW,CAAC;QAQxB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;SAC1F;IACH,CAAC;IAGD,QAAQ;IACR,CAAC;CACF,CAAA;;YAjB2C,YAAY,uBAAzC,QAAQ;;AApBrB;IADC,KAAK,EAAE,EAAE,aAAa,EAAE;8BAChB,OAAO;iDAAU;AAG1B;IADC,KAAK,EAAE,EAAE,aAAa,EAAE;8BACd,UAAU;mDAAc;AAGnC;IADC,KAAK,EAAE,EAAE,iBAAiB,CAAC,WAAW,CAAC;;8CACtB;AAGlB;IADC,KAAK,EAAE,EAAE,aAAa,EAAE;8BACV,UAAU;uDAAc;AAGvC;IADC,KAAK,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC;;kDACtB;AAfX,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,ywBAAuC;KAExC,CAAC;IAwBa,WAAA,QAAQ,EAAE,CAAA;qCAAmB,YAAY;GAvB3C,gBAAgB,CAwC5B;SAxCY,gBAAgB","sourcesContent":["import { Component, Input, OnInit, Optional } from '@angular/core';\n\nimport {\n Command,\n Dsl,\n StoreInValueModel,\n TrackExternal,\n TransactionObserver,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { DisposableComponent } from '../../disposable-component';\nimport { CommandFace } from '../command-face';\nimport { CommandGroup } from '../group/command-group';\n\n/**\n *\n */\n@Component({\n selector: 'aup-command',\n templateUrl: './command.component.html',\n styles: []\n})\nexport class CommandComponent extends DisposableComponent implements OnInit {\n\n @Input() @TrackExternal()\n command: Command<unknown>;\n\n @Input() @TrackExternal()\n faceModel: ValueModel<CommandFace>;\n\n @Input() @StoreInValueModel('faceModel')\n face: CommandFace;\n\n @Input() @TrackExternal()\n busyFaceModel: ValueModel<CommandFace>;\n\n @Input() @StoreInValueModel('busyFaceModel')\n busyFace: CommandFace;\n\n CommandFace = CommandFace;\n\n readonly activeFaceModel: ValueModelChain<CommandFace>;\n readonly buttonStyle: ValueModelChain<string>;\n readonly colorModel: ValueModelChain<'primary' | 'accent' | 'warn' | undefined>;\n\n constructor(@Optional() readonly parent?: CommandGroup) {\n super();\n const { chain, switchOn } = Dsl.disposeWith(this);\n this.activeFaceModel = switchOn(this.command.busy).toValue(when => {\n when.equalTo(true, this.busyFaceModel);\n when.otherwise(this.faceModel)\n }).otherwise(this.faceModel)\n this.buttonStyle = chain(this.activeFaceModel).map(f => CommandFace.getStyleOf(f));\n this.colorModel = chain(this.activeFaceModel).map(f => CommandFace.getColorOf(f));\n if (parent) {\n this.registerDisposable(this.parent.registerCommand(this.command, this.activeFaceModel));\n }\n }\n\n\n ngOnInit() {\n }\n}\n\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"CommandComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../disposable-component","name":"DisposableComponent","line":23,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"aup-command","styles":[],"template":"<ng-container *ngIf=\"!parent\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <button *ngSwitchCase=\"CommandFace.Style.STROKED\" mat-stroked-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <button *ngSwitchCase=\"CommandFace.Style.RAISED\" mat-raised-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <button *ngSwitchDefault mat-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n </ng-container>\n</ng-container>\n"}]}],"members":{"command":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":25,"character":12}}]}],"faceModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":28,"character":12}}]}],"face":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":31,"character":12},"arguments":["faceModel"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":38,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"../group/command-group","name":"CommandGroup","line":38,"character":44}]}],"ngOnInit":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"CommandComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../disposable-component","name":"DisposableComponent","line":23,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"aup-command","styles":[],"template":"<ng-container *ngIf=\"!parent\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <button *ngSwitchCase=\"CommandFace.Style.STROKED\" mat-stroked-button [pectinCommand]=\"command\" [color]=\"colorModel.value\">\n <aup-command-face [face]=\"activeFaceModel.value\"></aup-command-face>\n </button>\n <button *ngSwitchCase=\"CommandFace.Style.RAISED\" mat-raised-button [pectinCommand]=\"command\" [color]=\"colorModel.value\">\n <aup-command-face [face]=\"activeFaceModel.value\"></aup-command-face>\n </button>\n <button *ngSwitchDefault mat-button [pectinCommand]=\"command\" [color]=\"colorModel.value\">\n <aup-command-face [face]=\"activeFaceModel.value\"></aup-command-face>\n </button>\n </ng-container>\n</ng-container>\n"}]}],"members":{"command":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":25,"character":12}}]}],"faceModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":28,"character":12}}]}],"face":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":31,"character":12},"arguments":["faceModel"]}]}],"busyFaceModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":34,"character":12}}]}],"busyFace":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":37,"character":12},"arguments":["busyFaceModel"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"../group/command-group","name":"CommandGroup","line":46,"character":44}]}],"ngOnInit":[{"__symbolic":"method"}]}}}}]
@@ -26,6 +26,10 @@ export var CommandFace;
26
26
  return _.isFunction(face === null || face === void 0 ? void 0 : face.icon) ? face.icon() : undefined;
27
27
  }
28
28
  CommandFace.getIconOf = getIconOf;
29
+ function getIconPositionOf(face) {
30
+ return _.isFunction(face === null || face === void 0 ? void 0 : face.iconPosition) ? face.iconPosition() : undefined;
31
+ }
32
+ CommandFace.getIconPositionOf = getIconPositionOf;
29
33
  function getTooltipOf(face) {
30
34
  return _.isFunction(face === null || face === void 0 ? void 0 : face.tooltip) ? face.tooltip() : undefined;
31
35
  }
@@ -39,16 +43,16 @@ export var CommandFace;
39
43
  this.face = face;
40
44
  }
41
45
  get text() {
42
- return _.isFunction(this.face.text) ? this.face.text() : undefined;
46
+ return CommandFace.getTextOf(this.face);
43
47
  }
44
48
  get icon() {
45
49
  return CommandFace.getIconOf(this.face);
46
50
  }
47
51
  get iconPosition() {
48
- return _.isFunction(this.face.iconPosition) ? this.face.iconPosition() : undefined;
52
+ return CommandFace.getIconPositionOf(this.face);
49
53
  }
50
54
  get tooltip() {
51
- return _.isFunction(this.face.tooltip) ? this.face.tooltip() : undefined;
55
+ return CommandFace.getTooltipOf(this.face);
52
56
  }
53
57
  get iconPositionStart() {
54
58
  return this.iconPosition === CommandFace.Position.START;
@@ -1 +1 @@
1
- {"version":3,"file":"command-face.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/commands/command-face.ts"],"names":[],"mappings":"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","sourcesContent":["import { ThemePalette } from '@angular/material/core';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { Enum } from 'typescript-string-enums';\n\nexport interface CommandFace {\n text?(): string;\n\n icon?(): string;\n\n iconPosition?(): string;\n\n tooltip?(): string;\n\n color?(): string; // ThemePalette\n\n style?(): string; // CommandFace.Style;\n}\n\nexport namespace CommandFace {\n\n export enum Position {\n START = 'start',\n END = 'end'\n }\n\n export const Style = Enum({\n FLAT: 'flat',\n STROKED: 'stroked',\n RAISED: 'raised'\n });\n export type Style = Enum<typeof Style>;\n\n export function getColorOf(face: CommandFace): ThemePalette {\n return _.isFunction(face?.color) ? face.color() as ThemePalette : undefined;\n }\n\n export function getStyleOf(face: CommandFace): Style {\n return _.isFunction(face?.style) ? face.style() as Style : undefined;\n }\n\n export function getIconOf(face: CommandFace) {\n return _.isFunction(face?.icon) ? face.icon() : undefined;\n }\n\n export function getTooltipOf(face: CommandFace) {\n return _.isFunction(face?.tooltip) ? face.tooltip() : undefined;\n }\n\n export function getTextOf(face: CommandFace) {\n return _.isFunction(face?.text) ? face.text() : undefined;\n }\n\n export class Adapter {\n constructor(readonly face: CommandFace) {\n }\n\n @Memoize()\n get text() {\n return _.isFunction(this.face.text) ? this.face.text() : undefined;\n }\n\n @Memoize()\n get icon() {\n return CommandFace.getIconOf(this.face);\n }\n\n @Memoize()\n get iconPosition() {\n return _.isFunction(this.face.iconPosition) ? this.face.iconPosition() : undefined;\n }\n\n @Memoize()\n get tooltip() {\n return _.isFunction(this.face.tooltip) ? this.face.tooltip() : undefined;\n }\n\n @Memoize()\n get iconPositionStart(): boolean {\n return this.iconPosition === CommandFace.Position.START;\n }\n\n @Memoize()\n get iconPositionEnd(): boolean {\n return this.iconPosition === CommandFace.Position.END;\n }\n\n @Memoize()\n get color(): ThemePalette {\n return CommandFace.getColorOf(this.face);\n }\n\n @Memoize()\n get style(): Style {\n return CommandFace.getStyleOf(this.face);\n }\n\n }\n}\n"]}
1
+ {"version":3,"file":"command-face.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/commands/command-face.ts"],"names":[],"mappings":"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","sourcesContent":["import { ThemePalette } from '@angular/material/core';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { Enum } from 'typescript-string-enums';\nimport { assert } from '@coolon/pectin';\n\nexport interface CommandFace {\n text?(): string;\n\n icon?(): string;\n\n iconPosition?(): string;\n\n tooltip?(): string;\n\n color?(): string; // ThemePalette\n\n style?(): string; // CommandFace.Style;\n}\n\nexport namespace CommandFace {\n\n export enum Position {\n START = 'start',\n END = 'end'\n }\n\n export const Style = Enum({\n FLAT: 'flat',\n STROKED: 'stroked',\n RAISED: 'raised'\n });\n export type Style = Enum<typeof Style>;\n\n export function getColorOf(face: CommandFace): ThemePalette {\n return _.isFunction(face?.color) ? face.color() as ThemePalette : undefined;\n }\n\n export function getStyleOf(face: CommandFace): Style {\n return _.isFunction(face?.style) ? face.style() as Style : undefined;\n }\n\n export function getIconOf(face: CommandFace) {\n return _.isFunction(face?.icon) ? face.icon() : undefined;\n }\n\n export function getIconPositionOf(face: CommandFace) {\n return _.isFunction(face?.iconPosition) ? face.iconPosition() : undefined;\n }\n\n export function getTooltipOf(face: CommandFace) {\n return _.isFunction(face?.tooltip) ? face.tooltip() : undefined;\n }\n\n export function getTextOf(face: CommandFace) {\n return _.isFunction(face?.text) ? face.text() : undefined;\n }\n\n export class Adapter {\n constructor(readonly face: CommandFace) {\n }\n\n @Memoize()\n get text() {\n return CommandFace.getTextOf(this.face);\n }\n\n @Memoize()\n get icon() {\n return CommandFace.getIconOf(this.face);\n }\n\n @Memoize()\n get iconPosition() {\n return CommandFace.getIconPositionOf(this.face);\n }\n\n @Memoize()\n get tooltip() {\n return CommandFace.getTooltipOf(this.face);\n }\n\n @Memoize()\n get iconPositionStart(): boolean {\n return this.iconPosition === CommandFace.Position.START;\n }\n\n @Memoize()\n get iconPositionEnd(): boolean {\n return this.iconPosition === CommandFace.Position.END;\n }\n\n @Memoize()\n get color(): ThemePalette {\n return CommandFace.getColorOf(this.face);\n }\n\n @Memoize()\n get style(): Style {\n return CommandFace.getStyleOf(this.face);\n }\n\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Dsl, GarbageCollector, MutableListModel, MutableValueModel, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';
3
- import { CommandFace } from '../command-face';
4
3
  import { Registration } from './registration';
5
4
  import { ViewData } from './view-data';
6
5
  export class CommandGroup extends GarbageCollector {
@@ -9,16 +8,7 @@ export class CommandGroup extends GarbageCollector {
9
8
  this.parent = parent;
10
9
  this._rootTemplate = new MutableValueModel();
11
10
  this._registrations = new MutableListModel();
12
- this._childFaceModels = new MutableListModel();
13
- this._faceChangeCount = new MutableValueModel(0);
14
11
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
15
- const childFaces = chain(this._childFaceModels)
16
- .map(m => m.value, { dependsOn: this._faceChangeCount })
17
- .rejectNil();
18
- const iconCount = childFaces
19
- .select(face => !!CommandFace.getIconOf(face))
20
- .count();
21
- this.hasMixedIcons = valueOf.all(iconCount.isGreaterThan(0), iconCount.doesNotEqual(childFaces.length)).areTruthy();
22
12
  this.childTemplates = chain(this._rootTemplate).pluckList('children');
23
13
  this.initialised = chain(this._rootTemplate).isNotNil();
24
14
  }
@@ -66,12 +56,10 @@ export class CommandGroup extends GarbageCollector {
66
56
  register(registration) {
67
57
  this._registrations.push(registration);
68
58
  if (registration instanceof Registration.FaceRegistration) {
69
- this._childFaceModels.push(registration.faceModel);
70
59
  const { when } = Dsl.disposeWith(registration);
71
60
  when(registration.faceModel).changes((is, was) => {
72
- this.notifyChildFaceChanged(new CommandFace.Adapter(is), new CommandFace.Adapter(was));
61
+ this.notifyChildFaceChanged(is, was);
73
62
  }, { asLongAs: this.initialised });
74
- registration.onDispose(() => this._childFaceModels.remove(registration.faceModel));
75
63
  }
76
64
  registration.onDispose(() => this._registrations.remove(registration));
77
65
  return registration;
@@ -1 +1 @@
1
- {"version":3,"file":"command-group.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/commands/group/command-group.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BooleanValueModelChain,\n Command,\n Disposable,\n Dsl,\n GarbageCollector,\n ListModel,\n ListModelChain,\n MutableListModel,\n MutableValueModel,\n StoreInValueModel,\n TrackExternal,\n ValueModel\n} from '@coolon/pectin';\nimport { CommandFace } from '../command-face';\nimport { FlexComponent } from '../flex.component';\nimport { SeparatorComponent } from '../separator.component';\nimport { Registration } from './registration';\nimport { ViewData } from './view-data';\n\nexport abstract class CommandGroup extends GarbageCollector {\n\n abstract faceModel: ValueModel<CommandFace>;\n\n abstract xPosition: 'before' | 'after';\n abstract yPosition: 'above' | 'below';\n\n private readonly _rootTemplate = new MutableValueModel<ViewData.GroupData>();\n\n private readonly _registrations = new MutableListModel<Registration>();\n private readonly _childFaceModels = new MutableListModel<ValueModel<CommandFace>>();\n\n readonly hasMixedIcons: BooleanValueModelChain;\n private _faceChangeCount = new MutableValueModel<number>(0);\n\n readonly childTemplates: ListModelChain<ViewData>;\n\n private initialised: BooleanValueModelChain;\n\n constructor(readonly parent?: CommandGroup) {\n super();\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n const childFaces = chain(this._childFaceModels)\n .map(m => m.value, { dependsOn: this._faceChangeCount })\n .rejectNil();\n\n const iconCount = childFaces\n .select(face => !!CommandFace.getIconOf(face))\n .count();\n\n this.hasMixedIcons = valueOf.all(\n iconCount.isGreaterThan(0),\n iconCount.doesNotEqual(childFaces.length)\n ).areTruthy();\n\n\n this.childTemplates = chain(this._rootTemplate).pluckList('children');\n\n this.initialised = chain(this._rootTemplate).isNotNil();\n }\n\n initialise() {\n this.rebuildTemplates();\n }\n\n get rootTemplate() {\n return this._rootTemplate.readonly;\n }\n\n get registrations(): ListModel<Registration> {\n return this._registrations.readonly;\n }\n\n notifyChanged() {\n if (this.parent) {\n this.parent.notifyChanged();\n } else {\n this.rebuildTemplates();\n }\n }\n\n private notifyChildFaceChanged(is: CommandFace.Adapter, was: CommandFace.Adapter) {\n this.notifyChanged();\n }\n\n private rebuildTemplates() {\n this._rootTemplate.value = new ViewData.GroupData(\n this.faceModel.value,\n this.xPosition,\n this.yPosition,\n this.registrations.value.map(r => r.toTemplate())\n );\n }\n\n get depth(): number {\n return this.isRoot() ? 0 : this.parent.depth + 1;\n }\n\n isRoot(): boolean {\n return false;\n }\n\n registerCommand(command: Command<unknown>, faceModel: ValueModel<CommandFace>): Disposable {\n return this.register(new Registration.CommandRegistration(faceModel, command));\n }\n\n registerGroup(group: CommandGroup, faceModel: ValueModel<CommandFace>): Disposable {\n return this.register(new Registration.GroupRegistration(faceModel, group));\n }\n\n registerFlex(component: FlexComponent) {\n return this.register(new Registration.FlexRegistration());\n }\n\n registerSeparator(component: SeparatorComponent) {\n return this.register(new Registration.SeparatorRegistration());\n }\n\n protected register(registration: Registration): Disposable {\n this._registrations.push(registration);\n if (registration instanceof Registration.FaceRegistration) {\n this._childFaceModels.push(registration.faceModel);\n const { when } = Dsl.disposeWith(registration);\n when(registration.faceModel).changes((is, was) => {\n this.notifyChildFaceChanged(new CommandFace.Adapter(is), new CommandFace.Adapter(was));\n }, { asLongAs: this.initialised });\n registration.onDispose(() => this._childFaceModels.remove(registration.faceModel));\n }\n registration.onDispose(() => this._registrations.remove(registration));\n return registration;\n }\n\n}\n\nexport namespace CommandGroup {\n export class Root extends CommandGroup {\n\n @TrackExternal()\n faceModel: ValueModel<CommandFace>;\n\n @TrackExternal({ defaultValue: 'after' })\n xPositionModel: ValueModel<'before' | 'after'>;\n\n @StoreInValueModel('xPositionModel')\n xPosition: 'before' | 'after';\n\n @TrackExternal({ defaultValue: 'below' })\n yPositionModel: ValueModel<'above' | 'below'>;\n\n @StoreInValueModel('yPositionModel')\n yPosition: 'above' | 'below';\n\n isRoot(): boolean {\n return true;\n }\n }\n\n export function factory():Root {\n return new Root()\n }\n}\n\n\n"]}
1
+ {"version":3,"file":"command-group.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/commands/group/command-group.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BooleanValueModelChain,\n Command,\n Disposable,\n Dsl,\n GarbageCollector,\n ListModel,\n ListModelChain,\n MutableListModel,\n MutableValueModel,\n StoreInValueModel, Trace,\n TrackExternal,\n ValueModel\n} from '@coolon/pectin';\nimport { CommandFace } from '../command-face';\nimport { FlexComponent } from '../flex.component';\nimport { SeparatorComponent } from '../separator.component';\nimport { Registration } from './registration';\nimport { ViewData } from './view-data';\n\nexport abstract class CommandGroup extends GarbageCollector {\n\n abstract faceModel: ValueModel<CommandFace>;\n\n abstract xPosition: 'before' | 'after';\n abstract yPosition: 'above' | 'below';\n\n private readonly _rootTemplate = new MutableValueModel<ViewData.GroupData>();\n\n private readonly _registrations = new MutableListModel<Registration>();\n\n readonly childTemplates: ListModelChain<ViewData>;\n\n private initialised: BooleanValueModelChain;\n\n constructor(readonly parent?: CommandGroup) {\n super();\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.childTemplates = chain(this._rootTemplate).pluckList('children');\n\n this.initialised = chain(this._rootTemplate).isNotNil();\n }\n\n initialise() {\n this.rebuildTemplates();\n }\n\n get rootTemplate() {\n return this._rootTemplate.readonly;\n }\n\n get registrations(): ListModel<Registration> {\n return this._registrations.readonly;\n }\n\n notifyChanged() {\n if (this.parent) {\n this.parent.notifyChanged();\n } else {\n this.rebuildTemplates();\n }\n }\n\n private notifyChildFaceChanged(is: CommandFace, was: CommandFace) {\n this.notifyChanged();\n }\n\n private rebuildTemplates() {\n this._rootTemplate.value = new ViewData.GroupData(\n this.faceModel.value,\n this.xPosition,\n this.yPosition,\n this.registrations.value.map(r => r.toTemplate())\n );\n }\n\n get depth(): number {\n return this.isRoot() ? 0 : this.parent.depth + 1;\n }\n\n isRoot(): boolean {\n return false;\n }\n\n registerCommand(command: Command<unknown>, faceModel: ValueModel<CommandFace>): Disposable {\n return this.register(new Registration.CommandRegistration(faceModel, command));\n }\n\n registerGroup(group: CommandGroup, faceModel: ValueModel<CommandFace>): Disposable {\n return this.register(new Registration.GroupRegistration(faceModel, group));\n }\n\n registerFlex(component: FlexComponent): Disposable {\n return this.register(new Registration.FlexRegistration());\n }\n\n registerSeparator(component: SeparatorComponent): Disposable {\n return this.register(new Registration.SeparatorRegistration());\n }\n\n protected register(registration: Registration): Registration {\n this._registrations.push(registration);\n if (registration instanceof Registration.FaceRegistration) {\n const { when } = Dsl.disposeWith(registration);\n when(registration.faceModel).changes((is, was) => {\n this.notifyChildFaceChanged(is, was);\n }, { asLongAs: this.initialised });\n }\n registration.onDispose(() => this._registrations.remove(registration));\n return registration;\n }\n\n}\n\nexport namespace CommandGroup {\n export class Root extends CommandGroup {\n\n @TrackExternal()\n faceModel: ValueModel<CommandFace>;\n\n @TrackExternal({ defaultValue: 'after' })\n xPositionModel: ValueModel<'before' | 'after'>;\n\n @StoreInValueModel('xPositionModel')\n xPosition: 'before' | 'after';\n\n @TrackExternal({ defaultValue: 'below' })\n yPositionModel: ValueModel<'above' | 'below'>;\n\n @StoreInValueModel('yPositionModel')\n yPosition: 'above' | 'below';\n\n isRoot(): boolean {\n return true;\n }\n }\n\n export function factory(): Root {\n return new Root();\n }\n}\n\n\n"]}