ballerina-core 1.0.224 → 1.0.225

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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "ballerina-core",
3
3
  "author": "Dr. Giuseppe Maggiore",
4
4
  "private": false,
5
- "version": "1.0.224",
5
+ "version": "1.0.225",
6
6
  "main": "main.ts",
7
7
  "scripts": {
8
8
  "prettier": "prettier --write ."
@@ -95,7 +95,9 @@ export type ListAbstractRendererView<
95
95
  ListAbstractRendererState,
96
96
  ListAbstractRendererForeignMutationsExpected<Flags>
97
97
  >;
98
- embeddedPlaceholderElementTemplate: () => (
98
+ embeddedPlaceholderElementTemplate: (
99
+ elementIndex: number,
100
+ ) => (
99
101
  flags: Flags | undefined,
100
102
  ) => Template<
101
103
  ListAbstractRendererReadonlyContext<
@@ -104,7 +106,7 @@ export type ListAbstractRendererView<
104
106
  > &
105
107
  ListAbstractRendererState,
106
108
  ListAbstractRendererState,
107
- CommonAbstractRendererForeignMutationsExpected<Flags>
109
+ ListAbstractRendererForeignMutationsExpected<Flags>
108
110
  >;
109
111
  }
110
112
  >;
@@ -143,37 +143,105 @@ export const ListAbstractRenderer = <
143
143
  },
144
144
  }));
145
145
 
146
- const embeddedPlaceholderElementTemplate = () => (flags: Flags | undefined) =>
147
- elementTemplate
148
- .mapContext(
149
- (
150
- _: ListAbstractRendererReadonlyContext<
151
- CustomPresentationContext,
152
- ExtraContext
153
- > &
154
- ListAbstractRendererState,
155
- ) => ({
156
- disabled: _.disabled,
157
- locked: _.locked,
158
- value: PredicateValue.Operations.IsUnit(_.value)
159
- ? _.value
160
- : GetDefaultElementValue(),
161
- ...GetDefaultElementState(),
162
- bindings: _.bindings,
163
- extraContext: _.extraContext,
164
- type: _.type.args[0],
165
- customPresentationContext: _.customPresentationContext,
166
- remoteEntityVersionIdentifier: _.remoteEntityVersionIdentifier,
167
- domNodeAncestorPath: _.domNodeAncestorPath + `[list][placeholder]`,
168
- typeAncestors: [_.type as DispatchParsedType<T>].concat(
169
- _.typeAncestors,
170
- ),
171
- lookupTypeAncestorNames: _.lookupTypeAncestorNames,
172
- }),
173
- )
174
- .mapState((_) =>
175
- ListAbstractRendererState.Updaters.Core.elementFormStates(id),
176
- );
146
+ const embeddedPlaceholderElementTemplate =
147
+ (elementIndex: number) => (flags: Flags | undefined) =>
148
+ elementTemplate
149
+ .mapContext(
150
+ (
151
+ _: ListAbstractRendererReadonlyContext<
152
+ CustomPresentationContext,
153
+ ExtraContext
154
+ > &
155
+ ListAbstractRendererState,
156
+ ) => ({
157
+ disabled: _.disabled,
158
+ locked: _.locked,
159
+ value: PredicateValue.Operations.IsUnit(_.value)
160
+ ? _.value
161
+ : _.value.values.get(elementIndex) || GetDefaultElementValue(),
162
+ ...(_.elementFormStates?.get(elementIndex) ||
163
+ GetDefaultElementState()),
164
+ bindings: _.bindings,
165
+ extraContext: _.extraContext,
166
+ type: _.type.args[0],
167
+ customPresentationContext: _.customPresentationContext,
168
+ remoteEntityVersionIdentifier: _.remoteEntityVersionIdentifier,
169
+ domNodeAncestorPath:
170
+ _.domNodeAncestorPath + `[list][${elementIndex}]`,
171
+ typeAncestors: [_.type as DispatchParsedType<T>].concat(
172
+ _.typeAncestors,
173
+ ),
174
+ lookupTypeAncestorNames: _.lookupTypeAncestorNames,
175
+ }),
176
+ )
177
+ .mapState((_) =>
178
+ ListAbstractRendererState.Updaters.Core.elementFormStates(id),
179
+ )
180
+ .mapForeignMutationsFromProps<
181
+ ListAbstractRendererForeignMutationsExpected<Flags>
182
+ >((props) => ({
183
+ onChange: (elementUpdater, nestedDelta) => {
184
+ const value =
185
+ props.context.value.kind == "tuple"
186
+ ? props.context.value.values.get(elementIndex) ||
187
+ GetDefaultElementValue()
188
+ : GetDefaultElementValue();
189
+ const delta: DispatchDelta<Flags> = {
190
+ kind: "ArrayAdd",
191
+ value:
192
+ elementUpdater.kind == "r"
193
+ ? elementUpdater.value(value)
194
+ : GetDefaultElementValue(),
195
+ state: {
196
+ commonFormState: props.context.commonFormState,
197
+ elementFormStates: props.context.elementFormStates,
198
+ },
199
+ type: props.context.type.args[0],
200
+ flags,
201
+ sourceAncestorLookupTypeNames:
202
+ nestedDelta.sourceAncestorLookupTypeNames,
203
+ };
204
+ props.foreignMutations.onChange(
205
+ elementUpdater.kind == "l"
206
+ ? Option.Default.none()
207
+ : Option.Default.some(
208
+ Updater((list) =>
209
+ list.values.has(elementIndex)
210
+ ? PredicateValue.Default.tuple(
211
+ list.values.update(
212
+ elementIndex,
213
+ PredicateValue.Default.unit(),
214
+ elementUpdater.value,
215
+ ),
216
+ )
217
+ : list,
218
+ ),
219
+ ),
220
+ delta,
221
+ );
222
+ props.setState(
223
+ ListAbstractRendererState.Updaters.Core.commonFormState(
224
+ DispatchCommonFormState.Updaters.modifiedByUser(
225
+ replaceWith(true),
226
+ ),
227
+ ).then(
228
+ ListAbstractRendererState.Updaters.Core.elementFormStates(
229
+ MapRepo.Updaters.upsert(
230
+ elementIndex,
231
+ () => GetDefaultElementState(),
232
+ (_) => ({
233
+ ..._,
234
+ commonFormState:
235
+ DispatchCommonFormState.Updaters.modifiedByUser(
236
+ replaceWith(true),
237
+ )(_.commonFormState),
238
+ }),
239
+ ),
240
+ ),
241
+ ),
242
+ );
243
+ },
244
+ }));
177
245
 
178
246
  return Template.Default<
179
247
  ListAbstractRendererReadonlyContext<