@genesislcap/foundation-utils 14.498.0 → 14.499.0

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.
@@ -452,6 +452,44 @@
452
452
  }
453
453
  ]
454
454
  },
455
+ {
456
+ "kind": "javascript-module",
457
+ "path": "src/encoding/index.ts",
458
+ "declarations": [],
459
+ "exports": [
460
+ {
461
+ "kind": "js",
462
+ "name": "*",
463
+ "declaration": {
464
+ "name": "*",
465
+ "package": "./base64"
466
+ }
467
+ }
468
+ ]
469
+ },
470
+ {
471
+ "kind": "javascript-module",
472
+ "path": "src/directives/index.ts",
473
+ "declarations": [],
474
+ "exports": [
475
+ {
476
+ "kind": "js",
477
+ "name": "*",
478
+ "declaration": {
479
+ "name": "*",
480
+ "package": "./sync"
481
+ }
482
+ },
483
+ {
484
+ "kind": "js",
485
+ "name": "*",
486
+ "declaration": {
487
+ "name": "*",
488
+ "package": "./when-else"
489
+ }
490
+ }
491
+ ]
492
+ },
455
493
  {
456
494
  "kind": "javascript-module",
457
495
  "path": "src/data/inMemoryDatabase.ts",
@@ -650,97 +688,6 @@
650
688
  }
651
689
  ]
652
690
  },
653
- {
654
- "kind": "javascript-module",
655
- "path": "src/directives/index.ts",
656
- "declarations": [],
657
- "exports": [
658
- {
659
- "kind": "js",
660
- "name": "*",
661
- "declaration": {
662
- "name": "*",
663
- "package": "./sync"
664
- }
665
- },
666
- {
667
- "kind": "js",
668
- "name": "*",
669
- "declaration": {
670
- "name": "*",
671
- "package": "./when-else"
672
- }
673
- }
674
- ]
675
- },
676
- {
677
- "kind": "javascript-module",
678
- "path": "src/decorators/index.ts",
679
- "declarations": [],
680
- "exports": [
681
- {
682
- "kind": "js",
683
- "name": "*",
684
- "declaration": {
685
- "name": "*",
686
- "package": "./renderOnChange"
687
- }
688
- }
689
- ]
690
- },
691
- {
692
- "kind": "javascript-module",
693
- "path": "src/decorators/renderOnChange.ts",
694
- "declarations": [
695
- {
696
- "kind": "function",
697
- "name": "renderOnChange",
698
- "parameters": [
699
- {
700
- "name": "target",
701
- "type": {
702
- "text": "FASTElement & { render(): void }"
703
- },
704
- "description": "The target to define the property change handler on."
705
- },
706
- {
707
- "name": "name",
708
- "type": {
709
- "text": "string"
710
- },
711
- "description": "The property name."
712
- }
713
- ],
714
- "description": "Defines a property changed handler that calls a render() method on the target as an internal observation enhancement.",
715
- "privacy": "public"
716
- }
717
- ],
718
- "exports": [
719
- {
720
- "kind": "js",
721
- "name": "renderOnChange",
722
- "declaration": {
723
- "name": "renderOnChange",
724
- "module": "src/decorators/renderOnChange.ts"
725
- }
726
- }
727
- ]
728
- },
729
- {
730
- "kind": "javascript-module",
731
- "path": "src/encoding/index.ts",
732
- "declarations": [],
733
- "exports": [
734
- {
735
- "kind": "js",
736
- "name": "*",
737
- "declaration": {
738
- "name": "*",
739
- "package": "./base64"
740
- }
741
- }
742
- ]
743
- },
744
691
  {
745
692
  "kind": "javascript-module",
746
693
  "path": "src/env/index.ts",
@@ -1216,6 +1163,59 @@
1216
1163
  }
1217
1164
  ]
1218
1165
  },
1166
+ {
1167
+ "kind": "javascript-module",
1168
+ "path": "src/decorators/index.ts",
1169
+ "declarations": [],
1170
+ "exports": [
1171
+ {
1172
+ "kind": "js",
1173
+ "name": "*",
1174
+ "declaration": {
1175
+ "name": "*",
1176
+ "package": "./renderOnChange"
1177
+ }
1178
+ }
1179
+ ]
1180
+ },
1181
+ {
1182
+ "kind": "javascript-module",
1183
+ "path": "src/decorators/renderOnChange.ts",
1184
+ "declarations": [
1185
+ {
1186
+ "kind": "function",
1187
+ "name": "renderOnChange",
1188
+ "parameters": [
1189
+ {
1190
+ "name": "target",
1191
+ "type": {
1192
+ "text": "FASTElement & { render(): void }"
1193
+ },
1194
+ "description": "The target to define the property change handler on."
1195
+ },
1196
+ {
1197
+ "name": "name",
1198
+ "type": {
1199
+ "text": "string"
1200
+ },
1201
+ "description": "The property name."
1202
+ }
1203
+ ],
1204
+ "description": "Defines a property changed handler that calls a render() method on the target as an internal observation enhancement.",
1205
+ "privacy": "public"
1206
+ }
1207
+ ],
1208
+ "exports": [
1209
+ {
1210
+ "kind": "js",
1211
+ "name": "renderOnChange",
1212
+ "declaration": {
1213
+ "name": "renderOnChange",
1214
+ "module": "src/decorators/renderOnChange.ts"
1215
+ }
1216
+ }
1217
+ ]
1218
+ },
1219
1219
  {
1220
1220
  "kind": "javascript-module",
1221
1221
  "path": "src/error/errorMap.ts",
@@ -4878,160 +4878,6 @@
4878
4878
  }
4879
4879
  ]
4880
4880
  },
4881
- {
4882
- "kind": "javascript-module",
4883
- "path": "src/directives/sync/index.ts",
4884
- "declarations": [],
4885
- "exports": [
4886
- {
4887
- "kind": "js",
4888
- "name": "*",
4889
- "declaration": {
4890
- "name": "*",
4891
- "package": "./sync"
4892
- }
4893
- }
4894
- ]
4895
- },
4896
- {
4897
- "kind": "javascript-module",
4898
- "path": "src/directives/sync/sync.ts",
4899
- "declarations": [
4900
- {
4901
- "kind": "variable",
4902
- "name": "defaultEventMap",
4903
- "type": {
4904
- "text": "Map<string, EventName>"
4905
- },
4906
- "default": "new Map([\n ['FAST-TEXT-AREA', 'input'],\n ['FAST-TEXT-FIELD', 'input'],\n ['FOUNDATION-TEXT-AREA', 'input'],\n ['FOUNDATION-TEXT-FIELD', 'input'],\n ['INPUT', 'input'],\n ['ZERO-TEXT-FIELD', 'input'],\n])",
4907
- "description": "A map that associates specific HTML element tags with their corresponding default event names.",
4908
- "privacy": "public"
4909
- },
4910
- {
4911
- "kind": "function",
4912
- "name": "sync",
4913
- "return": {
4914
- "type": {
4915
- "text": "CaptureType<TSource>"
4916
- }
4917
- },
4918
- "parameters": [
4919
- {
4920
- "name": "binding",
4921
- "type": {
4922
- "text": "Binding<TSource, TReturn>"
4923
- }
4924
- },
4925
- {
4926
- "name": "conversionType",
4927
- "default": "'string'",
4928
- "type": {
4929
- "text": "ConversionType"
4930
- }
4931
- },
4932
- {
4933
- "name": "eventName",
4934
- "default": "'default'",
4935
- "type": {
4936
- "text": "EventName"
4937
- }
4938
- },
4939
- {
4940
- "name": "keyAttr",
4941
- "optional": true,
4942
- "type": {
4943
- "text": "string"
4944
- }
4945
- }
4946
- ],
4947
- "description": "Creates a synchronization directive that binds a data source to an HTML element,",
4948
- "privacy": "public"
4949
- }
4950
- ],
4951
- "exports": [
4952
- {
4953
- "kind": "js",
4954
- "name": "defaultEventMap",
4955
- "declaration": {
4956
- "name": "defaultEventMap",
4957
- "module": "src/directives/sync/sync.ts"
4958
- }
4959
- },
4960
- {
4961
- "kind": "js",
4962
- "name": "sync",
4963
- "declaration": {
4964
- "name": "sync",
4965
- "module": "src/directives/sync/sync.ts"
4966
- }
4967
- }
4968
- ]
4969
- },
4970
- {
4971
- "kind": "javascript-module",
4972
- "path": "src/directives/when-else/index.ts",
4973
- "declarations": [],
4974
- "exports": [
4975
- {
4976
- "kind": "js",
4977
- "name": "*",
4978
- "declaration": {
4979
- "name": "*",
4980
- "package": "./when-else"
4981
- }
4982
- }
4983
- ]
4984
- },
4985
- {
4986
- "kind": "javascript-module",
4987
- "path": "src/directives/when-else/when-else.ts",
4988
- "declarations": [
4989
- {
4990
- "kind": "function",
4991
- "name": "whenElse",
4992
- "return": {
4993
- "type": {
4994
- "text": "CaptureType<TSource>"
4995
- }
4996
- },
4997
- "parameters": [
4998
- {
4999
- "name": "binding",
5000
- "type": {
5001
- "text": "Binding<TSource, TReturn>"
5002
- },
5003
- "description": "The condition to test for rendering."
5004
- },
5005
- {
5006
- "name": "trueTemplateOrTemplateBinding",
5007
- "type": {
5008
- "text": "WhenTemplate<TSource>"
5009
- },
5010
- "description": "The template or a binding that gets the template to render when the condition is true."
5011
- },
5012
- {
5013
- "name": "falseTemplateOrTemplateBinding",
5014
- "type": {
5015
- "text": "WhenTemplate<TSource>"
5016
- },
5017
- "description": "The template or a binding that gets the template to render when the condition is false."
5018
- }
5019
- ],
5020
- "description": "Directive that allows supplying an \"else\" template to the traditional https://www.fast.design/docs/api/fast-element.when/#when-function directive",
5021
- "privacy": "public"
5022
- }
5023
- ],
5024
- "exports": [
5025
- {
5026
- "kind": "js",
5027
- "name": "whenElse",
5028
- "declaration": {
5029
- "name": "whenElse",
5030
- "module": "src/directives/when-else/when-else.ts"
5031
- }
5032
- }
5033
- ]
5034
- },
5035
4881
  {
5036
4882
  "kind": "javascript-module",
5037
4883
  "path": "src/encoding/base64/decode.ts",
@@ -5186,6 +5032,160 @@
5186
5032
  }
5187
5033
  ]
5188
5034
  },
5035
+ {
5036
+ "kind": "javascript-module",
5037
+ "path": "src/directives/sync/index.ts",
5038
+ "declarations": [],
5039
+ "exports": [
5040
+ {
5041
+ "kind": "js",
5042
+ "name": "*",
5043
+ "declaration": {
5044
+ "name": "*",
5045
+ "package": "./sync"
5046
+ }
5047
+ }
5048
+ ]
5049
+ },
5050
+ {
5051
+ "kind": "javascript-module",
5052
+ "path": "src/directives/sync/sync.ts",
5053
+ "declarations": [
5054
+ {
5055
+ "kind": "variable",
5056
+ "name": "defaultEventMap",
5057
+ "type": {
5058
+ "text": "Map<string, EventName>"
5059
+ },
5060
+ "default": "new Map([\n ['FAST-TEXT-AREA', 'input'],\n ['FAST-TEXT-FIELD', 'input'],\n ['FOUNDATION-TEXT-AREA', 'input'],\n ['FOUNDATION-TEXT-FIELD', 'input'],\n ['INPUT', 'input'],\n ['ZERO-TEXT-FIELD', 'input'],\n])",
5061
+ "description": "A map that associates specific HTML element tags with their corresponding default event names.",
5062
+ "privacy": "public"
5063
+ },
5064
+ {
5065
+ "kind": "function",
5066
+ "name": "sync",
5067
+ "return": {
5068
+ "type": {
5069
+ "text": "CaptureType<TSource>"
5070
+ }
5071
+ },
5072
+ "parameters": [
5073
+ {
5074
+ "name": "binding",
5075
+ "type": {
5076
+ "text": "Binding<TSource, TReturn>"
5077
+ }
5078
+ },
5079
+ {
5080
+ "name": "conversionType",
5081
+ "default": "'string'",
5082
+ "type": {
5083
+ "text": "ConversionType"
5084
+ }
5085
+ },
5086
+ {
5087
+ "name": "eventName",
5088
+ "default": "'default'",
5089
+ "type": {
5090
+ "text": "EventName"
5091
+ }
5092
+ },
5093
+ {
5094
+ "name": "keyAttr",
5095
+ "optional": true,
5096
+ "type": {
5097
+ "text": "string"
5098
+ }
5099
+ }
5100
+ ],
5101
+ "description": "Creates a synchronization directive that binds a data source to an HTML element,",
5102
+ "privacy": "public"
5103
+ }
5104
+ ],
5105
+ "exports": [
5106
+ {
5107
+ "kind": "js",
5108
+ "name": "defaultEventMap",
5109
+ "declaration": {
5110
+ "name": "defaultEventMap",
5111
+ "module": "src/directives/sync/sync.ts"
5112
+ }
5113
+ },
5114
+ {
5115
+ "kind": "js",
5116
+ "name": "sync",
5117
+ "declaration": {
5118
+ "name": "sync",
5119
+ "module": "src/directives/sync/sync.ts"
5120
+ }
5121
+ }
5122
+ ]
5123
+ },
5124
+ {
5125
+ "kind": "javascript-module",
5126
+ "path": "src/directives/when-else/index.ts",
5127
+ "declarations": [],
5128
+ "exports": [
5129
+ {
5130
+ "kind": "js",
5131
+ "name": "*",
5132
+ "declaration": {
5133
+ "name": "*",
5134
+ "package": "./when-else"
5135
+ }
5136
+ }
5137
+ ]
5138
+ },
5139
+ {
5140
+ "kind": "javascript-module",
5141
+ "path": "src/directives/when-else/when-else.ts",
5142
+ "declarations": [
5143
+ {
5144
+ "kind": "function",
5145
+ "name": "whenElse",
5146
+ "return": {
5147
+ "type": {
5148
+ "text": "CaptureType<TSource>"
5149
+ }
5150
+ },
5151
+ "parameters": [
5152
+ {
5153
+ "name": "binding",
5154
+ "type": {
5155
+ "text": "Binding<TSource, TReturn>"
5156
+ },
5157
+ "description": "The condition to test for rendering."
5158
+ },
5159
+ {
5160
+ "name": "trueTemplateOrTemplateBinding",
5161
+ "type": {
5162
+ "text": "WhenTemplate<TSource>"
5163
+ },
5164
+ "description": "The template or a binding that gets the template to render when the condition is true."
5165
+ },
5166
+ {
5167
+ "name": "falseTemplateOrTemplateBinding",
5168
+ "type": {
5169
+ "text": "WhenTemplate<TSource>"
5170
+ },
5171
+ "description": "The template or a binding that gets the template to render when the condition is false."
5172
+ }
5173
+ ],
5174
+ "description": "Directive that allows supplying an \"else\" template to the traditional https://www.fast.design/docs/api/fast-element.when/#when-function directive",
5175
+ "privacy": "public"
5176
+ }
5177
+ ],
5178
+ "exports": [
5179
+ {
5180
+ "kind": "js",
5181
+ "name": "whenElse",
5182
+ "declaration": {
5183
+ "name": "whenElse",
5184
+ "module": "src/directives/when-else/when-else.ts"
5185
+ }
5186
+ }
5187
+ ]
5188
+ },
5189
5189
  {
5190
5190
  "kind": "javascript-module",
5191
5191
  "path": "src/mappers/dto/index.ts",
@@ -70,6 +70,15 @@ export declare const LifecycleMixin: <T extends ConstructableLifecycleHandler>(B
70
70
  * @internal
71
71
  **/
72
72
  #_shouldForceLifecycle: boolean;
73
+ /**
74
+ * Set once a short grace period (`setTimeout`) has elapsed since a blocked ('reflow')
75
+ * disconnect. Some consumers run defensive cleanup after the block via schedulers that can
76
+ * outlast a microtask (e.g. FAST's `DOM.queueUpdate`), so a macrotask-scale grace period is
77
+ * needed - once it has passed, the paired reconnect must not stay blocked, or the consumer
78
+ * never re-initializes.
79
+ * @internal
80
+ **/
81
+ #_blockedDisconnectSurvivedGracePeriod: boolean;
73
82
  /**
74
83
  * @privateRemarks
75
84
  * Rather than using the basic implementation of cloning we run a copy constructor (deepClone)
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/mixins/lifecycle/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;AAErF;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,yBAAyB,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,KAAK,SAAS,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,YAAY,CAAC;AAEjF,KAAK,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;AAK5D;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,6BAA6B,EAAE,MAAM,CAAC;kBA+BtD,GAAG,EAAE;QA7B1B,iBAAiB;qBACJ,SAAS;QAEtB;;;YAGI;2BACe,MAAM;QACzB;;;YAGI;0BACc,OAAO;QACzB;;;;;;;YAOI;0BACc,MAAM,CAAC,OAAO;QAChC;;;;YAII;gCACoB,OAAO;QAM/B;;;;;WAKG;yBACuB,OAAO,GAAG,IAAI;QAUxC;;;;;;WAMG;qBACU,IAAI;QAMjB;;;WAGG;;QAmBH;;;;;WAKG;;wDAwB6C,aAAa,GAAG,OAAO;QAkCvE;;;;;;WAMG;qCAC0B,OAAO,GAAG,SAAS;6BA4B3B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM1B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAAkC,CAAC"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/mixins/lifecycle/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;AAErF;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,yBAAyB,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,KAAK,SAAS,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,YAAY,CAAC;AAEjF,KAAK,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;AAK5D;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,6BAA6B,EAAE,MAAM,CAAC;kBAwCtD,GAAG,EAAE;QAtC1B,iBAAiB;qBACJ,SAAS;QAEtB;;;YAGI;2BACe,MAAM;QACzB;;;YAGI;0BACc,OAAO;QACzB;;;;;;;YAOI;0BACc,MAAM,CAAC,OAAO;QAChC;;;;YAII;gCACoB,OAAO;QAC/B;;;;;;;YAOI;gDACoC,OAAO;QAM/C;;;;;WAKG;yBACuB,OAAO,GAAG,IAAI;QAUxC;;;;;;WAMG;qBACU,IAAI;QAMjB;;;WAGG;;QAmBH;;;;;WAKG;;wDAwB6C,aAAa,GAAG,OAAO;QAyCvE;;;;;;WAMG;qCAC0B,OAAO,GAAG,SAAS;6BA4B3B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM1B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAAkC,CAAC"}
@@ -11,7 +11,7 @@ const CLEANUP_TIMEOUT_MS = 10000;
11
11
  * #_ syntax is used for a javascript private method/variable
12
12
  * we can't use private/protected from typescript in an anonymous class like this
13
13
  */
14
- export const LifecycleMixin = (Base) => { var _instances, __container, __latestTokenCode, __hasFirstLoaded, __cleanupTimeout, __shouldForceLifecycle, __blockLifecycleDueToTokenChange, __tryFindContainingLayout, _a; return _a = class extends Base {
14
+ export const LifecycleMixin = (Base) => { var _instances, __container, __latestTokenCode, __hasFirstLoaded, __cleanupTimeout, __shouldForceLifecycle, __blockedDisconnectSurvivedGracePeriod, __blockLifecycleDueToTokenChange, __tryFindContainingLayout, _a; return _a = class extends Base {
15
15
  constructor(...args) {
16
16
  super(args);
17
17
  _instances.add(this);
@@ -42,6 +42,15 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
42
42
  * @internal
43
43
  **/
44
44
  __shouldForceLifecycle.set(this, false);
45
+ /**
46
+ * Set once a short grace period (`setTimeout`) has elapsed since a blocked ('reflow')
47
+ * disconnect. Some consumers run defensive cleanup after the block via schedulers that can
48
+ * outlast a microtask (e.g. FAST's `DOM.queueUpdate`), so a macrotask-scale grace period is
49
+ * needed - once it has passed, the paired reconnect must not stay blocked, or the consumer
50
+ * never re-initializes.
51
+ * @internal
52
+ **/
53
+ __blockedDisconnectSurvivedGracePeriod.set(this, false);
45
54
  }
46
55
  /**
47
56
  * @privateRemarks
@@ -127,6 +136,7 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
127
136
  __hasFirstLoaded = new WeakMap(),
128
137
  __cleanupTimeout = new WeakMap(),
129
138
  __shouldForceLifecycle = new WeakMap(),
139
+ __blockedDisconnectSurvivedGracePeriod = new WeakMap(),
130
140
  _instances = new WeakSet(),
131
141
  __blockLifecycleDueToTokenChange = function __blockLifecycleDueToTokenChange(lifecycleType) {
132
142
  var _b, _c;
@@ -146,6 +156,14 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
146
156
  // 'reconnect' - otherwise unrelated layout changes while disconnected can block it forever.
147
157
  __classPrivateFieldSet(this, __hasFirstLoaded, false, "f");
148
158
  }
159
+ else {
160
+ // Blocked disconnect: track whether a grace period elapses before the paired reconnect
161
+ // arrives. See `#_blockedDisconnectSurvivedGracePeriod` for why this matters.
162
+ __classPrivateFieldSet(this, __blockedDisconnectSurvivedGracePeriod, false, "f");
163
+ setTimeout(() => {
164
+ __classPrivateFieldSet(this, __blockedDisconnectSurvivedGracePeriod, true, "f");
165
+ }, 0);
166
+ }
149
167
  __classPrivateFieldSet(this, __cleanupTimeout, setTimeout(() => {
150
168
  __classPrivateFieldSet(this, __shouldForceLifecycle, result, "f");
151
169
  if (__classPrivateFieldGet(this, __shouldForceLifecycle, "f")) {
@@ -154,7 +172,7 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
154
172
  }, CLEANUP_TIMEOUT_MS), "f");
155
173
  }
156
174
  else if (lifecycleType === 'reconnect') {
157
- result = tokensDifferent;
175
+ result = tokensDifferent && !__classPrivateFieldGet(this, __blockedDisconnectSurvivedGracePeriod, "f");
158
176
  __classPrivateFieldSet(this, __latestTokenCode, (_c = __classPrivateFieldGet(this, __container, "f").lifecycleUpdateToken) !== null && _c !== void 0 ? _c : '', "f");
159
177
  clearTimeout(__classPrivateFieldGet(this, __cleanupTimeout, "f"));
160
178
  }
@@ -9118,7 +9118,7 @@
9118
9118
  },
9119
9119
  {
9120
9120
  "kind": "Content",
9121
- "text": ";\n #_shouldForceLifecycle: boolean;\n cloneNode(deep?: boolean): "
9121
+ "text": ";\n #_shouldForceLifecycle: boolean;\n #_blockedDisconnectSurvivedGracePeriod: boolean;\n cloneNode(deep?: boolean): "
9122
9122
  },
9123
9123
  {
9124
9124
  "kind": "Reference",
@@ -1049,6 +1049,15 @@ export declare const LifecycleMixin: <T extends ConstructableLifecycleHandler>(B
1049
1049
  * @internal
1050
1050
  **/
1051
1051
  #_shouldForceLifecycle: boolean;
1052
+ /**
1053
+ * Set once a short grace period (`setTimeout`) has elapsed since a blocked ('reflow')
1054
+ * disconnect. Some consumers run defensive cleanup after the block via schedulers that can
1055
+ * outlast a microtask (e.g. FAST's `DOM.queueUpdate`), so a macrotask-scale grace period is
1056
+ * needed - once it has passed, the paired reconnect must not stay blocked, or the consumer
1057
+ * never re-initializes.
1058
+ * @internal
1059
+ **/
1060
+ #_blockedDisconnectSurvivedGracePeriod: boolean;
1052
1061
  /**
1053
1062
  * @privateRemarks
1054
1063
  * Rather than using the basic implementation of cloning we run a copy constructor (deepClone)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-utils",
3
3
  "description": "Genesis Foundation Utils",
4
- "version": "14.498.0",
4
+ "version": "14.499.0",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -29,18 +29,18 @@
29
29
  }
30
30
  },
31
31
  "devDependencies": {
32
- "@genesislcap/foundation-testing": "14.498.0",
33
- "@genesislcap/genx": "14.498.0",
34
- "@genesislcap/rollup-builder": "14.498.0",
35
- "@genesislcap/ts-builder": "14.498.0",
36
- "@genesislcap/uvu-playwright-builder": "14.498.0",
37
- "@genesislcap/vite-builder": "14.498.0",
38
- "@genesislcap/webpack-builder": "14.498.0",
32
+ "@genesislcap/foundation-testing": "14.499.0",
33
+ "@genesislcap/genx": "14.499.0",
34
+ "@genesislcap/rollup-builder": "14.499.0",
35
+ "@genesislcap/ts-builder": "14.499.0",
36
+ "@genesislcap/uvu-playwright-builder": "14.499.0",
37
+ "@genesislcap/vite-builder": "14.499.0",
38
+ "@genesislcap/webpack-builder": "14.499.0",
39
39
  "@types/json-schema": "^7.0.11"
40
40
  },
41
41
  "dependencies": {
42
- "@genesislcap/expression-builder": "14.498.0",
43
- "@genesislcap/foundation-logger": "14.498.0",
42
+ "@genesislcap/expression-builder": "14.499.0",
43
+ "@genesislcap/foundation-logger": "14.499.0",
44
44
  "@microsoft/fast-components": "2.30.6",
45
45
  "@microsoft/fast-element": "1.14.0",
46
46
  "@microsoft/fast-foundation": "2.50.0",
@@ -58,5 +58,5 @@
58
58
  "access": "public"
59
59
  },
60
60
  "customElements": "dist/custom-elements.json",
61
- "gitHead": "88a07e46851fa94efc9399c50975c9eb2c21168c"
61
+ "gitHead": "49903bfdc57c5c5a7dd0d711d9717908df0b7ac7"
62
62
  }