@coolon/angular-ui-powerups 12.4.0-alpha.27 → 12.4.0-alpha.29

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 (106) hide show
  1. package/assets/form.scss +5 -2
  2. package/assets/interaction.scss +6 -7
  3. package/bundles/coolon-angular-ui-powerups.umd.js +478 -114
  4. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  5. package/coolon-angular-ui-powerups.metadata.json +1 -1
  6. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  7. package/esm2015/lib/components/cards/abstract-card-container.component.js +29 -0
  8. package/esm2015/lib/components/cards/abstract-card-container.component.js.map +1 -0
  9. package/esm2015/lib/components/cards/abstract-card-container.component.metadata.json +1 -0
  10. package/esm2015/lib/components/cards/abstract-card-container.component.ngfactory.js.map +1 -0
  11. package/esm2015/lib/components/{card-container → cards/card-container}/card-container.component.js +4 -22
  12. package/esm2015/lib/components/cards/card-container/card-container.component.js.map +1 -0
  13. package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +1 -0
  14. package/esm2015/lib/components/cards/card-container/card-container.component.ngfactory.js.map +1 -0
  15. package/esm2015/lib/components/cards/card-container/card-container.component.scss.shim.ngstyle.js.map +1 -0
  16. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +72 -0
  17. package/esm2015/lib/components/cards/card-stack/card-stack.component.js.map +1 -0
  18. package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +1 -0
  19. package/esm2015/lib/components/cards/card-stack/card-stack.component.ngfactory.js.map +1 -0
  20. package/esm2015/lib/components/cards/card-stack/card-stack.component.scss.shim.ngstyle.js.map +1 -0
  21. package/esm2015/lib/components/components.module.js +32 -24
  22. package/esm2015/lib/components/components.module.js.map +1 -1
  23. package/esm2015/lib/components/components.module.metadata.json +1 -1
  24. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  25. package/esm2015/lib/components/exports.js +4 -1
  26. package/esm2015/lib/components/exports.js.map +1 -1
  27. package/esm2015/lib/components/exports.metadata.json +1 -1
  28. package/esm2015/lib/components/forms/abstract-input.component.js +1 -0
  29. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  30. package/esm2015/lib/components/labelled-value/labelled-value.component.js +22 -0
  31. package/esm2015/lib/components/labelled-value/labelled-value.component.js.map +1 -0
  32. package/esm2015/lib/components/labelled-value/labelled-value.component.metadata.json +1 -0
  33. package/esm2015/lib/components/labelled-value/labelled-value.component.ngfactory.js.map +1 -0
  34. package/esm2015/lib/components/{card-container/card-container.component.scss.shim.ngstyle.js.map → labelled-value/labelled-value.component.scss.shim.ngstyle.js.map} +1 -1
  35. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +17 -11
  36. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  37. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  38. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +19 -8
  39. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +1 -1
  40. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +1 -1
  41. package/esm2015/lib/interaction/components/editors/edit-context.js +2 -0
  42. package/esm2015/lib/interaction/components/editors/edit-context.js.map +1 -0
  43. package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +1 -0
  44. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +28 -0
  45. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +1 -0
  46. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +1 -0
  47. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +160 -0
  48. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -0
  49. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +1 -0
  50. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +1 -0
  51. package/esm2015/lib/interaction/components/input-activities/input-activity.js +71 -0
  52. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -0
  53. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -0
  54. package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +1 -0
  55. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +3 -3
  56. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
  57. package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
  58. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +3 -4
  59. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
  60. package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
  61. package/esm2015/lib/interaction/exports.js +4 -3
  62. package/esm2015/lib/interaction/exports.js.map +1 -1
  63. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  64. package/esm2015/lib/interaction/interaction.module.js +5 -2
  65. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  66. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  67. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  68. package/esm2015/lib/place/place-router.js +3 -8
  69. package/esm2015/lib/place/place-router.js.map +1 -1
  70. package/esm2015/lib/place/place-router.metadata.json +1 -1
  71. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  72. package/fesm2015/coolon-angular-ui-powerups.js +400 -82
  73. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  74. package/lib/components/cards/abstract-card-container.component.d.ts +11 -0
  75. package/lib/components/{card-container → cards/card-container}/card-container.component.d.ts +2 -10
  76. package/lib/components/cards/card-stack/card-stack.component.d.ts +63 -0
  77. package/lib/components/exports.d.ts +4 -1
  78. package/lib/components/labelled-value/labelled-value.component.d.ts +7 -0
  79. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +14 -3
  80. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +15 -2
  81. package/lib/interaction/components/editors/edit-context.d.ts +3 -0
  82. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +18 -0
  83. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +56 -0
  84. package/lib/interaction/components/input-activities/input-activity.d.ts +33 -0
  85. package/lib/interaction/components/input-activities/select-input-activity.d.ts +11 -3
  86. package/lib/interaction/components/input-activities/string-input-activity.d.ts +2 -2
  87. package/lib/interaction/exports.d.ts +4 -3
  88. package/package.json +1 -1
  89. package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
  90. package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +5 -3
  91. package/esm2015/lib/components/card-container/card-container.component.js.map +0 -1
  92. package/esm2015/lib/components/card-container/card-container.component.metadata.json +0 -1
  93. package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +0 -1
  94. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +0 -43
  95. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +0 -1
  96. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +0 -1
  97. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +0 -1
  98. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +0 -2
  99. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +0 -1
  100. package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +0 -1
  101. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +0 -2
  102. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +0 -1
  103. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +0 -1
  104. package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +0 -12
  105. package/lib/interaction/components/input-activities/input-activity-data.d.ts +0 -11
  106. package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +0 -8
@@ -0,0 +1,11 @@
1
+ import { OnInit, TemplateRef } from '@angular/core';
2
+ import { Command } from '@coolon/pectin';
3
+ import { CommandFace } from '../commands/command-face';
4
+ import { DisposableComponent } from '../disposable-component';
5
+ export declare class AbstractCardContainerComponent extends DisposableComponent implements OnInit {
6
+ addCardCommand: Command<any>;
7
+ addCardFace: CommandFace;
8
+ addCardTemplate: TemplateRef<any>;
9
+ constructor();
10
+ ngOnInit(): void;
11
+ }
@@ -1,7 +1,4 @@
1
- import { OnInit, TemplateRef } from '@angular/core';
2
- import { Command } from '@coolon/pectin';
3
- import { CommandFace } from '../commands/command-face';
4
- import { DisposableComponent } from '../disposable-component';
1
+ import { AbstractCardContainerComponent } from '../abstract-card-container.component';
5
2
  /**
6
3
  * @example
7
4
  * // basic usage
@@ -63,10 +60,5 @@ import { DisposableComponent } from '../disposable-component';
63
60
  * --card-background: var(--card-background, #fcfcfb);
64
61
  * }
65
62
  */
66
- export declare class CardContainerComponent extends DisposableComponent implements OnInit {
67
- addCardCommand: Command<any>;
68
- addCardFace: CommandFace;
69
- addCardTemplate: TemplateRef<any>;
70
- constructor();
71
- ngOnInit(): void;
63
+ export declare class CardContainerComponent extends AbstractCardContainerComponent {
72
64
  }
@@ -0,0 +1,63 @@
1
+ import { AbstractCardContainerComponent } from '../abstract-card-container.component';
2
+ /**
3
+ * @example
4
+ * // basic usage
5
+ * <aup-card-stack>
6
+ * <my-card *ngFor="..."></my-card>
7
+ * </aup-card-stack>
8
+ *
9
+ * // adds an add button with a the '+' icon to the end of the card list.
10
+ * <aup-card-stack [addCardCommand]="addCard">
11
+ * <my-card *ngFor="..."></my-card>
12
+ * </aup-card-stack>
13
+ *
14
+ * // adds an add button with the specified face
15
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
16
+ * <my-card *ngFor="..."></my-card>
17
+ * </aup-card-stack>
18
+ *
19
+ * // use the aup-add-card-activity to display as the new card place holder and to run
20
+ * // the activity inside teh card
21
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
22
+ * <my-card *ngFor="..."></my-card>
23
+ * <aup-add-card-activity type="inline" renderAs="card" [face]="i18n.commands.addModal" [activityClass]="AddCardActivity"></aup-add-card-activity>
24
+ * </aup-card-stack>
25
+ *
26
+ * // adds an add card component using the specified template. The template
27
+ * // will fill it's container in the grid.
28
+ * <aup-card-stack>
29
+ * <my-card *ngFor="..."></my-card>
30
+ * <ng-template #addCardTemplate>
31
+ * <div>This is a new card template, it will the the size of the other cards.</div>
32
+ * </ng-template>
33
+ * </aup-card-stack>
34
+ *
35
+ * // sing the default new card styles for your template
36
+ * @import "../../../../assets/styles";
37
+ * .my-new-card {
38
+ * @include aup-card-stack-new-card-style();
39
+ * // OR
40
+ * @include aup-card-stack-new-card-style(
41
+ * $color: rgba(0,0,0,0.54),
42
+ * $background-color: rgba(255,255,255,0.8),
43
+ * $hover-color: $color,
44
+ * $background-hover-color: white
45
+ * )
46
+ * }
47
+ * <aup-card-stack>
48
+ * <my-card *ngFor="..."></my-card>
49
+ * <ng-template #addCardTemplate>
50
+ * <div class="my-new-card" >This is a new card template, it will the the size of the other cards.</div>
51
+ * </ng-template>
52
+ * </aup-card-stack>
53
+ *
54
+ * // CSS Vars
55
+ * aup-card-stack {
56
+ * --card-gap: var(--card-gap, 16px);
57
+ * --card-height: var(--card-height, auto);
58
+ * --card-min-height: var(--card-min-height, auto);
59
+ * --card-background: var(--card-background, #fcfcfb);
60
+ * }
61
+ */
62
+ export declare class CardStackComponent extends AbstractCardContainerComponent {
63
+ }
@@ -8,7 +8,9 @@ export * from "./focusable.component";
8
8
  export * from "./resize-aware.component";
9
9
  export * from "./track-by";
10
10
  export * from "./busy-overlay/busy-overlay.component";
11
- export * from "./card-container/card-container.component";
11
+ export * from "./cards/abstract-card-container.component";
12
+ export * from "./cards/card-container/card-container.component";
13
+ export * from "./cards/card-stack/card-stack.component";
12
14
  export * from "./commands/command-face";
13
15
  export * from "./commands/flex.component";
14
16
  export * from "./commands/separator.component";
@@ -36,6 +38,7 @@ export * from "./forms/select-input/select-input.component";
36
38
  export * from "./forms/string-input/string-input.component";
37
39
  export * from "./forms/text-input/text-input.component";
38
40
  export * from "./icon/icon.component";
41
+ export * from "./labelled-value/labelled-value.component";
39
42
  export * from "./noop/noop.component";
40
43
  export * from "./scroll-container/scroll-container.component";
41
44
  export * from "./section-header/section-header.component";
@@ -0,0 +1,7 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { DisposableComponent } from '../disposable-component';
3
+ export declare class LabelledValueComponent extends DisposableComponent implements OnInit {
4
+ label: string;
5
+ constructor();
6
+ ngOnInit(): void;
7
+ }
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectorRef, OnInit } from '@angular/core';
2
2
  import { Command } from '@coolon/pectin';
3
+ import { Enum } from 'typescript-string-enums';
3
4
  import { CommandFace } from '../../../components/commands/command-face';
4
5
  import { DisposableComponent } from '../../../components/disposable-component';
5
6
  /**
@@ -40,9 +41,8 @@ export declare class ActivityActionsComponent extends DisposableComponent implem
40
41
  * @deprecated use #faces instead.
41
42
  */
42
43
  set style(style: ActivityActionsComponent.Style);
43
- align: 'start' | 'end' | 'stretch';
44
- get alignEnd(): boolean;
45
- get alignStretch(): boolean;
44
+ layout: ActivityActionsComponent.Layout;
45
+ align: ActivityActionsComponent.Align;
46
46
  constructor(cdr: ChangeDetectorRef);
47
47
  ngOnInit(): void;
48
48
  hasConfirmFace(): boolean;
@@ -53,6 +53,17 @@ export declare class ActivityActionsComponent extends DisposableComponent implem
53
53
  }): void;
54
54
  }
55
55
  export declare namespace ActivityActionsComponent {
56
+ const Layout: {
57
+ INLINE: "inline";
58
+ BLOCK: "block";
59
+ };
60
+ type Layout = Enum<typeof Layout>;
61
+ const Align: {
62
+ START: "start";
63
+ END: "end";
64
+ STRETCH: "stretch";
65
+ };
66
+ type Align = Enum<typeof Align>;
56
67
  interface Style {
57
68
  confirm: CommandFace;
58
69
  cancel: CommandFace;
@@ -1,5 +1,6 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { ListModelChain } from '@coolon/pectin';
3
+ import { Enum } from 'typescript-string-enums';
3
4
  import { CommandFace } from '../../../components/commands/command-face';
4
5
  import { InteractionContext } from '../../interaction-context';
5
6
  import { InteractionService } from '../../services/interaction.service';
@@ -10,8 +11,8 @@ import { AbstractActivityTriggerComponent } from '../activity-triggers/abstract-
10
11
  export declare class AddCardActivityComponent extends AbstractActivityTriggerComponent implements OnInit {
11
12
  private modalInteractionContext;
12
13
  inlineInteractionContext: InteractionContext;
13
- type: 'inline' | 'modal';
14
- renderAs: 'card' | 'button';
14
+ interactionStyle: AddCardActivityComponent.InteractionType;
15
+ renderAs: AddCardActivityComponent.RenderAs;
15
16
  readonly faceList: ListModelChain<CommandFace>;
16
17
  get renderAsClass(): string;
17
18
  get activityTypeClass(): string;
@@ -23,3 +24,15 @@ export declare class AddCardActivityComponent extends AbstractActivityTriggerCom
23
24
  isModal(): boolean;
24
25
  isInline(): boolean;
25
26
  }
27
+ export declare namespace AddCardActivityComponent {
28
+ const InteractionType: {
29
+ MODAL: "modal";
30
+ INLINE: "inline";
31
+ };
32
+ type InteractionType = Enum<typeof InteractionType>;
33
+ const RenderAs: {
34
+ CARD: "card";
35
+ BUTTON: "button";
36
+ };
37
+ type RenderAs = Enum<typeof RenderAs>;
38
+ }
@@ -0,0 +1,3 @@
1
+ export interface EditContext<T> {
2
+ injectError(error: string): any;
3
+ }
@@ -0,0 +1,18 @@
1
+ import { ListModel, MutableValueModel, Validator, ValueModel } from '@coolon/pectin';
2
+ import { EditContext } from '../edit-context';
3
+ export declare class InlineEditorModel<T> {
4
+ readonly valueModel: ValueModel<T>;
5
+ readonly saveCallback: InlineEditorModel.SaveCallback<T>;
6
+ readonly editing: MutableValueModel<boolean>;
7
+ private readonly _validators;
8
+ constructor(valueModel: ValueModel<T>, saveCallback: InlineEditorModel.SaveCallback<T>);
9
+ get validators(): ListModel<Validator<T>>;
10
+ validateUsing(validator: Validator<T>): this;
11
+ isEditing(): boolean;
12
+ }
13
+ export declare namespace InlineEditorModel {
14
+ type SaveCallback<T> = (value: T, context: EditContext<T>) => void | Promise<void>;
15
+ function create<T>(valueModel: ValueModel<T>, options: {
16
+ save: SaveCallback<T>;
17
+ }): InlineEditorModel<T>;
18
+ }
@@ -0,0 +1,56 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { BooleanValueModelChain, Command, ValueModel, ValueModelChain } from '@coolon/pectin';
3
+ import { CommandFace } from '../../../../components/commands/command-face';
4
+ import { DisposableComponent } from '../../../../components/disposable-component';
5
+ import { InteractionService } from '../../../services/interaction.service';
6
+ import { InPlaceInteractionContextComponent } from '../../inplace-interaction-context/in-place-interaction-context.component';
7
+ import { InlineEditorModel } from './inline-editor-model';
8
+ /**
9
+ * @example
10
+ * const source: ValueModel<string> = ...;
11
+ * const model = InlineEditorModel.create(source, {
12
+ * save(updated:string, context: InlineEditorModel.SaveContext) => {
13
+ * try {
14
+ * try and save the thing...
15
+ * } catch(error) {
16
+ * context.injectError(error)
17
+ * }
18
+ * }).validateUsing(Validator.present("We'll need a value");
19
+ *
20
+ * # in the view
21
+ * <aup-inline-string-editor
22
+ * label="My field"
23
+ * placeHolder="I'm ready for a string..."
24
+ * [editorModel]="model"></aup-inline-string-editor>
25
+ */
26
+ export declare class InlineStringEditorComponent extends DisposableComponent implements OnInit {
27
+ editorModel: InlineEditorModel<string>;
28
+ facesModel: ValueModel<InlineStringEditorComponent.Faces>;
29
+ faces: InlineStringEditorComponent.Faces;
30
+ interactionContext: InPlaceInteractionContextComponent<any, any, any>;
31
+ label: string;
32
+ placeHolder: string;
33
+ placeHolderModel: ValueModel<string>;
34
+ readonly description: ValueModelChain<string>;
35
+ empty: BooleanValueModelChain;
36
+ readonly editCommand: Command<void>;
37
+ displayValue: ValueModelChain<string>;
38
+ readonly editFaceModel: ValueModelChain<CommandFace>;
39
+ readonly saveFace: ValueModelChain<CommandFace>;
40
+ readonly cancelFace: ValueModelChain<CommandFace>;
41
+ constructor(interactionService: InteractionService);
42
+ ngOnInit(): void;
43
+ private createInputActivityData;
44
+ cancelEdit(): void;
45
+ startEdit(): void;
46
+ private isEditing;
47
+ isEmpty(): boolean;
48
+ }
49
+ export declare namespace InlineStringEditorComponent {
50
+ interface Faces {
51
+ edit?: CommandFace;
52
+ save?: CommandFace;
53
+ cancel?: CommandFace;
54
+ }
55
+ const DEFAULT_FACES: Faces;
56
+ }
@@ -0,0 +1,33 @@
1
+ import { Command, Form, Validator } from '@coolon/pectin';
2
+ import { Enum } from 'typescript-string-enums';
3
+ import { Activity } from '../../activity';
4
+ import { ActivityActionsComponent } from '../activity-actions/activity-actions.component';
5
+ export declare class InputActivity<T, D extends InputActivity.Data<T> = InputActivity.Data<T>> extends Activity<D, T> {
6
+ readonly data: D;
7
+ readonly confirmCommand: Command<void>;
8
+ readonly cancelCommand: Command<void>;
9
+ readonly valueModel: Form.ValueModelBase<T>;
10
+ class: string;
11
+ get layout(): InputActivity.Layout;
12
+ constructor(data: D);
13
+ onActivityReady(): void;
14
+ }
15
+ export declare namespace InputActivity {
16
+ const Layout: {
17
+ INLINE: "inline";
18
+ BLOCK: "block";
19
+ };
20
+ type Layout = Enum<typeof Layout>;
21
+ interface Context {
22
+ injectError(error: string): any;
23
+ }
24
+ interface Data<T> {
25
+ initialValue: T;
26
+ label?: string;
27
+ placeholder?: string;
28
+ layout?: InputActivity.Layout;
29
+ buttonStyle?: ActivityActionsComponent.Style;
30
+ validators?: Validator<T>[];
31
+ save?(valueModel: T, interactionContext?: Context): void | Promise<void>;
32
+ }
33
+ }
@@ -1,7 +1,15 @@
1
- import { AbstractInputActivity } from './abstract-input-activity';
2
- import { SelectInputActivityData } from './select-input-activity-data';
3
- export declare class SelectInputActivity<T> extends AbstractInputActivity<T, SelectInputActivityData<T>> {
1
+ import { ListModel } from '@coolon/pectin';
2
+ import { InputActivity } from './input-activity';
3
+ export declare class SelectInputActivity<T> extends InputActivity<T, SelectInputActivity.Data<T>> {
4
4
  readonly defaultOptionLabelFormat: (option: T) => T | T[keyof T];
5
5
  get optionLabelFormat(): (option: T) => any;
6
6
  get options(): T[];
7
7
  }
8
+ export declare namespace SelectInputActivity {
9
+ interface Data<T> extends InputActivity.Data<T> {
10
+ options?: T[];
11
+ optionsModel?: ListModel<T>;
12
+ optionLabel?: keyof T;
13
+ optionLabelFormat?: (option: T) => any;
14
+ }
15
+ }
@@ -1,3 +1,3 @@
1
- import { AbstractInputActivity } from './abstract-input-activity';
2
- export declare class StringInputActivity extends AbstractInputActivity<string> {
1
+ import { InputActivity } from './input-activity';
2
+ export declare class StringInputActivity extends InputActivity<string> {
3
3
  }
@@ -24,10 +24,11 @@ export * from "./components/add-item-interaction-context/add-item-interaction-co
24
24
  export * from "./components/alert-dialog/alert-dialog.component";
25
25
  export * from "./components/confirm-then-dialog/confirm-then-dialog.component";
26
26
  export * from "./components/confirmation-dialog/confirmation-dialog.component";
27
+ export * from "./components/editors/edit-context";
28
+ export * from "./components/editors/inline-string-editor/inline-editor-model";
29
+ export * from "./components/editors/inline-string-editor/inline-string-editor.component";
27
30
  export * from "./components/inplace-interaction-context/in-place-interaction-context.component";
28
- export * from "./components/input-activities/abstract-input-activity";
29
- export * from "./components/input-activities/input-activity-data";
30
- export * from "./components/input-activities/select-input-activity-data";
31
+ export * from "./components/input-activities/input-activity";
31
32
  export * from "./components/input-activities/select-input-activity";
32
33
  export * from "./components/input-activities/string-input-activity";
33
34
  export * from "./components/popup-interaction-context/popup-interaction-context.component";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coolon/angular-ui-powerups",
3
- "version": "12.4.0-alpha.27",
3
+ "version": "12.4.0-alpha.29",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "dependencies": {
6
6
  "@coolon/typescript-utilities": "^2.2.0",
@@ -1,4 +1,4 @@
1
- <aup-activity-title><%=name%></aup-activity-title>
1
+ <aup-activity-title>{{i18n.title()}}</aup-activity-title>
2
2
  <aup-activity-body>
3
3
  <p><%=name%> works!</p>
4
4
  </aup-activity-body>
@@ -8,11 +8,11 @@ import { I18n } from '<%=pathToRoot%>/i18n';
8
8
  templateUrl: './<%=dasherize(name)%>.component.html',
9
9
  styleUrls: ['./<%=dasherize(name)%>.component.scss'],
10
10
  })
11
- export class <%=capitalize(camelize(name))%>Component extends Activity<<%=capitalize(camelize(name))%>.Data, void> implements OnInit {
11
+ export class <%=capitalize(camelize(name))%>Component extends Activity<<%=capitalize(camelize(name))%>Component.Data, void> implements OnInit {
12
12
 
13
13
  readonly i18n = <%=i18nNamespace%>;
14
14
 
15
- constructor(@Inject(ACTIVITY_DATA) private readonly data: <%=capitalize(camelize(name))%>.Data) {
15
+ constructor(@Inject(ACTIVITY_DATA) private readonly data: <%=capitalize(camelize(name))%>Component.Data) {
16
16
  super();
17
17
  const {chain} = Dsl.disposeWith(this);
18
18
 
@@ -22,6 +22,8 @@ export class <%=capitalize(camelize(name))%>Component extends Activity<<%=capita
22
22
  this.cancelCommand = Command.create(() => {
23
23
  this.cancel();
24
24
  });
25
+
26
+ this.busyWhile(this.confirmCommand.busy);
25
27
  }
26
28
 
27
29
  ngOnInit() {
@@ -29,7 +31,7 @@ export class <%=capitalize(camelize(name))%>Component extends Activity<<%=capita
29
31
 
30
32
  }
31
33
 
32
- export namespace <%=capitalize(camelize(name))%> {
34
+ export namespace <%=capitalize(camelize(name))%>Component {
33
35
  export interface Data {
34
36
  }
35
37
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-container.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/components/card-container/card-container.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAMH,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAY7D;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IAED,QAAQ;IACR,CAAC;;;YAtBF,SAAS,SAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,kgBAA8C;;aAE/C;;;;6BAGE,KAAK;0BAIL,KAAK;8BAGL,YAAY,SAAC,iBAAiB;;AAL/B;IADC,aAAa,EAAE;8BACA,OAAO;8DAAM","sourcesContent":["import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\nimport { Command, TrackExternal } from '@coolon/pectin';\nimport { CommandFace } from '../commands/command-face';\nimport { DisposableComponent } from '../disposable-component';\n\n/**\n * @example\n * // basic usage\n * <aup-card-container>\n * <my-card *ngFor=\"...\"></my-card>\n * </aup-card-container>\n *\n * // adds an add button with a the '+' icon to the end of the card list.\n * <aup-card-container [addCardCommand]=\"addCard\">\n * <my-card *ngFor=\"...\"></my-card>\n * </aup-card-container>\n *\n * // adds an add button with the specified face\n * <aup-card-container [addCardCommand]=\"addCard\" [addCardFace]=\"i18n.addCard\" >\n * <my-card *ngFor=\"...\"></my-card>\n * </aup-card-container>\n *\n * // use the aup-add-card-activity to display as the new card place holder and to run\n * // the activity inside teh card\n * <aup-card-container [addCardCommand]=\"addCard\" [addCardFace]=\"i18n.addCard\" >\n * <my-card *ngFor=\"...\"></my-card>\n * <aup-add-card-activity type=\"inline\" renderAs=\"card\" [face]=\"i18n.commands.addModal\" [activityClass]=\"AddCardActivity\"></aup-add-card-activity>\n * </aup-card-container>\n *\n * // adds an add card component using the specified template. The template\n * // will fill it's container in the grid.\n * <aup-card-container>\n * <my-card *ngFor=\"...\"></my-card>\n * <ng-template #addCardTemplate>\n * <div>This is a new card template, it will the the size of the other cards.</div>\n * </ng-template>\n * </aup-card-container>\n *\n * // sing the default new card styles for your template\n * @import \"../../../../assets/styles\";\n * .my-new-card {\n * @include aup-card-container-new-card-style();\n * // OR\n * @include aup-card-container-new-card-style(\n * $color: rgba(0,0,0,0.54),\n * $background-color: rgba(255,255,255,0.8),\n * $hover-color: $color,\n * $background-hover-color: white\n * )\n * }\n * <aup-card-container>\n * <my-card *ngFor=\"...\"></my-card>\n * <ng-template #addCardTemplate>\n * <div class=\"my-new-card\" >This is a new card template, it will the the size of the other cards.</div>\n * </ng-template>\n * </aup-card-container>\n *\n * // CSS Vars\n * aup-card-container {\n * --card-gap: var(--card-gap, 16px);\n * --card-width: var(--card-width, 300px);\n * --card-height: var(--card-height, auto);\n * --card-min-height: var(--card-min-height, auto);\n * --card-background: var(--card-background, #fcfcfb);\n * }\n */\n@Component({\n selector: 'aup-card-container',\n templateUrl: './card-container.component.html',\n styleUrls: ['./card-container.component.scss']\n})\nexport class CardContainerComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @TrackExternal()\n addCardCommand: Command<any>;\n\n @Input()\n addCardFace: CommandFace;\n\n @ContentChild(\"addCardTemplate\")\n addCardTemplate: TemplateRef<any>;\n\n constructor() {\n super()\n }\n\n ngOnInit() {\n }\n\n}\n"]}
@@ -1 +0,0 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"CardContainerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../disposable-component","name":"DisposableComponent","line":71,"character":44},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":66,"character":1},"arguments":[{"selector":"aup-card-container","template":"<div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n\n</div>\n","styles":[":host{--resolved-card-gap:var(--card-gap,16px);--resolved-card-width:var(--card-width,300px);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-background:var(--card-background,#fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap));max-width:100%}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]}]}],"members":{"addCardCommand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":74,"character":3}}]}],"addCardFace":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"addCardTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":80,"character":3},"arguments":["addCardTemplate"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}}}}]
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-container.component.ngfactory.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/components/card-container/card-container.component.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
@@ -1,43 +0,0 @@
1
- import { Component, HostBinding, Inject } from '@angular/core';
2
- import { Command, DirtyTrackingForm } from '@coolon/pectin';
3
- import { Activity, ACTIVITY_DATA } from '../../activity';
4
- // @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
5
- // we're getting a metadata error for D for no reason that I can find and only during the build (ng serve works fine)
6
- // @dynamic
7
- export class AbstractInputActivity extends Activity {
8
- constructor(data) {
9
- super();
10
- this.data = data;
11
- this.class = 'aup-input-activity';
12
- const form = new DirtyTrackingForm();
13
- this.valueModel = form.valueModel(this.data.initialValue);
14
- this.valueModel.validateUsing(data.validators || []);
15
- this.confirmCommand = Command.create(() => {
16
- if (this.valueModel.validate()) {
17
- if (data.save) {
18
- return Promise.resolve(data.save(this.valueModel, this.interactionContext))
19
- .then(() => this.done());
20
- }
21
- else {
22
- this.done(this.valueModel.value);
23
- }
24
- }
25
- });
26
- this.cancelCommand = Command.create(() => {
27
- this.cancel();
28
- });
29
- }
30
- onActivityReady() {
31
- this.valueModel.focusContext.requestFocus();
32
- }
33
- }
34
- AbstractInputActivity.decorators = [
35
- { type: Component, args: [{ template: `` },] }
36
- ];
37
- AbstractInputActivity.ctorParameters = () => [
38
- { type: undefined, decorators: [{ type: Inject, args: [ACTIVITY_DATA,] }] }
39
- ];
40
- AbstractInputActivity.propDecorators = {
41
- class: [{ type: HostBinding, args: ['class',] }]
42
- };
43
- //# sourceMappingURL=abstract-input-activity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/abstract-input-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAQ,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGzD,gHAAgH;AAChH,qHAAqH;AACrH,WAAW;AAEX,MAAM,OAAO,qBAAgF,SAAQ,QAAc;IAQjH,YAA4C,IAAO;QACjD,KAAK,EAAE,CAAC;QADkC,SAAI,GAAJ,IAAI,CAAG;QAF7B,UAAK,GAAG,oBAAoB,CAAC;QAKjD,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAErD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YACxC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;gBAC9B,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;yBACxE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBAClC;aACF;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;;;YAjCF,SAAS,SAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;4CASZ,MAAM,SAAC,aAAa;;;oBAFhC,WAAW,SAAC,OAAO","sourcesContent":["import { Component, HostBinding, Inject } from '@angular/core';\nimport { Command, DirtyTrackingForm, Form } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { InputActivityData } from './input-activity-data';\n\n// @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123\n// we're getting a metadata error for D for no reason that I can find and only during the build (ng serve works fine)\n// @dynamic\n@Component({ template: `` })\nexport class AbstractInputActivity<T, D extends InputActivityData<T> = InputActivityData<T>> extends Activity<D, T> {\n\n readonly confirmCommand: Command<void>;\n readonly cancelCommand: Command<void>;\n readonly valueModel: Form.ValueModelBase<T>;\n\n @HostBinding('class') class = 'aup-input-activity';\n\n constructor(@Inject(ACTIVITY_DATA) readonly data: D) {\n super();\n\n const form = new DirtyTrackingForm();\n this.valueModel = form.valueModel<T>(this.data.initialValue);\n this.valueModel.validateUsing(data.validators || []);\n\n this.confirmCommand = Command.create(() => {\n if (this.valueModel.validate()) {\n if (data.save) {\n return Promise.resolve(data.save(this.valueModel, this.interactionContext))\n .then(() => this.done());\n } else {\n this.done(this.valueModel.value);\n }\n }\n });\n this.cancelCommand = Command.create(() => {\n this.cancel();\n });\n }\n\n onActivityReady() {\n this.valueModel.focusContext.requestFocus();\n }\n\n}\n"]}
@@ -1 +0,0 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"AbstractInputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../activity","name":"Activity","line":9,"character":101},"arity":2,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"template":""}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":15,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":15},"arguments":[{"__symbolic":"reference","module":"../../activity","name":"ACTIVITY_DATA","line":17,"character":22}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":17,"character":52,"context":{"typeName":"D"}}]}],"onActivityReady":[{"__symbolic":"method"}]}}}}]
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-input-activity.ngfactory.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=input-activity-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-activity-data.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/input-activity-data.ts"],"names":[],"mappings":"","sourcesContent":["import { Form, Validator } from '@coolon/pectin';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityActionsComponent } from '../activity-actions/activity-actions.component';\n\nexport interface InputActivityData<T> {\n initialValue: T;\n buttonStyle: ActivityActionsComponent.Style\n label?: string;\n placeholder?: string;\n validators?: Validator<T>[],\n\n save?(valueModel: Form.ValueModelBase<T>, interactionContext?: InteractionContext): void | Promise<unknown>\n}\n"]}
@@ -1 +0,0 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"InputActivityData":{"__symbolic":"interface"}}}]
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=select-input-activity-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-input-activity-data.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/select-input-activity-data.ts"],"names":[],"mappings":"","sourcesContent":["import { ListModel } from '@coolon/pectin';\nimport { InputActivityData } from './input-activity-data';\n\nexport interface SelectInputActivityData<T> extends InputActivityData<T> {\n options?: T[];\n optionsModel?: ListModel<T>;\n optionLabel?: keyof T;\n optionLabelFormat?: (option: T) => any;\n}\n"]}
@@ -1 +0,0 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"SelectInputActivityData":{"__symbolic":"interface"}}}]
@@ -1,12 +0,0 @@
1
- import { Command, Form } from '@coolon/pectin';
2
- import { Activity } from '../../activity';
3
- import { InputActivityData } from './input-activity-data';
4
- export declare class AbstractInputActivity<T, D extends InputActivityData<T> = InputActivityData<T>> extends Activity<D, T> {
5
- readonly data: D;
6
- readonly confirmCommand: Command<void>;
7
- readonly cancelCommand: Command<void>;
8
- readonly valueModel: Form.ValueModelBase<T>;
9
- class: string;
10
- constructor(data: D);
11
- onActivityReady(): void;
12
- }
@@ -1,11 +0,0 @@
1
- import { Form, Validator } from '@coolon/pectin';
2
- import { InteractionContext } from '../../interaction-context';
3
- import { ActivityActionsComponent } from '../activity-actions/activity-actions.component';
4
- export interface InputActivityData<T> {
5
- initialValue: T;
6
- buttonStyle: ActivityActionsComponent.Style;
7
- label?: string;
8
- placeholder?: string;
9
- validators?: Validator<T>[];
10
- save?(valueModel: Form.ValueModelBase<T>, interactionContext?: InteractionContext): void | Promise<unknown>;
11
- }
@@ -1,8 +0,0 @@
1
- import { ListModel } from '@coolon/pectin';
2
- import { InputActivityData } from './input-activity-data';
3
- export interface SelectInputActivityData<T> extends InputActivityData<T> {
4
- options?: T[];
5
- optionsModel?: ListModel<T>;
6
- optionLabel?: keyof T;
7
- optionLabelFormat?: (option: T) => any;
8
- }