@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.
- package/assets/form.scss +5 -2
- package/assets/interaction.scss +6 -7
- package/bundles/coolon-angular-ui-powerups.umd.js +478 -114
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/cards/abstract-card-container.component.js +29 -0
- package/esm2015/lib/components/cards/abstract-card-container.component.js.map +1 -0
- package/esm2015/lib/components/cards/abstract-card-container.component.metadata.json +1 -0
- package/esm2015/lib/components/cards/abstract-card-container.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/{card-container → cards/card-container}/card-container.component.js +4 -22
- package/esm2015/lib/components/cards/card-container/card-container.component.js.map +1 -0
- package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +1 -0
- package/esm2015/lib/components/cards/card-container/card-container.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/cards/card-container/card-container.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/cards/card-stack/card-stack.component.js +72 -0
- package/esm2015/lib/components/cards/card-stack/card-stack.component.js.map +1 -0
- package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +1 -0
- package/esm2015/lib/components/cards/card-stack/card-stack.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/cards/card-stack/card-stack.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/components.module.js +32 -24
- package/esm2015/lib/components/components.module.js.map +1 -1
- package/esm2015/lib/components/components.module.metadata.json +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/exports.js +4 -1
- package/esm2015/lib/components/exports.js.map +1 -1
- package/esm2015/lib/components/exports.metadata.json +1 -1
- package/esm2015/lib/components/forms/abstract-input.component.js +1 -0
- package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm2015/lib/components/labelled-value/labelled-value.component.js +22 -0
- package/esm2015/lib/components/labelled-value/labelled-value.component.js.map +1 -0
- package/esm2015/lib/components/labelled-value/labelled-value.component.metadata.json +1 -0
- package/esm2015/lib/components/labelled-value/labelled-value.component.ngfactory.js.map +1 -0
- 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
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +17 -11
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +19 -8
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +1 -1
- package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/editors/edit-context.js +2 -0
- package/esm2015/lib/interaction/components/editors/edit-context.js.map +1 -0
- package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +1 -0
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +28 -0
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +1 -0
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +1 -0
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +160 -0
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -0
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +1 -0
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +1 -0
- package/esm2015/lib/interaction/components/input-activities/input-activity.js +71 -0
- package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -0
- package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -0
- package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +1 -0
- package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +3 -3
- package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
- package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
- package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +3 -4
- package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
- package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
- package/esm2015/lib/interaction/exports.js +4 -3
- package/esm2015/lib/interaction/exports.js.map +1 -1
- package/esm2015/lib/interaction/exports.metadata.json +1 -1
- package/esm2015/lib/interaction/interaction.module.js +5 -2
- package/esm2015/lib/interaction/interaction.module.js.map +1 -1
- package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
- package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
- package/esm2015/lib/place/place-router.js +3 -8
- package/esm2015/lib/place/place-router.js.map +1 -1
- package/esm2015/lib/place/place-router.metadata.json +1 -1
- package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +400 -82
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/cards/abstract-card-container.component.d.ts +11 -0
- package/lib/components/{card-container → cards/card-container}/card-container.component.d.ts +2 -10
- package/lib/components/cards/card-stack/card-stack.component.d.ts +63 -0
- package/lib/components/exports.d.ts +4 -1
- package/lib/components/labelled-value/labelled-value.component.d.ts +7 -0
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +14 -3
- package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +15 -2
- package/lib/interaction/components/editors/edit-context.d.ts +3 -0
- package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +18 -0
- package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +56 -0
- package/lib/interaction/components/input-activities/input-activity.d.ts +33 -0
- package/lib/interaction/components/input-activities/select-input-activity.d.ts +11 -3
- package/lib/interaction/components/input-activities/string-input-activity.d.ts +2 -2
- package/lib/interaction/exports.d.ts +4 -3
- package/package.json +1 -1
- package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
- package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +5 -3
- package/esm2015/lib/components/card-container/card-container.component.js.map +0 -1
- package/esm2015/lib/components/card-container/card-container.component.metadata.json +0 -1
- package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +0 -1
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +0 -43
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +0 -1
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +0 -1
- package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +0 -1
- package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +0 -2
- package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +0 -1
- package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +0 -1
- package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +0 -2
- package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +0 -1
- package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +0 -1
- package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +0 -12
- package/lib/interaction/components/input-activities/input-activity-data.d.ts +0 -11
- package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +0 -8
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { __awaiter, __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { Command, Dsl, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';
|
|
4
|
+
import { lang } from '@coolon/typescript-utilities';
|
|
5
|
+
import * as _ from 'lodash';
|
|
6
|
+
import { DisposableComponent } from '../../../../components/disposable-component';
|
|
7
|
+
import { InteractionService } from '../../../services/interaction.service';
|
|
8
|
+
import { InPlaceInteractionContextComponent } from '../../inplace-interaction-context/in-place-interaction-context.component';
|
|
9
|
+
import { InputActivity } from '../../input-activities/input-activity';
|
|
10
|
+
import { StringInputActivity } from '../../input-activities/string-input-activity';
|
|
11
|
+
import { InlineEditorModel } from './inline-editor-model';
|
|
12
|
+
/**
|
|
13
|
+
* @example
|
|
14
|
+
* const source: ValueModel<string> = ...;
|
|
15
|
+
* const model = InlineEditorModel.create(source, {
|
|
16
|
+
* save(updated:string, context: InlineEditorModel.SaveContext) => {
|
|
17
|
+
* try {
|
|
18
|
+
* try and save the thing...
|
|
19
|
+
* } catch(error) {
|
|
20
|
+
* context.injectError(error)
|
|
21
|
+
* }
|
|
22
|
+
* }).validateUsing(Validator.present("We'll need a value");
|
|
23
|
+
*
|
|
24
|
+
* # in the view
|
|
25
|
+
* <aup-inline-string-editor
|
|
26
|
+
* label="My field"
|
|
27
|
+
* placeHolder="I'm ready for a string..."
|
|
28
|
+
* [editorModel]="model"></aup-inline-string-editor>
|
|
29
|
+
*/
|
|
30
|
+
export class InlineStringEditorComponent extends DisposableComponent {
|
|
31
|
+
constructor(interactionService) {
|
|
32
|
+
super();
|
|
33
|
+
const { chain, when, valueOf } = Dsl.disposeWith(this);
|
|
34
|
+
const modalIC = interactionService.createModalInteractionContextDisposedWith(this);
|
|
35
|
+
const resolvedFacesModel = chain(this.facesModel).map(userFaces => {
|
|
36
|
+
return Object.assign(Object.assign({}, InlineStringEditorComponent.DEFAULT_FACES), userFaces);
|
|
37
|
+
}, { allowNil: true });
|
|
38
|
+
this.editFaceModel = resolvedFacesModel.pluck('edit');
|
|
39
|
+
this.saveFace = resolvedFacesModel.pluck('save');
|
|
40
|
+
this.cancelFace = resolvedFacesModel.pluck('cancel');
|
|
41
|
+
const self = this;
|
|
42
|
+
this.editCommand = Command.create(() => __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
this.editorModel.editing.value = true;
|
|
44
|
+
try {
|
|
45
|
+
yield this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData());
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
// don't care, just hiding the console errors
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
this.editorModel.editing.value = false;
|
|
52
|
+
}
|
|
53
|
+
}));
|
|
54
|
+
this.onDispose(() => this.cancelEdit());
|
|
55
|
+
// const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));
|
|
56
|
+
// txo.observe('this.editFace', this.editFaceModel);
|
|
57
|
+
}
|
|
58
|
+
ngOnInit() {
|
|
59
|
+
// our editor model is a one time binding without delegates so we can only
|
|
60
|
+
// use it once we've been initialised
|
|
61
|
+
const { chain, when, valueOf } = Dsl.disposeWith(this);
|
|
62
|
+
if (!this.editorModel) {
|
|
63
|
+
lang.illegalState("editorModel is required");
|
|
64
|
+
}
|
|
65
|
+
when(this.editorModel.editing).becomesTruthy(() => {
|
|
66
|
+
this.editCommand.execute();
|
|
67
|
+
}, { asLongAs: this.editCommand.enabled });
|
|
68
|
+
when(this.editorModel.editing).becomesFalsey(() => this.cancelEdit());
|
|
69
|
+
this.empty = valueOf.any(chain.stringValue(this.editorModel.valueModel).isBlank()
|
|
70
|
+
// deviceDescription.isNil()
|
|
71
|
+
).areTruthy();
|
|
72
|
+
this.displayValue = chain(this.editorModel.valueModel).map(v => {
|
|
73
|
+
return _.isEmpty(v) ? this.placeHolderModel.value : v;
|
|
74
|
+
}, { dependsOn: this.placeHolderModel, allowNil: true });
|
|
75
|
+
}
|
|
76
|
+
createInputActivityData() {
|
|
77
|
+
const self = this;
|
|
78
|
+
return {
|
|
79
|
+
initialValue: self.editorModel.valueModel.value,
|
|
80
|
+
buttonStyle: { confirm: self.saveFace.value, cancel: self.cancelFace.value },
|
|
81
|
+
placeholder: self.placeHolderModel.value,
|
|
82
|
+
label: self.label,
|
|
83
|
+
layout: InputActivity.Layout.INLINE,
|
|
84
|
+
validators: self.editorModel.validators.value,
|
|
85
|
+
save(value, inputContext) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
yield self.editorModel.saveCallback(value, inputContext);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
cancelEdit() {
|
|
93
|
+
if (this.isEditing()) {
|
|
94
|
+
this.interactionContext.cancelActiveActivity();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
startEdit() {
|
|
98
|
+
if (!this.isEditing() && this.editCommand.enabled.value) {
|
|
99
|
+
this.editCommand.execute();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
isEditing() {
|
|
103
|
+
return this.interactionContext.isActive();
|
|
104
|
+
}
|
|
105
|
+
isEmpty() {
|
|
106
|
+
return this.empty.value;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
InlineStringEditorComponent.decorators = [
|
|
110
|
+
{ type: Component, args: [{
|
|
111
|
+
selector: 'aup-inline-string-editor',
|
|
112
|
+
template: "<ng-container *ngIf=\"!editorModel.isEditing()\">\n <div class=\"content\" [class.editable]=\"editCommand.enabled.value\">\n <label>{{label}}</label>\n <p [class.place-holder]=\"empty.value\" (click)=\"editCommand.execute()\">{{displayValue.value}}</p>\n <aup-command *ngIf=\"editCommand.enabled.value\" [command]=\"editCommand\" [faceModel]=\"editFaceModel\"></aup-command>\n </div>\n</ng-container>\n<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n\n"
|
|
113
|
+
},] }
|
|
114
|
+
];
|
|
115
|
+
InlineStringEditorComponent.ctorParameters = () => [
|
|
116
|
+
{ type: InteractionService }
|
|
117
|
+
];
|
|
118
|
+
InlineStringEditorComponent.propDecorators = {
|
|
119
|
+
editorModel: [{ type: Input }],
|
|
120
|
+
facesModel: [{ type: Input }],
|
|
121
|
+
faces: [{ type: Input }],
|
|
122
|
+
interactionContext: [{ type: ViewChild, args: [InPlaceInteractionContextComponent,] }],
|
|
123
|
+
label: [{ type: Input }],
|
|
124
|
+
placeHolder: [{ type: Input }],
|
|
125
|
+
placeHolderModel: [{ type: Input }]
|
|
126
|
+
};
|
|
127
|
+
__decorate([
|
|
128
|
+
TrackExternal(),
|
|
129
|
+
__metadata("design:type", InlineEditorModel)
|
|
130
|
+
], InlineStringEditorComponent.prototype, "editorModel", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
TrackExternal(),
|
|
133
|
+
__metadata("design:type", ValueModel)
|
|
134
|
+
], InlineStringEditorComponent.prototype, "facesModel", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
StoreInValueModel('facesModel'),
|
|
137
|
+
__metadata("design:type", Object)
|
|
138
|
+
], InlineStringEditorComponent.prototype, "faces", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
StoreInValueModel('placeHolderModel'),
|
|
141
|
+
__metadata("design:type", String)
|
|
142
|
+
], InlineStringEditorComponent.prototype, "placeHolder", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
TrackExternal(),
|
|
145
|
+
__metadata("design:type", ValueModel)
|
|
146
|
+
], InlineStringEditorComponent.prototype, "placeHolderModel", void 0);
|
|
147
|
+
(function (InlineStringEditorComponent) {
|
|
148
|
+
InlineStringEditorComponent.DEFAULT_FACES = {
|
|
149
|
+
edit: {
|
|
150
|
+
icon: () => 'mat:edit'
|
|
151
|
+
},
|
|
152
|
+
save: {
|
|
153
|
+
icon: () => 'mat:check'
|
|
154
|
+
},
|
|
155
|
+
cancel: {
|
|
156
|
+
icon: () => 'mat:clear'
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
})(InlineStringEditorComponent || (InlineStringEditorComponent = {}));
|
|
160
|
+
//# sourceMappingURL=inline-string-editor.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-string-editor.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n BooleanValueModelChain,\n Command,\n Dsl,\n StoreInValueModel,\n TrackExternal,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { lang } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { CommandFace } from '../../../../components/commands/command-face';\nimport { DisposableComponent } from '../../../../components/disposable-component';\nimport { InteractionService } from '../../../services/interaction.service';\nimport { InPlaceInteractionContextComponent } from '../../inplace-interaction-context/in-place-interaction-context.component';\nimport { InputActivity } from '../../input-activities/input-activity';\nimport { StringInputActivity } from '../../input-activities/string-input-activity';\nimport { InlineEditorModel } from './inline-editor-model';\n\n/**\n * @example\n * const source: ValueModel<string> = ...;\n * const model = InlineEditorModel.create(source, {\n * save(updated:string, context: InlineEditorModel.SaveContext) => {\n * try {\n * try and save the thing...\n * } catch(error) {\n * context.injectError(error)\n * }\n * }).validateUsing(Validator.present(\"We'll need a value\");\n *\n * # in the view\n * <aup-inline-string-editor\n * label=\"My field\"\n * placeHolder=\"I'm ready for a string...\"\n * [editorModel]=\"model\"></aup-inline-string-editor>\n */\n@Component({\n selector: 'aup-inline-string-editor',\n templateUrl: './inline-string-editor.component.html',\n styleUrls: [] // See assets/interaction/editor/inline-string-editor.scss\n})\nexport class InlineStringEditorComponent extends DisposableComponent implements OnInit {\n\n @Input()\n @TrackExternal()\n editorModel: InlineEditorModel<string>;\n\n @Input()\n @TrackExternal()\n facesModel: ValueModel<InlineStringEditorComponent.Faces>;\n\n @Input()\n @StoreInValueModel('facesModel')\n faces: InlineStringEditorComponent.Faces;\n\n @ViewChild(InPlaceInteractionContextComponent)\n interactionContext: InPlaceInteractionContextComponent<any, any, any>;\n\n @Input()\n label: string;\n\n @Input()\n @StoreInValueModel('placeHolderModel')\n placeHolder: string;\n\n @Input()\n @TrackExternal()\n placeHolderModel: ValueModel<string>;\n\n readonly description: ValueModelChain<string>;\n empty: BooleanValueModelChain;\n readonly editCommand: Command<void>;\n\n displayValue: ValueModelChain<string>;\n readonly editFaceModel: ValueModelChain<CommandFace>;\n readonly saveFace: ValueModelChain<CommandFace>;\n readonly cancelFace: ValueModelChain<CommandFace>;\n\n constructor(interactionService: InteractionService) {\n super();\n const { chain, when, valueOf } = Dsl.disposeWith(this);\n const modalIC = interactionService.createModalInteractionContextDisposedWith(this);\n\n const resolvedFacesModel = chain(this.facesModel).map(userFaces => {\n return {\n ...InlineStringEditorComponent.DEFAULT_FACES, // todo: should really inject app wide defaults as well\n ...userFaces\n };\n }, { allowNil: true });\n\n this.editFaceModel = resolvedFacesModel.pluck('edit');\n this.saveFace = resolvedFacesModel.pluck('save');\n this.cancelFace = resolvedFacesModel.pluck('cancel');\n\n const self = this;\n this.editCommand = Command.create(async () => {\n this.editorModel.editing.value = true;\n try {\n await this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData());\n } catch(e) {\n // don't care, just hiding the console errors\n }\n finally {\n this.editorModel.editing.value = false;\n }\n });\n\n this.onDispose(() => this.cancelEdit());\n\n // const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));\n // txo.observe('this.editFace', this.editFaceModel);\n }\n\n\n ngOnInit(): void {\n // our editor model is a one time binding without delegates so we can only\n // use it once we've been initialised\n const { chain, when, valueOf } = Dsl.disposeWith(this);\n\n if (!this.editorModel) {\n lang.illegalState(\"editorModel is required\");\n }\n\n when(this.editorModel.editing).becomesTruthy(() => {\n this.editCommand.execute();\n }, { asLongAs: this.editCommand.enabled });\n\n when(this.editorModel.editing).becomesFalsey(() => this.cancelEdit());\n\n this.empty = valueOf.any(\n chain.stringValue(this.editorModel.valueModel).isBlank()\n // deviceDescription.isNil()\n ).areTruthy();\n\n this.displayValue = chain(this.editorModel.valueModel).map(v => {\n return _.isEmpty(v) ? this.placeHolderModel.value : v;\n }, { dependsOn: this.placeHolderModel, allowNil: true });\n\n\n }\n\n private createInputActivityData(): InputActivity.Data<string> {\n const self = this;\n return {\n initialValue: self.editorModel.valueModel.value,\n buttonStyle: { confirm: self.saveFace.value, cancel: self.cancelFace.value },\n placeholder: self.placeHolderModel.value,\n label: self.label,\n layout: InputActivity.Layout.INLINE,\n validators: self.editorModel.validators.value,\n async save(value: string, inputContext: InputActivity.Context): Promise<void> {\n await self.editorModel.saveCallback(value, inputContext);\n }\n };\n }\n\n cancelEdit() {\n if (this.isEditing()) {\n this.interactionContext.cancelActiveActivity();\n }\n }\n\n startEdit() {\n if (!this.isEditing() && this.editCommand.enabled.value) {\n this.editCommand.execute();\n }\n }\n\n private isEditing() {\n return this.interactionContext.isActive();\n }\n\n isEmpty(): boolean {\n return this.empty.value;\n }\n\n\n}\n\nexport namespace InlineStringEditorComponent {\n\n export interface Faces {\n edit?: CommandFace;\n save?: CommandFace;\n cancel?: CommandFace;\n }\n\n export const DEFAULT_FACES: Faces = {\n edit: {\n icon: () => 'mat:edit'\n },\n save: {\n icon: () => 'mat:check'\n },\n cancel: {\n icon: () => 'mat:clear'\n }\n };\n\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"InlineStringEditorComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../../components/disposable-component","name":"DisposableComponent","line":43,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"aup-inline-string-editor","styleUrls":[],"template":"<ng-container *ngIf=\"!editorModel.isEditing()\">\n <div class=\"content\" [class.editable]=\"editCommand.enabled.value\">\n <label>{{label}}</label>\n <p [class.place-holder]=\"empty.value\" (click)=\"editCommand.execute()\">{{displayValue.value}}</p>\n <aup-command *ngIf=\"editCommand.enabled.value\" [command]=\"editCommand\" [faceModel]=\"editFaceModel\"></aup-command>\n </div>\n</ng-container>\n<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n\n"}]}],"members":{"editorModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":46,"character":3}}]}],"facesModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":50,"character":3}}]}],"faces":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":54,"character":3},"arguments":["facesModel"]}]}],"interactionContext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":57,"character":3},"arguments":[{"__symbolic":"reference","module":"../../inplace-interaction-context/in-place-interaction-context.component","name":"InPlaceInteractionContextComponent","line":57,"character":13}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"placeHolder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":64,"character":3},"arguments":["placeHolderModel"]}]}],"placeHolderModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":68,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../../services/interaction.service","name":"InteractionService","line":80,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}],"createInputActivityData":[{"__symbolic":"method"}],"cancelEdit":[{"__symbolic":"method"}],"startEdit":[{"__symbolic":"method"}],"isEditing":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}]}}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-string-editor.component.ngfactory.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, HostBinding, Inject, Input } from '@angular/core';
|
|
3
|
+
import { Command, DirtyTrackingForm } from '@coolon/pectin';
|
|
4
|
+
import { Enum } from 'typescript-string-enums';
|
|
5
|
+
import { Activity, ACTIVITY_DATA } from '../../activity';
|
|
6
|
+
// @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
|
|
7
|
+
// we're getting a metadata error for D for no reason that I can find and only during the build (ng serve works fine)
|
|
8
|
+
// @dynamic
|
|
9
|
+
export class InputActivity extends Activity {
|
|
10
|
+
constructor(data) {
|
|
11
|
+
super();
|
|
12
|
+
this.data = data;
|
|
13
|
+
this.class = 'aup-input-activity';
|
|
14
|
+
const form = new DirtyTrackingForm();
|
|
15
|
+
this.valueModel = form.valueModel(this.data.initialValue);
|
|
16
|
+
this.valueModel.validateUsing(data.validators || []);
|
|
17
|
+
this.confirmCommand = Command.create(() => __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
if (this.valueModel.validate()) {
|
|
19
|
+
if (data.save) {
|
|
20
|
+
const self = this;
|
|
21
|
+
try {
|
|
22
|
+
let allGood = true;
|
|
23
|
+
const result = yield data.save(this.valueModel.value, {
|
|
24
|
+
injectError(error) {
|
|
25
|
+
allGood = false;
|
|
26
|
+
self.valueModel.injectErrors([error]);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
if (allGood) {
|
|
30
|
+
this.done(this.valueModel.value);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
// don't care, just hide error messages
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.done(this.valueModel.value);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
this.cancelCommand = Command.create(() => {
|
|
43
|
+
this.cancel();
|
|
44
|
+
});
|
|
45
|
+
this.busyWhile(this.confirmCommand.busy);
|
|
46
|
+
}
|
|
47
|
+
get layout() {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
return (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.layout) !== null && _b !== void 0 ? _b : InputActivity.Layout.BLOCK;
|
|
50
|
+
}
|
|
51
|
+
onActivityReady() {
|
|
52
|
+
this.valueModel.focusContext.requestFocus();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
InputActivity.decorators = [
|
|
56
|
+
{ type: Component, args: [{ template: `` },] }
|
|
57
|
+
];
|
|
58
|
+
InputActivity.ctorParameters = () => [
|
|
59
|
+
{ type: undefined, decorators: [{ type: Inject, args: [ACTIVITY_DATA,] }] }
|
|
60
|
+
];
|
|
61
|
+
InputActivity.propDecorators = {
|
|
62
|
+
class: [{ type: HostBinding, args: ['class',] }],
|
|
63
|
+
layout: [{ type: Input }, { type: HostBinding, args: ['attr.layout',] }]
|
|
64
|
+
};
|
|
65
|
+
(function (InputActivity) {
|
|
66
|
+
InputActivity.Layout = Enum({
|
|
67
|
+
INLINE: 'inline',
|
|
68
|
+
BLOCK: 'block'
|
|
69
|
+
});
|
|
70
|
+
})(InputActivity || (InputActivity = {}));
|
|
71
|
+
//# sourceMappingURL=input-activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/input-activity.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGzD,gHAAgH;AAChH,qHAAqH;AACrH,WAAW;AAEX,MAAM,OAAO,aAA0E,SAAQ,QAAc;IAc3G,YAA4C,IAAO;QACjD,KAAK,EAAE,CAAC;QADkC,SAAI,GAAJ,IAAI,CAAG;QAR7B,UAAK,GAAG,oBAAoB,CAAC;QAWjD,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,GAAS,EAAE;YAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;gBAC9B,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,MAAM,IAAI,GAAG,IAAI,CAAC;oBAClB,IAAI;wBACF,IAAI,OAAO,GAAG,IAAI,CAAC;wBACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;4BACpD,WAAW,CAAC,KAAa;gCACvB,OAAO,GAAG,KAAK,CAAC;gCAChB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACxC,CAAC;yBACF,CAAC,CAAC;wBACH,IAAI,OAAO,EAAE;4BACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;yBAClC;qBACF;oBAAC,OAAM,CAAC,EAAE;wBACT,uCAAuC;qBACxC;iBACF;qBAAM;oBACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBAClC;aAEF;QACH,CAAC,CAAA,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IA1CD,IAEI,MAAM;;QACR,OAAO,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,mCAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;IACzD,CAAC;IAwCD,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;;;YAvDF,SAAS,SAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;4CAeZ,MAAM,SAAC,aAAa;;;oBARhC,WAAW,SAAC,OAAO;qBAEnB,KAAK,YACL,WAAW,SAAC,aAAa;;AAiD5B,WAAiB,aAAa;IAEf,oBAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;AAiBL,CAAC,EAtBgB,aAAa,KAAb,aAAa,QAsB7B","sourcesContent":["import { Component, HostBinding, Inject, Input } from '@angular/core';\nimport { Command, DirtyTrackingForm, Form, Validator } from '@coolon/pectin';\nimport { Enum } from 'typescript-string-enums';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { ActivityActionsComponent } from '../activity-actions/activity-actions.component';\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 InputActivity<T, D extends InputActivity.Data<T> = InputActivity.Data<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 @Input()\n @HostBinding('attr.layout')\n get layout(): InputActivity.Layout {\n return this.data?.layout ?? InputActivity.Layout.BLOCK;\n }\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(async () => {\n if (this.valueModel.validate()) {\n if (data.save) {\n const self = this;\n try {\n let allGood = true;\n const result = await data.save(this.valueModel.value, {\n injectError(error: string) {\n allGood = false;\n self.valueModel.injectErrors([error]);\n }\n });\n if (allGood) {\n this.done(this.valueModel.value);\n }\n } catch(e) {\n // don't care, just hide error messages\n }\n } else {\n this.done(this.valueModel.value);\n }\n\n }\n });\n this.cancelCommand = Command.create(() => {\n this.cancel();\n });\n\n this.busyWhile(this.confirmCommand.busy);\n }\n\n onActivityReady() {\n this.valueModel.focusContext.requestFocus();\n }\n\n}\n\nexport namespace InputActivity {\n\n export const Layout = Enum({\n INLINE: 'inline',\n BLOCK: 'block'\n });\n export type Layout = Enum<typeof Layout>;\n\n export interface Context {\n injectError(error: string);\n }\n\n export interface Data<T> {\n initialValue: T;\n label?: string;\n placeholder?: string;\n layout?: InputActivity.Layout\n buttonStyle?: ActivityActionsComponent.Style\n validators?: Validator<T>[],\n\n save?(valueModel: T, interactionContext?: Context): void | Promise<void>\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"InputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../activity","name":"Activity","line":10,"character":95},"arity":2,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"template":""}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":16,"character":3},"arguments":["class"]}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":19,"character":3},"arguments":["attr.layout"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":15},"arguments":[{"__symbolic":"reference","module":"../../activity","name":"ACTIVITY_DATA","line":24,"character":22}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":24,"character":52,"context":{"typeName":"D"}}]}],"onActivityReady":[{"__symbolic":"method"}]}}}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-activity.ngfactory.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/input-activity.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
export class SelectInputActivity extends
|
|
2
|
+
import { InputActivity } from './input-activity';
|
|
3
|
+
export class SelectInputActivity extends InputActivity {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.defaultOptionLabelFormat = (option) => {
|
|
@@ -28,7 +28,7 @@ SelectInputActivity.decorators = [
|
|
|
28
28
|
[options]="options"
|
|
29
29
|
[optionLabelFormat]="optionLabelFormat"
|
|
30
30
|
></aup-select-input>
|
|
31
|
-
<aup-activity-actions align="end" [faces]="data.buttonStyle"
|
|
31
|
+
<aup-activity-actions [layout]="layout" align="end" [faces]="data.buttonStyle"
|
|
32
32
|
></aup-activity-actions>
|
|
33
33
|
`
|
|
34
34
|
},] }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/select-input-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"select-input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/select-input-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAiBjD,MAAM,OAAO,mBAAuB,SAAQ,aAA6C;IAfzF;;QAiBW,6BAAwB,GAAG,CAAC,MAAS,EAAE,EAAE;YAChD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxE,CAAC,CAAC;IASJ,CAAC;IAPC,IAAI,iBAAiB;;QACnB,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,mCAAI,IAAI,CAAC,wBAAwB,CAAC;IACtE,CAAC;IAED,IAAI,OAAO;;QACT,OAAO,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,YAAY,0CAAE,KAAK,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC5D,CAAC;;;YA3BF,SAAS,SAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,QAAQ,EAAE;;;;;;;;;;;GAWT;aACF","sourcesContent":["import { Component } from '@angular/core';\nimport { ListModel } from '@coolon/pectin';\nimport { InputActivity } from './input-activity';\n\n@Component({\n selector: 'aup-select-input-activity',\n template: `\n <aup-select-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"\n [options]=\"options\"\n [optionLabelFormat]=\"optionLabelFormat\"\n ></aup-select-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\" [faces]=\"data.buttonStyle\"\n ></aup-activity-actions>\n `\n})\nexport class SelectInputActivity<T> extends InputActivity<T, SelectInputActivity.Data<T>> {\n\n readonly defaultOptionLabelFormat = (option: T) => {\n return this.data.optionLabel ? option[this.data.optionLabel] : option;\n };\n\n get optionLabelFormat() {\n return this.data.optionLabelFormat ?? this.defaultOptionLabelFormat;\n }\n\n get options(): T[] {\n return this.data.optionsModel?.value || this.data.options;\n }\n}\n\nexport namespace SelectInputActivity {\n export interface Data<T> extends InputActivity.Data<T> {\n options?: T[];\n optionsModel?: ListModel<T>;\n optionLabel?: keyof T;\n optionLabelFormat?: (option: T) => any;\n }\n}\n"]}
|
package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"SelectInputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"./
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"SelectInputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"./input-activity","name":"InputActivity","line":19,"character":44},"arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-select-input-activity","template":"\n <aup-select-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"\n [options]=\"options\"\n [optionLabelFormat]=\"optionLabelFormat\"\n ></aup-select-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\" [faces]=\"data.buttonStyle\"\n ></aup-activity-actions>\n "}]}]}}}]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
export class StringInputActivity extends
|
|
2
|
+
import { InputActivity } from './input-activity';
|
|
3
|
+
export class StringInputActivity extends InputActivity {
|
|
4
4
|
}
|
|
5
5
|
StringInputActivity.decorators = [
|
|
6
6
|
{ type: Component, args: [{
|
|
@@ -11,8 +11,7 @@ StringInputActivity.decorators = [
|
|
|
11
11
|
[placeholder]="data.placeholder"
|
|
12
12
|
[command.enter]="confirmCommand"
|
|
13
13
|
[command.escape]="cancelCommand"></aup-string-input>
|
|
14
|
-
<aup-activity-actions align="end"
|
|
15
|
-
[faces]="data.buttonStyle"></aup-activity-actions>
|
|
14
|
+
<aup-activity-actions [layout]="layout" align="end" [faces]="data.buttonStyle"></aup-activity-actions>
|
|
16
15
|
`
|
|
17
16
|
},] }
|
|
18
17
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/string-input-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"string-input-activity.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/interaction/components/input-activities/string-input-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAcjD,MAAM,OAAO,mBAAoB,SAAQ,aAAqB;;;YAX7D,SAAS,SAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,QAAQ,EAAE;;;;;;;GAOT;aACF","sourcesContent":["import { Component } from '@angular/core';\nimport { InputActivity } from './input-activity';\n\n\n@Component({\n selector: 'aup-string-input-activity',\n template: `\n <aup-string-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"></aup-string-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\" [faces]=\"data.buttonStyle\"></aup-activity-actions>\n `\n})\nexport class StringInputActivity extends InputActivity<string> {\n}\n"]}
|
package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"StringInputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"./
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"StringInputActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"./input-activity","name":"InputActivity","line":15,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-string-input-activity","template":"\n <aup-string-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"></aup-string-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\" [faces]=\"data.buttonStyle\"></aup-activity-actions>\n "}]}]}}}]
|
|
@@ -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/
|
|
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";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/interaction/exports.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iCAAiC,CAAC;AAChD,cAAc,0DAA0D,CAAC;AACzE,cAAc,oDAAoD,CAAC;AACnE,cAAc,8DAA8D,CAAC;AAC7E,cAAc,2EAA2E,CAAC;AAC1F,cAAc,sDAAsD,CAAC;AACrE,cAAc,oEAAoE,CAAC;AACnF,cAAc,0FAA0F,CAAC;AACzG,cAAc,wFAAwF,CAAC;AACvG,cAAc,wFAAwF,CAAC;AACvG,cAAc,4DAA4D,CAAC;AAC3E,cAAc,kFAAkF,CAAC;AACjG,cAAc,kDAAkD,CAAC;AACjE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/interaction/exports.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iCAAiC,CAAC;AAChD,cAAc,0DAA0D,CAAC;AACzE,cAAc,oDAAoD,CAAC;AACnE,cAAc,8DAA8D,CAAC;AAC7E,cAAc,2EAA2E,CAAC;AAC1F,cAAc,sDAAsD,CAAC;AACrE,cAAc,oEAAoE,CAAC;AACnF,cAAc,0FAA0F,CAAC;AACzG,cAAc,wFAAwF,CAAC;AACvG,cAAc,wFAAwF,CAAC;AACvG,cAAc,4DAA4D,CAAC;AAC3E,cAAc,kFAAkF,CAAC;AACjG,cAAc,kDAAkD,CAAC;AACjE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,mCAAmC,CAAC;AAClD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,0EAA0E,CAAC;AACzF,cAAc,iFAAiF,CAAC;AAChG,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,4EAA4E,CAAC;AAC3F,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sEAAsE,CAAC;AACrF,cAAc,8DAA8D,CAAC","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./abstract-interaction-context\";\nexport * from \"./activity-ref\";\nexport * from \"./activity\";\nexport * from \"./alert\";\nexport * from \"./confirm\";\nexport * from \"./interaction-context\";\nexport * from \"./interaction.module\";\nexport * from \"./result\";\nexport * from \"./route-synchronisation-adapter\";\nexport * from \"./components/activity-actions/activity-actions.component\";\nexport * from \"./components/activity-body/activity-body.component\";\nexport * from \"./components/activity-container/activity-container.component\";\nexport * from \"./components/activity-container/activity-outlet/activity-outlet.component\";\nexport * from \"./components/activity-title/activity-title.component\";\nexport * from \"./components/activity-triggers/abstract-activity-trigger.component\";\nexport * from \"./components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component\";\nexport * from \"./components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component\";\nexport * from \"./components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component\";\nexport * from \"./components/add-card-activity/add-card-activity.component\";\nexport * from \"./components/add-item-interaction-context/add-item-interaction-context.component\";\nexport * from \"./components/alert-dialog/alert-dialog.component\";\nexport * from \"./components/confirm-then-dialog/confirm-then-dialog.component\";\nexport * from \"./components/confirmation-dialog/confirmation-dialog.component\";\nexport * from \"./components/editors/edit-context\";\nexport * from \"./components/editors/inline-string-editor/inline-editor-model\";\nexport * from \"./components/editors/inline-string-editor/inline-string-editor.component\";\nexport * from \"./components/inplace-interaction-context/in-place-interaction-context.component\";\nexport * from \"./components/input-activities/input-activity\";\nexport * from \"./components/input-activities/select-input-activity\";\nexport * from \"./components/input-activities/string-input-activity\";\nexport * from \"./components/popup-interaction-context/popup-interaction-context.component\";\nexport * from \"./directives/interaction-context-trigger-for.directive\";\nexport * from \"./services/interaction-service-routing-adapter\";\nexport * from \"./services/interaction.service\";\nexport * from \"./services/modal-interaction-context.factory\";\nexport * from \"./services/mat-dialog-interaction/dialog-interaction-context-factory\";\nexport * from \"./services/mat-dialog-interaction/dialog-interaction-context\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./abstract-interaction-context"},{"from":"./activity-ref"},{"from":"./activity"},{"from":"./alert"},{"from":"./confirm"},{"from":"./interaction-context"},{"from":"./interaction.module"},{"from":"./result"},{"from":"./route-synchronisation-adapter"},{"from":"./components/activity-actions/activity-actions.component"},{"from":"./components/activity-body/activity-body.component"},{"from":"./components/activity-container/activity-container.component"},{"from":"./components/activity-container/activity-outlet/activity-outlet.component"},{"from":"./components/activity-title/activity-title.component"},{"from":"./components/activity-triggers/abstract-activity-trigger.component"},{"from":"./components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component"},{"from":"./components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component"},{"from":"./components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component"},{"from":"./components/add-card-activity/add-card-activity.component"},{"from":"./components/add-item-interaction-context/add-item-interaction-context.component"},{"from":"./components/alert-dialog/alert-dialog.component"},{"from":"./components/confirm-then-dialog/confirm-then-dialog.component"},{"from":"./components/confirmation-dialog/confirmation-dialog.component"},{"from":"./components/
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./abstract-interaction-context"},{"from":"./activity-ref"},{"from":"./activity"},{"from":"./alert"},{"from":"./confirm"},{"from":"./interaction-context"},{"from":"./interaction.module"},{"from":"./result"},{"from":"./route-synchronisation-adapter"},{"from":"./components/activity-actions/activity-actions.component"},{"from":"./components/activity-body/activity-body.component"},{"from":"./components/activity-container/activity-container.component"},{"from":"./components/activity-container/activity-outlet/activity-outlet.component"},{"from":"./components/activity-title/activity-title.component"},{"from":"./components/activity-triggers/abstract-activity-trigger.component"},{"from":"./components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component"},{"from":"./components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component"},{"from":"./components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component"},{"from":"./components/add-card-activity/add-card-activity.component"},{"from":"./components/add-item-interaction-context/add-item-interaction-context.component"},{"from":"./components/alert-dialog/alert-dialog.component"},{"from":"./components/confirm-then-dialog/confirm-then-dialog.component"},{"from":"./components/confirmation-dialog/confirmation-dialog.component"},{"from":"./components/editors/edit-context"},{"from":"./components/editors/inline-string-editor/inline-editor-model"},{"from":"./components/editors/inline-string-editor/inline-string-editor.component"},{"from":"./components/inplace-interaction-context/in-place-interaction-context.component"},{"from":"./components/input-activities/input-activity"},{"from":"./components/input-activities/select-input-activity"},{"from":"./components/input-activities/string-input-activity"},{"from":"./components/popup-interaction-context/popup-interaction-context.component"},{"from":"./directives/interaction-context-trigger-for.directive"},{"from":"./services/interaction-service-routing-adapter"},{"from":"./services/interaction.service"},{"from":"./services/modal-interaction-context.factory"},{"from":"./services/mat-dialog-interaction/dialog-interaction-context-factory"},{"from":"./services/mat-dialog-interaction/dialog-interaction-context"}]}]
|
|
@@ -28,9 +28,10 @@ import { InteractionContextTriggerFor } from './directives/interaction-context-t
|
|
|
28
28
|
import { InteractionService } from './services/interaction.service';
|
|
29
29
|
import { StringInputActivity } from './components/input-activities/string-input-activity';
|
|
30
30
|
import { SelectInputActivity } from './components/input-activities/select-input-activity';
|
|
31
|
-
import {
|
|
31
|
+
import { InputActivity } from './components/input-activities/input-activity';
|
|
32
32
|
import { ComponentsModule } from '../components/exports';
|
|
33
33
|
import { PopupActivityTriggerComponent } from './components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component';
|
|
34
|
+
import { InlineStringEditorComponent } from './components/editors/inline-string-editor/inline-string-editor.component';
|
|
34
35
|
export class InteractionModule {
|
|
35
36
|
}
|
|
36
37
|
InteractionModule.decorators = [
|
|
@@ -60,7 +61,7 @@ InteractionModule.decorators = [
|
|
|
60
61
|
PopupInteractionContextComponent,
|
|
61
62
|
StringInputActivity,
|
|
62
63
|
SelectInputActivity,
|
|
63
|
-
|
|
64
|
+
InputActivity,
|
|
64
65
|
InteractionContextTriggerFor,
|
|
65
66
|
Activity,
|
|
66
67
|
ActivityTitleComponent,
|
|
@@ -71,6 +72,7 @@ InteractionModule.decorators = [
|
|
|
71
72
|
InlineActivityTriggerComponent,
|
|
72
73
|
ModalActivityTriggerComponent,
|
|
73
74
|
AddCardActivityComponent,
|
|
75
|
+
InlineStringEditorComponent,
|
|
74
76
|
],
|
|
75
77
|
exports: [
|
|
76
78
|
ActivityContainerComponent,
|
|
@@ -88,6 +90,7 @@ InteractionModule.decorators = [
|
|
|
88
90
|
InlineActivityTriggerComponent,
|
|
89
91
|
ModalActivityTriggerComponent,
|
|
90
92
|
AddCardActivityComponent,
|
|
93
|
+
InlineStringEditorComponent,
|
|
91
94
|
],
|
|
92
95
|
entryComponents: [
|
|
93
96
|
ActivityContainerComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.module.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/interaction/interaction.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,8DAA8D,CAAC;AAC1G,OAAO,EAAE,uBAAuB,EAAE,MAAM,2EAA2E,CAAC;AACpH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,gCAAgC,EAAE,MAAM,oEAAoE,CAAC;AACtH,OAAO,EAAE,6BAA6B,EAAE,MAAM,wFAAwF,CAAC;AACvI,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAC;AACtG,OAAO,EAAE,kCAAkC,EAAE,MAAM,kFAAkF,CAAC;AACtI,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAC;AAC5G,OAAO,EAAE,2BAA2B,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,EAAE,8BAA8B,EAAE,MAAM,0FAA0F,CAAC;AAC1I,OAAO,EAAE,kCAAkC,EAAE,MAAM,iFAAiF,CAAC;AACrI,OAAO,EAAE,gCAAgC,EAAE,MAAM,4EAA4E,CAAC;AAC9H,OAAO,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"interaction.module.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/interaction/interaction.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexModule, GridModule } from '@angular/flex-layout';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { RouterModule } from '@angular/router';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { Activity } from './activity';\nimport { ActivityActionsComponent } from './components/activity-actions/activity-actions.component';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { ActivityOutletComponent } from './components/activity-container/activity-outlet/activity-outlet.component';\nimport { ActivityBodyComponent } from './components/activity-body/activity-body.component';\nimport { ActivityTitleComponent } from './components/activity-title/activity-title.component';\nimport { AbstractActivityTriggerComponent } from './components/activity-triggers/abstract-activity-trigger.component';\nimport { ModalActivityTriggerComponent } from './components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component';\nimport { AddCardActivityComponent } from './components/add-card-activity/add-card-activity.component';\nimport { AddItemInteractionContextComponent } from './components/add-item-interaction-context/add-item-interaction-context.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmThenDialogComponent } from './components/confirm-then-dialog/confirm-then-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { InlineActivityTriggerComponent } from './components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component';\nimport { InPlaceInteractionContextComponent } from './components/inplace-interaction-context/in-place-interaction-context.component';\nimport { PopupInteractionContextComponent } from './components/popup-interaction-context/popup-interaction-context.component';\nimport { InteractionContextTriggerFor } from './directives/interaction-context-trigger-for.directive';\nimport { InteractionService } from './services/interaction.service';\nimport { StringInputActivity } from './components/input-activities/string-input-activity';\nimport { SelectInputActivity } from './components/input-activities/select-input-activity';\nimport { InputActivity } from './components/input-activities/input-activity';\nimport { ComponentsModule } from '../components/exports';\nimport { PopupActivityTriggerComponent } from './components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component';\nimport { InlineStringEditorComponent } from './components/editors/inline-string-editor/inline-string-editor.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule,\n RouterModule,\n MatIconModule,\n DirectivesModule,\n FlexModule,\n GridModule,\n ComponentsModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n ConfirmThenDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent,\n InPlaceInteractionContextComponent,\n AddItemInteractionContextComponent,\n ActivityActionsComponent,\n PopupInteractionContextComponent,\n StringInputActivity,\n SelectInputActivity,\n InputActivity,\n InteractionContextTriggerFor,\n Activity,\n ActivityTitleComponent,\n ActivityBodyComponent,\n ActivityActionsComponent,\n AbstractActivityTriggerComponent,\n PopupActivityTriggerComponent,\n InlineActivityTriggerComponent,\n ModalActivityTriggerComponent,\n AddCardActivityComponent,\n InlineStringEditorComponent,\n ],\n exports: [\n ActivityContainerComponent,\n ActivityOutletComponent,\n ActivityTitleComponent,\n InPlaceInteractionContextComponent,\n AddItemInteractionContextComponent,\n ActivityActionsComponent,\n PopupInteractionContextComponent,\n InteractionContextTriggerFor,\n StringInputActivity,\n SelectInputActivity,\n ActivityBodyComponent,\n PopupActivityTriggerComponent,\n InlineActivityTriggerComponent,\n ModalActivityTriggerComponent,\n AddCardActivityComponent,\n InlineStringEditorComponent,\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n ConfirmThenDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n InteractionService\n // {\n // provide: MAT_TABS_CONFIG, useValue: { animationDuration: \"2s\" }\n // }\n ]\n})\nexport class InteractionModule {\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"InteractionModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"InteractionModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":35,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":37,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":38,"character":4},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":39,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":40,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":41,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":42,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":43,"character":4},{"__symbolic":"reference","module":"../directives/directives.module","name":"DirectivesModule","line":44,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexModule","line":45,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"GridModule","line":46,"character":4},{"__symbolic":"reference","module":"../components/exports","name":"ComponentsModule","line":47,"character":4}],"declarations":[{"__symbolic":"reference","module":"./components/activity-container/activity-container.component","name":"ActivityContainerComponent","line":50,"character":4},{"__symbolic":"reference","module":"./components/confirmation-dialog/confirmation-dialog.component","name":"ConfirmationDialogComponent","line":51,"character":4},{"__symbolic":"reference","module":"./components/confirm-then-dialog/confirm-then-dialog.component","name":"ConfirmThenDialogComponent","line":52,"character":4},{"__symbolic":"reference","module":"./components/alert-dialog/alert-dialog.component","name":"AlertDialogComponent","line":53,"character":4},{"__symbolic":"reference","module":"./components/activity-container/activity-outlet/activity-outlet.component","name":"ActivityOutletComponent","line":54,"character":4},{"__symbolic":"reference","module":"./components/inplace-interaction-context/in-place-interaction-context.component","name":"InPlaceInteractionContextComponent","line":55,"character":4},{"__symbolic":"reference","module":"./components/add-item-interaction-context/add-item-interaction-context.component","name":"AddItemInteractionContextComponent","line":56,"character":4},{"__symbolic":"reference","module":"./components/activity-actions/activity-actions.component","name":"ActivityActionsComponent","line":57,"character":4},{"__symbolic":"reference","module":"./components/popup-interaction-context/popup-interaction-context.component","name":"PopupInteractionContextComponent","line":58,"character":4},{"__symbolic":"reference","module":"./components/input-activities/string-input-activity","name":"StringInputActivity","line":59,"character":4},{"__symbolic":"reference","module":"./components/input-activities/select-input-activity","name":"SelectInputActivity","line":60,"character":4},{"__symbolic":"reference","module":"./components/input-activities/input-activity","name":"InputActivity","line":61,"character":4},{"__symbolic":"reference","module":"./directives/interaction-context-trigger-for.directive","name":"InteractionContextTriggerFor","line":62,"character":4},{"__symbolic":"reference","module":"./activity","name":"Activity","line":63,"character":4},{"__symbolic":"reference","module":"./components/activity-title/activity-title.component","name":"ActivityTitleComponent","line":64,"character":4},{"__symbolic":"reference","module":"./components/activity-body/activity-body.component","name":"ActivityBodyComponent","line":65,"character":4},{"__symbolic":"reference","module":"./components/activity-actions/activity-actions.component","name":"ActivityActionsComponent","line":66,"character":4},{"__symbolic":"reference","module":"./components/activity-triggers/abstract-activity-trigger.component","name":"AbstractActivityTriggerComponent","line":67,"character":4},{"__symbolic":"reference","module":"./components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component","name":"PopupActivityTriggerComponent","line":68,"character":4},{"__symbolic":"reference","module":"./components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component","name":"InlineActivityTriggerComponent","line":69,"character":4},{"__symbolic":"reference","module":"./components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component","name":"ModalActivityTriggerComponent","line":70,"character":4},{"__symbolic":"reference","module":"./components/add-card-activity/add-card-activity.component","name":"AddCardActivityComponent","line":71,"character":4},{"__symbolic":"reference","module":"./components/editors/inline-string-editor/inline-string-editor.component","name":"InlineStringEditorComponent","line":72,"character":4}],"exports":[{"__symbolic":"reference","module":"./components/activity-container/activity-container.component","name":"ActivityContainerComponent","line":75,"character":4},{"__symbolic":"reference","module":"./components/activity-container/activity-outlet/activity-outlet.component","name":"ActivityOutletComponent","line":76,"character":4},{"__symbolic":"reference","module":"./components/activity-title/activity-title.component","name":"ActivityTitleComponent","line":77,"character":4},{"__symbolic":"reference","module":"./components/inplace-interaction-context/in-place-interaction-context.component","name":"InPlaceInteractionContextComponent","line":78,"character":4},{"__symbolic":"reference","module":"./components/add-item-interaction-context/add-item-interaction-context.component","name":"AddItemInteractionContextComponent","line":79,"character":4},{"__symbolic":"reference","module":"./components/activity-actions/activity-actions.component","name":"ActivityActionsComponent","line":80,"character":4},{"__symbolic":"reference","module":"./components/popup-interaction-context/popup-interaction-context.component","name":"PopupInteractionContextComponent","line":81,"character":4},{"__symbolic":"reference","module":"./directives/interaction-context-trigger-for.directive","name":"InteractionContextTriggerFor","line":82,"character":4},{"__symbolic":"reference","module":"./components/input-activities/string-input-activity","name":"StringInputActivity","line":83,"character":4},{"__symbolic":"reference","module":"./components/input-activities/select-input-activity","name":"SelectInputActivity","line":84,"character":4},{"__symbolic":"reference","module":"./components/activity-body/activity-body.component","name":"ActivityBodyComponent","line":85,"character":4},{"__symbolic":"reference","module":"./components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component","name":"PopupActivityTriggerComponent","line":86,"character":4},{"__symbolic":"reference","module":"./components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component","name":"InlineActivityTriggerComponent","line":87,"character":4},{"__symbolic":"reference","module":"./components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component","name":"ModalActivityTriggerComponent","line":88,"character":4},{"__symbolic":"reference","module":"./components/add-card-activity/add-card-activity.component","name":"AddCardActivityComponent","line":89,"character":4},{"__symbolic":"reference","module":"./components/editors/inline-string-editor/inline-string-editor.component","name":"InlineStringEditorComponent","line":90,"character":4}],"entryComponents":[{"__symbolic":"reference","module":"./components/activity-container/activity-container.component","name":"ActivityContainerComponent","line":93,"character":4},{"__symbolic":"reference","module":"./components/confirmation-dialog/confirmation-dialog.component","name":"ConfirmationDialogComponent","line":94,"character":4},{"__symbolic":"reference","module":"./components/confirm-then-dialog/confirm-then-dialog.component","name":"ConfirmThenDialogComponent","line":95,"character":4},{"__symbolic":"reference","module":"./components/alert-dialog/alert-dialog.component","name":"AlertDialogComponent","line":96,"character":4}],"providers":[{"__symbolic":"reference","module":"./services/interaction.service","name":"InteractionService","line":99,"character":4}]}]}]}}}]
|