@progressive-development/pd-spa-helper 0.4.0 → 0.5.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.
Files changed (194) hide show
  1. package/dist/PdSpaHelper.d.ts.map +1 -1
  2. package/dist/{src/PdSpaHelper.js → PdSpaHelper.js} +16 -17
  3. package/dist/defaultpage/default-confirm-popup.d.ts.map +1 -1
  4. package/dist/{src/defaultpage → defaultpage}/default-confirm-popup.js +4 -5
  5. package/dist/defaultpage/default-dialog-popup.d.ts.map +1 -1
  6. package/dist/{src/defaultpage → defaultpage}/default-dialog-popup.js +4 -5
  7. package/dist/{src/defaultpage → defaultpage}/default-login.js +2 -3
  8. package/dist/defaultpage/default-popup.d.ts.map +1 -1
  9. package/dist/{src/defaultpage → defaultpage}/default-popup.js +1 -1
  10. package/dist/{src/defaultpage → defaultpage}/default-step-address.js +5 -6
  11. package/dist/{src/defaultpage → defaultpage}/default-step-summary.js +6 -7
  12. package/dist/{src/defaultpage → defaultpage}/default-view-page.js +2 -3
  13. package/dist/{src/defaultpage → defaultpage}/default-wizard-step.js +4 -5
  14. package/dist/defaultpage/default-wizard.d.ts.map +1 -1
  15. package/dist/{src/defaultpage → defaultpage}/default-wizard.js +7 -8
  16. package/dist/generated/locale-wrapper/be-wrapper.d.ts +15 -1
  17. package/dist/generated/locale-wrapper/be-wrapper.d.ts.map +1 -1
  18. package/dist/generated/locale-wrapper/be-wrapper.js +17 -0
  19. package/dist/generated/locale-wrapper/de-wrapper.d.ts.map +1 -1
  20. package/dist/generated/locale-wrapper/de-wrapper.js +17 -0
  21. package/dist/generated/locale-wrapper/en-wrapper.d.ts +15 -1
  22. package/dist/generated/locale-wrapper/en-wrapper.d.ts.map +1 -1
  23. package/dist/generated/locale-wrapper/en-wrapper.js +17 -0
  24. package/dist/index.js +21 -21
  25. package/dist/pd-panel-viewer.js +10 -12
  26. package/dist/pd-panel.js +2 -3
  27. package/dist/{src/popup → popup}/wizard-close-popup.js +3 -5
  28. package/dist/{src/popup → popup}/wizard-reload-popup.js +3 -5
  29. package/dist/{src/router → router}/AppMain.js +4 -5
  30. package/dist/{src/service-provider → service-provider}/firebase/auth.js +1 -4
  31. package/dist/{src/service-provider → service-provider}/firebase/firestorage-client.js +1 -1
  32. package/dist/{src/service-provider → service-provider}/firebase/firestore-client.js +1 -1
  33. package/dist/{src/service-provider → service-provider}/firebase/functions-client.js +1 -1
  34. package/dist/{src/service-provider → service-provider}/firebase/messagingFirebaseClient.js +2 -2
  35. package/dist/{src/service-provider → service-provider}/service-provider-impl.js +1 -2
  36. package/dist/{src/store → store}/mini-rx.store.js +1 -1
  37. package/dist/{src/store → store}/spa-app-effects.js +2 -2
  38. package/dist/{src/store → store}/spa-app-selector.js +1 -1
  39. package/dist/stories/pd-loading-state.stories.d.ts +3 -3
  40. package/dist/stories/pd-toast.stories.d.ts +3 -3
  41. package/dist/tmpown/pd-loading-state.d.ts.map +1 -1
  42. package/dist/{src/tmpown → tmpown}/pd-loading-state.js +6 -8
  43. package/dist/tmpown/pd-login.d.ts.map +1 -1
  44. package/dist/{src/tmpown → tmpown}/pd-login.js +6 -7
  45. package/dist/tmpown/pd-panel-viewer.d.ts.map +1 -1
  46. package/dist/{src/tmpown → tmpown}/pd-toast.js +5 -7
  47. package/package.json +24 -21
  48. package/dist/node_modules/@firebase/app/dist/esm/index.esm2017.js +0 -749
  49. package/dist/node_modules/@firebase/auth/dist/esm2017/index-68602d24.js +0 -6265
  50. package/dist/node_modules/@firebase/component/dist/esm/index.esm2017.js +0 -341
  51. package/dist/node_modules/@firebase/firestore/dist/index.esm2017.js +0 -10250
  52. package/dist/node_modules/@firebase/functions/dist/index.esm2017.js +0 -513
  53. package/dist/node_modules/@firebase/installations/dist/esm/index.esm2017.js +0 -863
  54. package/dist/node_modules/@firebase/logger/dist/esm/index.esm2017.js +0 -122
  55. package/dist/node_modules/@firebase/messaging/dist/esm/index.esm2017.js +0 -1019
  56. package/dist/node_modules/@firebase/storage/dist/index.esm2017.js +0 -2042
  57. package/dist/node_modules/@firebase/util/dist/index.esm2017.js +0 -931
  58. package/dist/node_modules/@firebase/webchannel-wrapper/dist/bloom-blob/esm/bloom_blob_es2018.js +0 -417
  59. package/dist/node_modules/@firebase/webchannel-wrapper/dist/webchannel-blob/esm/webchannel_blob_es2018.js +0 -2155
  60. package/dist/node_modules/@lit/reactive-element/decorators/custom-element.js +0 -14
  61. package/dist/node_modules/@lit/reactive-element/decorators/property.js +0 -20
  62. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js +0 -7
  63. package/dist/node_modules/@progressive-development/pd-dialog/pd-popup-dialog.js +0 -5
  64. package/dist/node_modules/@progressive-development/pd-dialog/pd-popup.js +0 -2
  65. package/dist/node_modules/@progressive-development/pd-dialog/src/PdPopup.js +0 -113
  66. package/dist/node_modules/@progressive-development/pd-dialog/src/PdPopupDialog.js +0 -189
  67. package/dist/node_modules/@progressive-development/pd-forms/pd-button.js +0 -2
  68. package/dist/node_modules/@progressive-development/pd-forms/pd-form-container.js +0 -2
  69. package/dist/node_modules/@progressive-development/pd-forms/pd-form-row.js +0 -2
  70. package/dist/node_modules/@progressive-development/pd-forms/pd-hover-box.js +0 -2
  71. package/dist/node_modules/@progressive-development/pd-forms/pd-input.js +0 -2
  72. package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseInputElement.js +0 -86
  73. package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUi.js +0 -34
  74. package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUiInput.js +0 -227
  75. package/dist/node_modules/@progressive-development/pd-forms/src/PdButton.js +0 -194
  76. package/dist/node_modules/@progressive-development/pd-forms/src/PdFormContainer.js +0 -167
  77. package/dist/node_modules/@progressive-development/pd-forms/src/PdFormRow.js +0 -92
  78. package/dist/node_modules/@progressive-development/pd-forms/src/PdHoverBox.js +0 -108
  79. package/dist/node_modules/@progressive-development/pd-forms/src/PdInput.js +0 -79
  80. package/dist/node_modules/@progressive-development/pd-forms/src/generated/locale/be.js +0 -11
  81. package/dist/node_modules/@progressive-development/pd-forms/src/generated/locale/en.js +0 -11
  82. package/dist/node_modules/@progressive-development/pd-forms/src/shared-input-field-styles.js +0 -152
  83. package/dist/node_modules/@progressive-development/pd-forms/src/shared-input-styles.js +0 -64
  84. package/dist/node_modules/@progressive-development/pd-icon/pd-icon.js +0 -4
  85. package/dist/node_modules/@progressive-development/pd-icon/src/PdIcon.js +0 -596
  86. package/dist/node_modules/@progressive-development/pd-order/dist/locales/be.js +0 -15
  87. package/dist/node_modules/@progressive-development/pd-order/dist/locales/de.js +0 -15
  88. package/dist/node_modules/@progressive-development/pd-order/dist/locales/en.js +0 -15
  89. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-contact/pd-contact.js +0 -2
  90. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-contact/src/PdContact.js +0 -567
  91. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/pd-collapse.js +0 -2
  92. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/pd-edit-content.js +0 -2
  93. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/src/PdCollapse.js +0 -136
  94. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/src/PdEditContent.js +0 -224
  95. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-dialog/pd-popup.js +0 -2
  96. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-dialog/src/PdPopup.js +0 -113
  97. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-checkbox.js +0 -2
  98. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-form-container.js +0 -2
  99. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-form-row.js +0 -2
  100. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-hover-box.js +0 -2
  101. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-input.js +0 -2
  102. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-radio-group.js +0 -2
  103. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseInputElement.js +0 -86
  104. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUi.js +0 -34
  105. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUiInput.js +0 -229
  106. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdCheckbox.js +0 -230
  107. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdFormContainer.js +0 -167
  108. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdFormRow.js +0 -92
  109. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdHoverBox.js +0 -108
  110. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdInput.js +0 -79
  111. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdRadioGroup.js +0 -72
  112. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/shared-input-field-styles.js +0 -152
  113. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/shared-input-styles.js +0 -64
  114. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-icon/pd-icon.js +0 -4
  115. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-icon/src/PdIcon.js +0 -596
  116. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-price/pd-pricetable.js +0 -2
  117. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-price/src/PdPricetable.js +0 -149
  118. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/fecha/lib/fecha.js +0 -200
  119. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/directive.js +0 -27
  120. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/directives/class-map.js +0 -36
  121. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/lit-html.js +0 -242
  122. package/dist/node_modules/@progressive-development/pd-order/dist/pd-order-contacts.js +0 -2
  123. package/dist/node_modules/@progressive-development/pd-order/dist/pd-order-summary.js +0 -2
  124. package/dist/node_modules/@progressive-development/pd-order/dist/src/PdOrderContacts.js +0 -192
  125. package/dist/node_modules/@progressive-development/pd-order/dist/src/PdOrderSummary.js +0 -243
  126. package/dist/node_modules/@progressive-development/pd-page/pd-footer.js +0 -2
  127. package/dist/node_modules/@progressive-development/pd-page/pd-menu.js +0 -2
  128. package/dist/node_modules/@progressive-development/pd-page/src/PdFooter.js +0 -141
  129. package/dist/node_modules/@progressive-development/pd-page/src/PdMenu.js +0 -450
  130. package/dist/node_modules/@progressive-development/pd-shared-styles/src/shared-color-styles.js +0 -30
  131. package/dist/node_modules/@progressive-development/pd-shared-styles/src/shared-font-styles.js +0 -32
  132. package/dist/node_modules/@progressive-development/pd-wizard/pd-wizard.js +0 -2
  133. package/dist/node_modules/@progressive-development/pd-wizard/src/PdSteps.js +0 -191
  134. package/dist/node_modules/@progressive-development/pd-wizard/src/PdWizard.js +0 -280
  135. package/dist/node_modules/firebase/app/dist/esm/index.esm.js +0 -35
  136. package/dist/node_modules/idb/build/index.js +0 -81
  137. package/dist/node_modules/idb/build/wrap-idb-value.js +0 -148
  138. package/dist/node_modules/lit/node_modules/lit-html/directive.js +0 -27
  139. package/dist/node_modules/lit/node_modules/lit-html/directives/class-map.js +0 -36
  140. package/dist/node_modules/lit/node_modules/lit-html/lit-html.js +0 -242
  141. package/dist/node_modules/lit-element-router/lit-element-router.js +0 -131
  142. package/dist/node_modules/lit-element-router/utility/router-utility.js +0 -36
  143. package/dist/node_modules/mini-rx-store/index.esm.js +0 -458
  144. package/dist/node_modules/pwa-helpers/media-query.js +0 -17
  145. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +0 -100
  146. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +0 -147
  147. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +0 -139
  148. package/dist/node_modules/rxjs/dist/esm5/internal/config.js +0 -10
  149. package/dist/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js +0 -159
  150. package/dist/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js +0 -52
  151. package/dist/node_modules/rxjs/dist/esm5/internal/operators/catchError.js +0 -28
  152. package/dist/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js +0 -27
  153. package/dist/node_modules/rxjs/dist/esm5/internal/operators/filter.js +0 -13
  154. package/dist/node_modules/rxjs/dist/esm5/internal/operators/map.js +0 -13
  155. package/dist/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js +0 -26
  156. package/dist/node_modules/rxjs/dist/esm5/internal/operators/tap.js +0 -36
  157. package/dist/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js +0 -43
  158. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +0 -18
  159. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js +0 -11
  160. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +0 -6
  161. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +0 -14
  162. package/dist/node_modules/rxjs/dist/esm5/internal/util/args.js +0 -10
  163. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +0 -9
  164. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +0 -13
  165. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +0 -8
  166. package/dist/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js +0 -23
  167. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +0 -6
  168. package/dist/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js +0 -6
  169. package/dist/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js +0 -7
  170. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +0 -6
  171. package/dist/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js +0 -8
  172. package/dist/node_modules/rxjs/dist/esm5/internal/util/isIterable.js +0 -8
  173. package/dist/node_modules/rxjs/dist/esm5/internal/util/isPromise.js +0 -7
  174. package/dist/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js +0 -46
  175. package/dist/node_modules/rxjs/dist/esm5/internal/util/lift.js +0 -22
  176. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +0 -5
  177. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +0 -17
  178. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +0 -11
  179. package/dist/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js +0 -6
  180. package/dist/src/generated/locale-wrapper/be-wrapper.js +0 -15
  181. package/dist/src/generated/locale-wrapper/de-wrapper.js +0 -13
  182. package/dist/src/generated/locale-wrapper/en-wrapper.js +0 -15
  183. /package/dist/{src/generated → generated}/locales/be.js +0 -0
  184. /package/dist/{src/generated → generated}/locales/de.js +0 -0
  185. /package/dist/{src/generated → generated}/locales/en.js +0 -0
  186. /package/dist/{src/helper → helper}/helper-utils.js +0 -0
  187. /package/dist/{src/model → model}/spa-model.js +0 -0
  188. /package/dist/{src/service-provider → service-provider}/mock/auth.js +0 -0
  189. /package/dist/{src/service-provider → service-provider}/mock/function-client.js +0 -0
  190. /package/dist/{src/service-provider → service-provider}/mock/storage-client.js +0 -0
  191. /package/dist/{src/service-provider → service-provider}/service-provider-model.js +0 -0
  192. /package/dist/{src/store → store}/indexDB.js +0 -0
  193. /package/dist/{src/store → store}/spa-app-actions.js +0 -0
  194. /package/dist/{src/store → store}/spa-app-reducer.js +0 -0
@@ -1,341 +0,0 @@
1
- import { Deferred } from "../../../util/dist/index.esm2017.js";
2
- class Component {
3
- /**
4
- *
5
- * @param name The public service name, e.g. app, auth, firestore, database
6
- * @param instanceFactory Service factory responsible for creating the public interface
7
- * @param type whether the service provided by the component is public or private
8
- */
9
- constructor(name, instanceFactory, type) {
10
- this.name = name;
11
- this.instanceFactory = instanceFactory;
12
- this.type = type;
13
- this.multipleInstances = false;
14
- this.serviceProps = {};
15
- this.instantiationMode = "LAZY";
16
- this.onInstanceCreated = null;
17
- }
18
- setInstantiationMode(mode) {
19
- this.instantiationMode = mode;
20
- return this;
21
- }
22
- setMultipleInstances(multipleInstances) {
23
- this.multipleInstances = multipleInstances;
24
- return this;
25
- }
26
- setServiceProps(props) {
27
- this.serviceProps = props;
28
- return this;
29
- }
30
- setInstanceCreatedCallback(callback) {
31
- this.onInstanceCreated = callback;
32
- return this;
33
- }
34
- }
35
- /**
36
- * @license
37
- * Copyright 2019 Google LLC
38
- *
39
- * Licensed under the Apache License, Version 2.0 (the "License");
40
- * you may not use this file except in compliance with the License.
41
- * You may obtain a copy of the License at
42
- *
43
- * http://www.apache.org/licenses/LICENSE-2.0
44
- *
45
- * Unless required by applicable law or agreed to in writing, software
46
- * distributed under the License is distributed on an "AS IS" BASIS,
47
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
48
- * See the License for the specific language governing permissions and
49
- * limitations under the License.
50
- */
51
- const DEFAULT_ENTRY_NAME = "[DEFAULT]";
52
- /**
53
- * @license
54
- * Copyright 2019 Google LLC
55
- *
56
- * Licensed under the Apache License, Version 2.0 (the "License");
57
- * you may not use this file except in compliance with the License.
58
- * You may obtain a copy of the License at
59
- *
60
- * http://www.apache.org/licenses/LICENSE-2.0
61
- *
62
- * Unless required by applicable law or agreed to in writing, software
63
- * distributed under the License is distributed on an "AS IS" BASIS,
64
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
65
- * See the License for the specific language governing permissions and
66
- * limitations under the License.
67
- */
68
- class Provider {
69
- constructor(name, container) {
70
- this.name = name;
71
- this.container = container;
72
- this.component = null;
73
- this.instances = /* @__PURE__ */ new Map();
74
- this.instancesDeferred = /* @__PURE__ */ new Map();
75
- this.instancesOptions = /* @__PURE__ */ new Map();
76
- this.onInitCallbacks = /* @__PURE__ */ new Map();
77
- }
78
- /**
79
- * @param identifier A provider can provide multiple instances of a service
80
- * if this.component.multipleInstances is true.
81
- */
82
- get(identifier) {
83
- const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);
84
- if (!this.instancesDeferred.has(normalizedIdentifier)) {
85
- const deferred = new Deferred();
86
- this.instancesDeferred.set(normalizedIdentifier, deferred);
87
- if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) {
88
- try {
89
- const instance = this.getOrInitializeService({
90
- instanceIdentifier: normalizedIdentifier
91
- });
92
- if (instance) {
93
- deferred.resolve(instance);
94
- }
95
- } catch (e) {
96
- }
97
- }
98
- }
99
- return this.instancesDeferred.get(normalizedIdentifier).promise;
100
- }
101
- getImmediate(options) {
102
- var _a;
103
- const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);
104
- const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;
105
- if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) {
106
- try {
107
- return this.getOrInitializeService({
108
- instanceIdentifier: normalizedIdentifier
109
- });
110
- } catch (e) {
111
- if (optional) {
112
- return null;
113
- } else {
114
- throw e;
115
- }
116
- }
117
- } else {
118
- if (optional) {
119
- return null;
120
- } else {
121
- throw Error(`Service ${this.name} is not available`);
122
- }
123
- }
124
- }
125
- getComponent() {
126
- return this.component;
127
- }
128
- setComponent(component) {
129
- if (component.name !== this.name) {
130
- throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);
131
- }
132
- if (this.component) {
133
- throw Error(`Component for ${this.name} has already been provided`);
134
- }
135
- this.component = component;
136
- if (!this.shouldAutoInitialize()) {
137
- return;
138
- }
139
- if (isComponentEager(component)) {
140
- try {
141
- this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });
142
- } catch (e) {
143
- }
144
- }
145
- for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {
146
- const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);
147
- try {
148
- const instance = this.getOrInitializeService({
149
- instanceIdentifier: normalizedIdentifier
150
- });
151
- instanceDeferred.resolve(instance);
152
- } catch (e) {
153
- }
154
- }
155
- }
156
- clearInstance(identifier = DEFAULT_ENTRY_NAME) {
157
- this.instancesDeferred.delete(identifier);
158
- this.instancesOptions.delete(identifier);
159
- this.instances.delete(identifier);
160
- }
161
- // app.delete() will call this method on every provider to delete the services
162
- // TODO: should we mark the provider as deleted?
163
- async delete() {
164
- const services = Array.from(this.instances.values());
165
- await Promise.all([
166
- ...services.filter((service) => "INTERNAL" in service).map((service) => service.INTERNAL.delete()),
167
- ...services.filter((service) => "_delete" in service).map((service) => service._delete())
168
- ]);
169
- }
170
- isComponentSet() {
171
- return this.component != null;
172
- }
173
- isInitialized(identifier = DEFAULT_ENTRY_NAME) {
174
- return this.instances.has(identifier);
175
- }
176
- getOptions(identifier = DEFAULT_ENTRY_NAME) {
177
- return this.instancesOptions.get(identifier) || {};
178
- }
179
- initialize(opts = {}) {
180
- const { options = {} } = opts;
181
- const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);
182
- if (this.isInitialized(normalizedIdentifier)) {
183
- throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);
184
- }
185
- if (!this.isComponentSet()) {
186
- throw Error(`Component ${this.name} has not been registered yet`);
187
- }
188
- const instance = this.getOrInitializeService({
189
- instanceIdentifier: normalizedIdentifier,
190
- options
191
- });
192
- for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {
193
- const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);
194
- if (normalizedIdentifier === normalizedDeferredIdentifier) {
195
- instanceDeferred.resolve(instance);
196
- }
197
- }
198
- return instance;
199
- }
200
- /**
201
- *
202
- * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().
203
- * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.
204
- *
205
- * @param identifier An optional instance identifier
206
- * @returns a function to unregister the callback
207
- */
208
- onInit(callback, identifier) {
209
- var _a;
210
- const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);
211
- const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : /* @__PURE__ */ new Set();
212
- existingCallbacks.add(callback);
213
- this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);
214
- const existingInstance = this.instances.get(normalizedIdentifier);
215
- if (existingInstance) {
216
- callback(existingInstance, normalizedIdentifier);
217
- }
218
- return () => {
219
- existingCallbacks.delete(callback);
220
- };
221
- }
222
- /**
223
- * Invoke onInit callbacks synchronously
224
- * @param instance the service instance`
225
- */
226
- invokeOnInitCallbacks(instance, identifier) {
227
- const callbacks = this.onInitCallbacks.get(identifier);
228
- if (!callbacks) {
229
- return;
230
- }
231
- for (const callback of callbacks) {
232
- try {
233
- callback(instance, identifier);
234
- } catch (_a) {
235
- }
236
- }
237
- }
238
- getOrInitializeService({ instanceIdentifier, options = {} }) {
239
- let instance = this.instances.get(instanceIdentifier);
240
- if (!instance && this.component) {
241
- instance = this.component.instanceFactory(this.container, {
242
- instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),
243
- options
244
- });
245
- this.instances.set(instanceIdentifier, instance);
246
- this.instancesOptions.set(instanceIdentifier, options);
247
- this.invokeOnInitCallbacks(instance, instanceIdentifier);
248
- if (this.component.onInstanceCreated) {
249
- try {
250
- this.component.onInstanceCreated(this.container, instanceIdentifier, instance);
251
- } catch (_a) {
252
- }
253
- }
254
- }
255
- return instance || null;
256
- }
257
- normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {
258
- if (this.component) {
259
- return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;
260
- } else {
261
- return identifier;
262
- }
263
- }
264
- shouldAutoInitialize() {
265
- return !!this.component && this.component.instantiationMode !== "EXPLICIT";
266
- }
267
- }
268
- function normalizeIdentifierForFactory(identifier) {
269
- return identifier === DEFAULT_ENTRY_NAME ? void 0 : identifier;
270
- }
271
- function isComponentEager(component) {
272
- return component.instantiationMode === "EAGER";
273
- }
274
- /**
275
- * @license
276
- * Copyright 2019 Google LLC
277
- *
278
- * Licensed under the Apache License, Version 2.0 (the "License");
279
- * you may not use this file except in compliance with the License.
280
- * You may obtain a copy of the License at
281
- *
282
- * http://www.apache.org/licenses/LICENSE-2.0
283
- *
284
- * Unless required by applicable law or agreed to in writing, software
285
- * distributed under the License is distributed on an "AS IS" BASIS,
286
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
287
- * See the License for the specific language governing permissions and
288
- * limitations under the License.
289
- */
290
- class ComponentContainer {
291
- constructor(name) {
292
- this.name = name;
293
- this.providers = /* @__PURE__ */ new Map();
294
- }
295
- /**
296
- *
297
- * @param component Component being added
298
- * @param overwrite When a component with the same name has already been registered,
299
- * if overwrite is true: overwrite the existing component with the new component and create a new
300
- * provider with the new component. It can be useful in tests where you want to use different mocks
301
- * for different tests.
302
- * if overwrite is false: throw an exception
303
- */
304
- addComponent(component) {
305
- const provider = this.getProvider(component.name);
306
- if (provider.isComponentSet()) {
307
- throw new Error(`Component ${component.name} has already been registered with ${this.name}`);
308
- }
309
- provider.setComponent(component);
310
- }
311
- addOrOverwriteComponent(component) {
312
- const provider = this.getProvider(component.name);
313
- if (provider.isComponentSet()) {
314
- this.providers.delete(component.name);
315
- }
316
- this.addComponent(component);
317
- }
318
- /**
319
- * getProvider provides a type safe interface where it can only be called with a field name
320
- * present in NameServiceMapping interface.
321
- *
322
- * Firebase SDKs providing services should extend NameServiceMapping interface to register
323
- * themselves.
324
- */
325
- getProvider(name) {
326
- if (this.providers.has(name)) {
327
- return this.providers.get(name);
328
- }
329
- const provider = new Provider(name, this);
330
- this.providers.set(name, provider);
331
- return provider;
332
- }
333
- getProviders() {
334
- return Array.from(this.providers.values());
335
- }
336
- }
337
- export {
338
- Component,
339
- ComponentContainer,
340
- Provider
341
- };