@coolon/angular-ui-powerups 3.7.0-alpha.5 → 3.7.0-alpha.6

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.
@@ -12,6 +12,7 @@ export class CommandGroupComponent extends CommandGroup {
12
12
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
13
13
  this.faceListModel = chain(this.faceModel).mapToList(v => [v]);
14
14
  this.parent.registerGroup(this, this.faceListModel);
15
+ when(this.faceListModel).changes(() => this.notifyChanged());
15
16
  }
16
17
  }
17
18
  CommandGroupComponent.decorators = [
@@ -1 +1 @@
1
- {"version":3,"file":"command-group.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/components/commands/group/command-group/command-group.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAa,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUhD,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAgBrD,YAAiC,MAAoB;QACnD,KAAK,CAAC,MAAM,CAAC,CAAC;QADiB,WAAM,GAAN,MAAM,CAAc;QALrD,cAAS,GAAuB,OAAO,CAAC;QAGxC,cAAS,GAAsB,OAAO,CAAC;QAIrC,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,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC;;;YA5BF,SAAS,SAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE;oBACT,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE;iBAC9D;aACF;;;YATQ,YAAY,uBA0BN,QAAQ;;;wBAdpB,KAAK;mBAKL,KAAK;wBAGL,KAAK;wBAGL,KAAK;;AAVN;IADU,aAAa,EAAE;8BACd,UAAU;wDAAc;AAKnC;IADU,iBAAiB,CAAC,WAAW,CAAC;;mDACtB","sourcesContent":["import { Component, Input, SkipSelf } from '@angular/core';\nimport { Dsl, ListModel, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';\nimport { CommandFace } from '../../command-face';\nimport { CommandGroup } from '../command-group';\n\n\n@Component({\n selector: 'aup-command-group',\n template: '',\n providers: [\n { provide: CommandGroup, useExisting: CommandGroupComponent }\n ]\n})\nexport class CommandGroupComponent extends CommandGroup {\n\n @Input() @TrackExternal()\n faceModel: ValueModel<CommandFace>;\n\n readonly faceListModel: ListModel<CommandFace>;\n\n @Input() @StoreInValueModel('faceModel')\n face: CommandFace;\n\n @Input()\n xPosition: 'before' | 'after' = 'after';\n\n @Input()\n yPosition: 'above' | 'below' = 'below';\n\n constructor(@SkipSelf() readonly parent: CommandGroup) {\n super(parent);\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.faceListModel = chain(this.faceModel).mapToList(v => [v]);\n this.parent.registerGroup(this, this.faceListModel);\n }\n}\n\n\n"]}
1
+ {"version":3,"file":"command-group.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/components/commands/group/command-group/command-group.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAa,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUhD,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAgBrD,YAAiC,MAAoB;QACnD,KAAK,CAAC,MAAM,CAAC,CAAC;QADiB,WAAM,GAAN,MAAM,CAAc;QALrD,cAAS,GAAuB,OAAO,CAAC;QAGxC,cAAS,GAAsB,OAAO,CAAC;QAIrC,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,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/D,CAAC;;;YA7BF,SAAS,SAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE;oBACT,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE;iBAC9D;aACF;;;YATQ,YAAY,uBA0BN,QAAQ;;;wBAdpB,KAAK;mBAKL,KAAK;wBAGL,KAAK;wBAGL,KAAK;;AAVN;IADU,aAAa,EAAE;8BACd,UAAU;wDAAc;AAKnC;IADU,iBAAiB,CAAC,WAAW,CAAC;;mDACtB","sourcesContent":["import { Component, Input, SkipSelf } from '@angular/core';\nimport { Dsl, ListModel, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';\nimport { CommandFace } from '../../command-face';\nimport { CommandGroup } from '../command-group';\n\n\n@Component({\n selector: 'aup-command-group',\n template: '',\n providers: [\n { provide: CommandGroup, useExisting: CommandGroupComponent }\n ]\n})\nexport class CommandGroupComponent extends CommandGroup {\n\n @Input() @TrackExternal()\n faceModel: ValueModel<CommandFace>;\n\n readonly faceListModel: ListModel<CommandFace>;\n\n @Input() @StoreInValueModel('faceModel')\n face: CommandFace;\n\n @Input()\n xPosition: 'before' | 'after' = 'after';\n\n @Input()\n yPosition: 'above' | 'below' = 'below';\n\n constructor(@SkipSelf() readonly parent: CommandGroup) {\n super(parent);\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.faceListModel = chain(this.faceModel).mapToList(v => [v]);\n this.parent.registerGroup(this, this.faceListModel);\n when(this.faceListModel).changes(() => this.notifyChanged());\n }\n}\n\n\n"]}
@@ -69,6 +69,8 @@ export class CommandGroup extends GarbageCollector {
69
69
  class Root extends CommandGroup {
70
70
  constructor() {
71
71
  super();
72
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
73
+ when(this.faceListModel).changes(() => this.notifyChanged());
72
74
  }
73
75
  isRoot() {
74
76
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"command-group.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/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 faceListModel: ListModel<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.faceListModel.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>, faceListModel: ListModel<CommandFace>): Disposable {\n return this.register(new Registration.CommandRegistration(command, faceListModel));\n }\n\n registerGroup(group: CommandGroup, faceModel: ListModel<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.faceListModel).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 faceListModel: ListModel<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 constructor() {\n super();\n }\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":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/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 faceListModel: ListModel<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\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.faceListModel.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>, faceListModel: ListModel<CommandFace>): Disposable {\n return this.register(new Registration.CommandRegistration(command, faceListModel));\n }\n\n registerGroup(group: CommandGroup, faceModel: ListModel<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.faceListModel).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 faceListModel: ListModel<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 constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n when(this.faceListModel).changes(() => this.notifyChanged());\n }\n\n isRoot(): boolean {\n return true;\n }\n }\n\n export function factory(): Root {\n return new Root();\n }\n}\n\n\n"]}
@@ -738,6 +738,8 @@ class CommandGroup extends GarbageCollector {
738
738
  class Root extends CommandGroup {
739
739
  constructor() {
740
740
  super();
741
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
742
+ when(this.faceListModel).changes(() => this.notifyChanged());
741
743
  }
742
744
  isRoot() {
743
745
  return true;
@@ -925,6 +927,7 @@ class CommandGroupComponent extends CommandGroup {
925
927
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
926
928
  this.faceListModel = chain(this.faceModel).mapToList(v => [v]);
927
929
  this.parent.registerGroup(this, this.faceListModel);
930
+ when(this.faceListModel).changes(() => this.notifyChanged());
928
931
  }
929
932
  }
930
933
  CommandGroupComponent.decorators = [