@genesislcap/expression-builder 14.251.0 → 14.251.1

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.
@@ -136,255 +136,6 @@
136
136
  }
137
137
  ]
138
138
  },
139
- {
140
- "kind": "javascript-module",
141
- "path": "src/utils/data-model.ts",
142
- "declarations": [
143
- {
144
- "kind": "function",
145
- "name": "groupToModelGroup",
146
- "return": {
147
- "type": {
148
- "text": "ModelGroup"
149
- }
150
- },
151
- "parameters": [
152
- {
153
- "name": "group",
154
- "type": {
155
- "text": "Group"
156
- }
157
- },
158
- {
159
- "name": "provider",
160
- "type": {
161
- "text": "MetadataProvider"
162
- }
163
- }
164
- ],
165
- "description": "Converts a Group to a ModelGroup (adds required metadata)"
166
- },
167
- {
168
- "kind": "function",
169
- "name": "modelGroupToGroup",
170
- "return": {
171
- "type": {
172
- "text": ""
173
- }
174
- },
175
- "parameters": [
176
- {
177
- "name": "modelGroup",
178
- "type": {
179
- "text": "ModelGroup"
180
- },
181
- "description": "The internal ModelGroup to convert."
182
- }
183
- ],
184
- "description": "Converts a ModelGroup (internal data structure) to a public Group structure.\nThis function recursively processes the rules within the group."
185
- },
186
- {
187
- "kind": "function",
188
- "name": "modelRuleToRule",
189
- "return": {
190
- "type": {
191
- "text": ""
192
- }
193
- },
194
- "parameters": [
195
- {
196
- "name": "modelRule",
197
- "type": {
198
- "text": "ModelRule"
199
- },
200
- "description": "The internal ModelRule to convert."
201
- }
202
- ],
203
- "description": "Converts a ModelRule (internal data structure) to a public Rule structure."
204
- }
205
- ],
206
- "exports": [
207
- {
208
- "kind": "js",
209
- "name": "groupToModelGroup",
210
- "declaration": {
211
- "name": "groupToModelGroup",
212
- "module": "src/utils/data-model.ts"
213
- }
214
- },
215
- {
216
- "kind": "js",
217
- "name": "modelGroupToGroup",
218
- "declaration": {
219
- "name": "modelGroupToGroup",
220
- "module": "src/utils/data-model.ts"
221
- }
222
- },
223
- {
224
- "kind": "js",
225
- "name": "modelRuleToRule",
226
- "declaration": {
227
- "name": "modelRuleToRule",
228
- "module": "src/utils/data-model.ts"
229
- }
230
- }
231
- ]
232
- },
233
- {
234
- "kind": "javascript-module",
235
- "path": "src/utils/formatting.ts",
236
- "declarations": [
237
- {
238
- "kind": "function",
239
- "name": "formatDateString",
240
- "parameters": [
241
- {
242
- "name": "date",
243
- "type": {
244
- "text": "Date"
245
- }
246
- }
247
- ],
248
- "description": "Gets the string representation from a `Date` which is the format a `date` input uses.\n`yyyy-mm-dd`"
249
- },
250
- {
251
- "kind": "function",
252
- "name": "formatDateTimeString",
253
- "parameters": [
254
- {
255
- "name": "date",
256
- "type": {
257
- "text": "Date"
258
- }
259
- }
260
- ],
261
- "description": "Gets the string representation from a `Date` which is the format a `datetime-local` input uses.\n`yyyy-mm-ddThh:mm:ss`"
262
- }
263
- ],
264
- "exports": [
265
- {
266
- "kind": "js",
267
- "name": "formatDateString",
268
- "declaration": {
269
- "name": "formatDateString",
270
- "module": "src/utils/formatting.ts"
271
- }
272
- },
273
- {
274
- "kind": "js",
275
- "name": "formatDateTimeString",
276
- "declaration": {
277
- "name": "formatDateTimeString",
278
- "module": "src/utils/formatting.ts"
279
- }
280
- }
281
- ]
282
- },
283
- {
284
- "kind": "javascript-module",
285
- "path": "src/utils/index.ts",
286
- "declarations": [],
287
- "exports": [
288
- {
289
- "kind": "js",
290
- "name": "*",
291
- "declaration": {
292
- "name": "*",
293
- "package": "./data-model"
294
- }
295
- },
296
- {
297
- "kind": "js",
298
- "name": "*",
299
- "declaration": {
300
- "name": "*",
301
- "package": "./formatting"
302
- }
303
- },
304
- {
305
- "kind": "js",
306
- "name": "*",
307
- "declaration": {
308
- "name": "*",
309
- "package": "./misc"
310
- }
311
- }
312
- ]
313
- },
314
- {
315
- "kind": "javascript-module",
316
- "path": "src/utils/misc.ts",
317
- "declarations": [
318
- {
319
- "kind": "function",
320
- "name": "processOptGroups",
321
- "return": {
322
- "type": {
323
- "text": "(T | { optgroup: string | null; xs: T[] })[]"
324
- }
325
- },
326
- "parameters": [
327
- {
328
- "name": "xs",
329
- "type": {
330
- "text": "T[]"
331
- }
332
- }
333
- ]
334
- },
335
- {
336
- "kind": "function",
337
- "name": "applyCustomStyles",
338
- "return": {
339
- "type": {
340
- "text": "void"
341
- }
342
- },
343
- "parameters": [
344
- {
345
- "name": "component",
346
- "type": {
347
- "text": "HTMLElement"
348
- },
349
- "description": "The web component instance"
350
- },
351
- {
352
- "name": "styles",
353
- "type": {
354
- "text": "Styles | undefined | null"
355
- },
356
- "description": "The styles configuration object"
357
- },
358
- {
359
- "name": "styleKey",
360
- "type": {
361
- "text": "keyof NonNullable<Styles['customStyles']>"
362
- },
363
- "description": "The key in styles.customStyles to use for custom styles"
364
- }
365
- ],
366
- "description": "Utility function to add custom styles to a web component's shadow root"
367
- }
368
- ],
369
- "exports": [
370
- {
371
- "kind": "js",
372
- "name": "processOptGroups",
373
- "declaration": {
374
- "name": "processOptGroups",
375
- "module": "src/utils/misc.ts"
376
- }
377
- },
378
- {
379
- "kind": "js",
380
- "name": "applyCustomStyles",
381
- "declaration": {
382
- "name": "applyCustomStyles",
383
- "module": "src/utils/misc.ts"
384
- }
385
- }
386
- ]
387
- },
388
139
  {
389
140
  "kind": "javascript-module",
390
141
  "path": "src/main/events.ts",
@@ -908,6 +659,255 @@
908
659
  }
909
660
  ]
910
661
  },
662
+ {
663
+ "kind": "javascript-module",
664
+ "path": "src/utils/data-model.ts",
665
+ "declarations": [
666
+ {
667
+ "kind": "function",
668
+ "name": "groupToModelGroup",
669
+ "return": {
670
+ "type": {
671
+ "text": "ModelGroup"
672
+ }
673
+ },
674
+ "parameters": [
675
+ {
676
+ "name": "group",
677
+ "type": {
678
+ "text": "Group"
679
+ }
680
+ },
681
+ {
682
+ "name": "provider",
683
+ "type": {
684
+ "text": "MetadataProvider"
685
+ }
686
+ }
687
+ ],
688
+ "description": "Converts a Group to a ModelGroup (adds required metadata)"
689
+ },
690
+ {
691
+ "kind": "function",
692
+ "name": "modelGroupToGroup",
693
+ "return": {
694
+ "type": {
695
+ "text": ""
696
+ }
697
+ },
698
+ "parameters": [
699
+ {
700
+ "name": "modelGroup",
701
+ "type": {
702
+ "text": "ModelGroup"
703
+ },
704
+ "description": "The internal ModelGroup to convert."
705
+ }
706
+ ],
707
+ "description": "Converts a ModelGroup (internal data structure) to a public Group structure.\nThis function recursively processes the rules within the group."
708
+ },
709
+ {
710
+ "kind": "function",
711
+ "name": "modelRuleToRule",
712
+ "return": {
713
+ "type": {
714
+ "text": ""
715
+ }
716
+ },
717
+ "parameters": [
718
+ {
719
+ "name": "modelRule",
720
+ "type": {
721
+ "text": "ModelRule"
722
+ },
723
+ "description": "The internal ModelRule to convert."
724
+ }
725
+ ],
726
+ "description": "Converts a ModelRule (internal data structure) to a public Rule structure."
727
+ }
728
+ ],
729
+ "exports": [
730
+ {
731
+ "kind": "js",
732
+ "name": "groupToModelGroup",
733
+ "declaration": {
734
+ "name": "groupToModelGroup",
735
+ "module": "src/utils/data-model.ts"
736
+ }
737
+ },
738
+ {
739
+ "kind": "js",
740
+ "name": "modelGroupToGroup",
741
+ "declaration": {
742
+ "name": "modelGroupToGroup",
743
+ "module": "src/utils/data-model.ts"
744
+ }
745
+ },
746
+ {
747
+ "kind": "js",
748
+ "name": "modelRuleToRule",
749
+ "declaration": {
750
+ "name": "modelRuleToRule",
751
+ "module": "src/utils/data-model.ts"
752
+ }
753
+ }
754
+ ]
755
+ },
756
+ {
757
+ "kind": "javascript-module",
758
+ "path": "src/utils/formatting.ts",
759
+ "declarations": [
760
+ {
761
+ "kind": "function",
762
+ "name": "formatDateString",
763
+ "parameters": [
764
+ {
765
+ "name": "date",
766
+ "type": {
767
+ "text": "Date"
768
+ }
769
+ }
770
+ ],
771
+ "description": "Gets the string representation from a `Date` which is the format a `date` input uses.\n`yyyy-mm-dd`"
772
+ },
773
+ {
774
+ "kind": "function",
775
+ "name": "formatDateTimeString",
776
+ "parameters": [
777
+ {
778
+ "name": "date",
779
+ "type": {
780
+ "text": "Date"
781
+ }
782
+ }
783
+ ],
784
+ "description": "Gets the string representation from a `Date` which is the format a `datetime-local` input uses.\n`yyyy-mm-ddThh:mm:ss`"
785
+ }
786
+ ],
787
+ "exports": [
788
+ {
789
+ "kind": "js",
790
+ "name": "formatDateString",
791
+ "declaration": {
792
+ "name": "formatDateString",
793
+ "module": "src/utils/formatting.ts"
794
+ }
795
+ },
796
+ {
797
+ "kind": "js",
798
+ "name": "formatDateTimeString",
799
+ "declaration": {
800
+ "name": "formatDateTimeString",
801
+ "module": "src/utils/formatting.ts"
802
+ }
803
+ }
804
+ ]
805
+ },
806
+ {
807
+ "kind": "javascript-module",
808
+ "path": "src/utils/index.ts",
809
+ "declarations": [],
810
+ "exports": [
811
+ {
812
+ "kind": "js",
813
+ "name": "*",
814
+ "declaration": {
815
+ "name": "*",
816
+ "package": "./data-model"
817
+ }
818
+ },
819
+ {
820
+ "kind": "js",
821
+ "name": "*",
822
+ "declaration": {
823
+ "name": "*",
824
+ "package": "./formatting"
825
+ }
826
+ },
827
+ {
828
+ "kind": "js",
829
+ "name": "*",
830
+ "declaration": {
831
+ "name": "*",
832
+ "package": "./misc"
833
+ }
834
+ }
835
+ ]
836
+ },
837
+ {
838
+ "kind": "javascript-module",
839
+ "path": "src/utils/misc.ts",
840
+ "declarations": [
841
+ {
842
+ "kind": "function",
843
+ "name": "processOptGroups",
844
+ "return": {
845
+ "type": {
846
+ "text": "(T | { optgroup: string | null; xs: T[] })[]"
847
+ }
848
+ },
849
+ "parameters": [
850
+ {
851
+ "name": "xs",
852
+ "type": {
853
+ "text": "T[]"
854
+ }
855
+ }
856
+ ]
857
+ },
858
+ {
859
+ "kind": "function",
860
+ "name": "applyCustomStyles",
861
+ "return": {
862
+ "type": {
863
+ "text": "void"
864
+ }
865
+ },
866
+ "parameters": [
867
+ {
868
+ "name": "component",
869
+ "type": {
870
+ "text": "HTMLElement"
871
+ },
872
+ "description": "The web component instance"
873
+ },
874
+ {
875
+ "name": "styles",
876
+ "type": {
877
+ "text": "Styles | undefined | null"
878
+ },
879
+ "description": "The styles configuration object"
880
+ },
881
+ {
882
+ "name": "styleKey",
883
+ "type": {
884
+ "text": "keyof NonNullable<Styles['customStyles']>"
885
+ },
886
+ "description": "The key in styles.customStyles to use for custom styles"
887
+ }
888
+ ],
889
+ "description": "Utility function to add custom styles to a web component's shadow root"
890
+ }
891
+ ],
892
+ "exports": [
893
+ {
894
+ "kind": "js",
895
+ "name": "processOptGroups",
896
+ "declaration": {
897
+ "name": "processOptGroups",
898
+ "module": "src/utils/misc.ts"
899
+ }
900
+ },
901
+ {
902
+ "kind": "js",
903
+ "name": "applyCustomStyles",
904
+ "declaration": {
905
+ "name": "applyCustomStyles",
906
+ "module": "src/utils/misc.ts"
907
+ }
908
+ }
909
+ ]
910
+ },
911
911
  {
912
912
  "kind": "javascript-module",
913
913
  "path": "src/types/index.ts",
@@ -8,6 +8,13 @@ export declare class ExpressionBuilder extends GenesisElement implements Metadat
8
8
  model: ModelGroup | null;
9
9
  private ruleCount;
10
10
  private groupCount;
11
+ /**
12
+ * @internal
13
+ * We don't want to dispatch a change event for the model if it's just changed because
14
+ * the user updated it themselves, otherwise if they automatically update the config property
15
+ * on change it'll get into an infinite loop
16
+ */
17
+ private userUpdatingModel;
11
18
  /** @internal */
12
19
  configChanged(_: Config, newConfig: Config): void;
13
20
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"expression-builder.d.ts","sourceRoot":"","sources":["../../../src/main/expression-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAa,MAAM,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAqB,gBAAgB,EAAqB,MAAM,qBAAqB,CAAC;AAkB7F,cAAc;AACd,qBAKa,iBAAkB,SAAQ,cAAe,YAAW,gBAAgB;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAQ;IAE5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;IAEvB,gBAAgB;IAChB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAQ1C,gBAAgB;IAChB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAM5C;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK;IAa1C,gBAAgB;IAChB,SAAS,IAAI,MAAM;IAInB,gBAAgB;IAChB,UAAU;IAKV,gBAAgB;IAChB,SAAS;IAOT,iBAAiB;IA0BjB,oBAAoB,IAAI,IAAI;IAU5B,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,qBAAqB,CAA0C;IACvE,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,qBAAqB;CAI9B"}
1
+ {"version":3,"file":"expression-builder.d.ts","sourceRoot":"","sources":["../../../src/main/expression-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAa,MAAM,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAqB,gBAAgB,EAAqB,MAAM,qBAAqB,CAAC;AAkB7F,cAAc;AACd,qBAKa,iBAAkB,SAAQ,cAAe,YAAW,gBAAgB;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAQ;IAE5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;IAEvB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAAS;IAElC,gBAAgB;IAChB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAU1C,gBAAgB;IAChB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAM5C;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK;IAa1C,gBAAgB;IAChB,SAAS,IAAI,MAAM;IAInB,gBAAgB;IAChB,UAAU;IAKV,gBAAgB;IAChB,SAAS;IAOT,iBAAiB;IA0BjB,oBAAoB,IAAI,IAAI;IAU5B,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,qBAAqB,CAA0C;IACvE,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,qBAAqB;CAI9B"}
@@ -16,6 +16,13 @@ let ExpressionBuilder = class ExpressionBuilder extends GenesisElement {
16
16
  this.model = null;
17
17
  this.ruleCount = 0;
18
18
  this.groupCount = 0;
19
+ /**
20
+ * @internal
21
+ * We don't want to dispatch a change event for the model if it's just changed because
22
+ * the user updated it themselves, otherwise if they automatically update the config property
23
+ * on change it'll get into an infinite loop
24
+ */
25
+ this.userUpdatingModel = false;
19
26
  this.handleAddGroup = this._handleAddGroup.bind(this);
20
27
  this.handleAddRule = this._handleAddRule.bind(this);
21
28
  this.handleDeleteGroup = this._handleDeleteGroup.bind(this);
@@ -28,12 +35,14 @@ let ExpressionBuilder = class ExpressionBuilder extends GenesisElement {
28
35
  if (newConfig.model) {
29
36
  this.ruleCount = 0;
30
37
  this.groupCount = 0;
38
+ this.userUpdatingModel = true;
31
39
  this.model = groupToModelGroup(newConfig.model, this);
40
+ this.userUpdatingModel = false;
32
41
  }
33
42
  }
34
43
  /** @internal */
35
44
  modelChanged(_, newModel) {
36
- if (!newModel)
45
+ if (!newModel || this.userUpdatingModel)
37
46
  return;
38
47
  const group = modelGroupToGroup(newModel);
39
48
  this.dispatchChangeEvent(group);
@@ -113,6 +113,13 @@ export declare class ExpressionBuilder extends GenesisElement implements Metadat
113
113
  model: ModelGroup | null;
114
114
  private ruleCount;
115
115
  private groupCount;
116
+ /**
117
+ * @internal
118
+ * We don't want to dispatch a change event for the model if it's just changed because
119
+ * the user updated it themselves, otherwise if they automatically update the config property
120
+ * on change it'll get into an infinite loop
121
+ */
122
+ private userUpdatingModel;
116
123
  /** @internal */
117
124
  configChanged(_: Config_2, newConfig: Config_2): void;
118
125
  /** @internal */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/expression-builder",
3
3
  "description": "Genesis Foundation Expression Builder",
4
- "version": "14.251.0",
4
+ "version": "14.251.1",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/expression-builder.d.ts",
@@ -62,5 +62,5 @@
62
62
  "access": "public"
63
63
  },
64
64
  "customElements": "dist/custom-elements.json",
65
- "gitHead": "2ab61e47fbc752e88ecb2d83d794c590a8093829"
65
+ "gitHead": "376111caafcd568f7bcef710c57824c846247c55"
66
66
  }