@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.
- package/CHANGELOG.md +14 -0
- package/bundles/coolon-angular-ui-powerups.umd.js +25 -19
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/components/commands/command/command.component.js +17 -4
- package/esm2015/lib/components/commands/command/command.component.js.map +1 -1
- package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
- package/esm2015/lib/components/commands/command-face.js +7 -3
- package/esm2015/lib/components/commands/command-face.js.map +1 -1
- package/esm2015/lib/components/commands/group/command-group.js +1 -13
- package/esm2015/lib/components/commands/group/command-group.js.map +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm5/lib/components/commands/command/command.component.js +17 -4
- package/esm5/lib/components/commands/command/command.component.js.map +1 -1
- package/esm5/lib/components/commands/command-face.js +7 -3
- package/esm5/lib/components/commands/command-face.js.map +1 -1
- package/esm5/lib/components/commands/group/command-group.js +1 -13
- package/esm5/lib/components/commands/group/command-group.js.map +1 -1
- package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +25 -19
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +25 -19
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/commands/command/command.component.d.ts +4 -0
- package/lib/components/commands/command-face.d.ts +1 -0
- package/lib/components/commands/group/command-group.d.ts +2 -5
- 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,
|
|
16
|
-
this.
|
|
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.
|
|
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]=\"
|
|
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;
|
|
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]=\"
|
|
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
|
|
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
|
|
52
|
+
return CommandFace.getIconPositionOf(this.face);
|
|
49
53
|
}
|
|
50
54
|
get tooltip() {
|
|
51
|
-
return
|
|
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":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAC3E,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
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(
|
|
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":";AAAA,OAAO,EAIL,GAAG,EACH,gBAAgB,EAGhB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACX,MAAM,gBAAgB,CAAC;
|
|
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"]}
|