@progressive-development/pd-spa-helper 0.4.0 → 0.5.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.
Files changed (198) 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.d.ts +2 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +21 -21
  27. package/dist/pd-panel-viewer.js +10 -12
  28. package/dist/pd-panel.js +2 -3
  29. package/dist/{src/popup → popup}/wizard-close-popup.js +3 -5
  30. package/dist/{src/popup → popup}/wizard-reload-popup.js +3 -5
  31. package/dist/{src/router → router}/AppMain.js +4 -5
  32. package/dist/{src/service-provider → service-provider}/firebase/auth.js +1 -4
  33. package/dist/{src/service-provider → service-provider}/firebase/firestorage-client.js +1 -1
  34. package/dist/{src/service-provider → service-provider}/firebase/firestore-client.js +1 -1
  35. package/dist/{src/service-provider → service-provider}/firebase/functions-client.js +1 -1
  36. package/dist/{src/service-provider → service-provider}/firebase/messagingFirebaseClient.js +2 -2
  37. package/dist/{src/service-provider → service-provider}/service-provider-impl.js +1 -2
  38. package/dist/{src/store → store}/mini-rx.store.js +1 -1
  39. package/dist/{src/store → store}/spa-app-effects.js +2 -2
  40. package/dist/{src/store → store}/spa-app-selector.js +1 -1
  41. package/dist/stories/pd-loading-state.stories.d.ts +3 -3
  42. package/dist/stories/pd-toast.stories.d.ts +3 -3
  43. package/dist/tmpown/pd-loading-state.d.ts.map +1 -1
  44. package/dist/{src/tmpown → tmpown}/pd-loading-state.js +6 -8
  45. package/dist/tmpown/pd-login.d.ts.map +1 -1
  46. package/dist/{src/tmpown → tmpown}/pd-login.js +6 -7
  47. package/dist/tmpown/pd-panel-viewer.d.ts.map +1 -1
  48. package/dist/{src/tmpown → tmpown}/pd-toast.js +5 -7
  49. package/package.json +29 -23
  50. package/dist/node_modules/@firebase/app/dist/esm/index.esm2017.js +0 -749
  51. package/dist/node_modules/@firebase/auth/dist/esm2017/index-68602d24.js +0 -6265
  52. package/dist/node_modules/@firebase/component/dist/esm/index.esm2017.js +0 -341
  53. package/dist/node_modules/@firebase/firestore/dist/index.esm2017.js +0 -10250
  54. package/dist/node_modules/@firebase/functions/dist/index.esm2017.js +0 -513
  55. package/dist/node_modules/@firebase/installations/dist/esm/index.esm2017.js +0 -863
  56. package/dist/node_modules/@firebase/logger/dist/esm/index.esm2017.js +0 -122
  57. package/dist/node_modules/@firebase/messaging/dist/esm/index.esm2017.js +0 -1019
  58. package/dist/node_modules/@firebase/storage/dist/index.esm2017.js +0 -2042
  59. package/dist/node_modules/@firebase/util/dist/index.esm2017.js +0 -931
  60. package/dist/node_modules/@firebase/webchannel-wrapper/dist/bloom-blob/esm/bloom_blob_es2018.js +0 -417
  61. package/dist/node_modules/@firebase/webchannel-wrapper/dist/webchannel-blob/esm/webchannel_blob_es2018.js +0 -2155
  62. package/dist/node_modules/@lit/reactive-element/decorators/custom-element.js +0 -14
  63. package/dist/node_modules/@lit/reactive-element/decorators/property.js +0 -20
  64. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js +0 -7
  65. package/dist/node_modules/@progressive-development/pd-dialog/pd-popup-dialog.js +0 -5
  66. package/dist/node_modules/@progressive-development/pd-dialog/pd-popup.js +0 -2
  67. package/dist/node_modules/@progressive-development/pd-dialog/src/PdPopup.js +0 -113
  68. package/dist/node_modules/@progressive-development/pd-dialog/src/PdPopupDialog.js +0 -189
  69. package/dist/node_modules/@progressive-development/pd-forms/pd-button.js +0 -2
  70. package/dist/node_modules/@progressive-development/pd-forms/pd-form-container.js +0 -2
  71. package/dist/node_modules/@progressive-development/pd-forms/pd-form-row.js +0 -2
  72. package/dist/node_modules/@progressive-development/pd-forms/pd-hover-box.js +0 -2
  73. package/dist/node_modules/@progressive-development/pd-forms/pd-input.js +0 -2
  74. package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseInputElement.js +0 -86
  75. package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUi.js +0 -34
  76. package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUiInput.js +0 -227
  77. package/dist/node_modules/@progressive-development/pd-forms/src/PdButton.js +0 -194
  78. package/dist/node_modules/@progressive-development/pd-forms/src/PdFormContainer.js +0 -167
  79. package/dist/node_modules/@progressive-development/pd-forms/src/PdFormRow.js +0 -92
  80. package/dist/node_modules/@progressive-development/pd-forms/src/PdHoverBox.js +0 -108
  81. package/dist/node_modules/@progressive-development/pd-forms/src/PdInput.js +0 -79
  82. package/dist/node_modules/@progressive-development/pd-forms/src/generated/locale/be.js +0 -11
  83. package/dist/node_modules/@progressive-development/pd-forms/src/generated/locale/en.js +0 -11
  84. package/dist/node_modules/@progressive-development/pd-forms/src/shared-input-field-styles.js +0 -152
  85. package/dist/node_modules/@progressive-development/pd-forms/src/shared-input-styles.js +0 -64
  86. package/dist/node_modules/@progressive-development/pd-icon/pd-icon.js +0 -4
  87. package/dist/node_modules/@progressive-development/pd-icon/src/PdIcon.js +0 -596
  88. package/dist/node_modules/@progressive-development/pd-order/dist/locales/be.js +0 -15
  89. package/dist/node_modules/@progressive-development/pd-order/dist/locales/de.js +0 -15
  90. package/dist/node_modules/@progressive-development/pd-order/dist/locales/en.js +0 -15
  91. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-contact/pd-contact.js +0 -2
  92. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-contact/src/PdContact.js +0 -567
  93. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/pd-collapse.js +0 -2
  94. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/pd-edit-content.js +0 -2
  95. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/src/PdCollapse.js +0 -136
  96. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/src/PdEditContent.js +0 -224
  97. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-dialog/pd-popup.js +0 -2
  98. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-dialog/src/PdPopup.js +0 -113
  99. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-checkbox.js +0 -2
  100. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-form-container.js +0 -2
  101. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-form-row.js +0 -2
  102. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-hover-box.js +0 -2
  103. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-input.js +0 -2
  104. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-radio-group.js +0 -2
  105. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseInputElement.js +0 -86
  106. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUi.js +0 -34
  107. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUiInput.js +0 -229
  108. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdCheckbox.js +0 -230
  109. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdFormContainer.js +0 -167
  110. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdFormRow.js +0 -92
  111. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdHoverBox.js +0 -108
  112. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdInput.js +0 -79
  113. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdRadioGroup.js +0 -72
  114. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/shared-input-field-styles.js +0 -152
  115. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/shared-input-styles.js +0 -64
  116. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-icon/pd-icon.js +0 -4
  117. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-icon/src/PdIcon.js +0 -596
  118. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-price/pd-pricetable.js +0 -2
  119. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-price/src/PdPricetable.js +0 -149
  120. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/fecha/lib/fecha.js +0 -200
  121. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/directive.js +0 -27
  122. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/directives/class-map.js +0 -36
  123. package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/lit-html.js +0 -242
  124. package/dist/node_modules/@progressive-development/pd-order/dist/pd-order-contacts.js +0 -2
  125. package/dist/node_modules/@progressive-development/pd-order/dist/pd-order-summary.js +0 -2
  126. package/dist/node_modules/@progressive-development/pd-order/dist/src/PdOrderContacts.js +0 -192
  127. package/dist/node_modules/@progressive-development/pd-order/dist/src/PdOrderSummary.js +0 -243
  128. package/dist/node_modules/@progressive-development/pd-page/pd-footer.js +0 -2
  129. package/dist/node_modules/@progressive-development/pd-page/pd-menu.js +0 -2
  130. package/dist/node_modules/@progressive-development/pd-page/src/PdFooter.js +0 -141
  131. package/dist/node_modules/@progressive-development/pd-page/src/PdMenu.js +0 -450
  132. package/dist/node_modules/@progressive-development/pd-shared-styles/src/shared-color-styles.js +0 -30
  133. package/dist/node_modules/@progressive-development/pd-shared-styles/src/shared-font-styles.js +0 -32
  134. package/dist/node_modules/@progressive-development/pd-wizard/pd-wizard.js +0 -2
  135. package/dist/node_modules/@progressive-development/pd-wizard/src/PdSteps.js +0 -191
  136. package/dist/node_modules/@progressive-development/pd-wizard/src/PdWizard.js +0 -280
  137. package/dist/node_modules/firebase/app/dist/esm/index.esm.js +0 -35
  138. package/dist/node_modules/idb/build/index.js +0 -81
  139. package/dist/node_modules/idb/build/wrap-idb-value.js +0 -148
  140. package/dist/node_modules/lit/node_modules/lit-html/directive.js +0 -27
  141. package/dist/node_modules/lit/node_modules/lit-html/directives/class-map.js +0 -36
  142. package/dist/node_modules/lit/node_modules/lit-html/lit-html.js +0 -242
  143. package/dist/node_modules/lit-element-router/lit-element-router.js +0 -131
  144. package/dist/node_modules/lit-element-router/utility/router-utility.js +0 -36
  145. package/dist/node_modules/mini-rx-store/index.esm.js +0 -458
  146. package/dist/node_modules/pwa-helpers/media-query.js +0 -17
  147. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +0 -100
  148. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +0 -147
  149. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +0 -139
  150. package/dist/node_modules/rxjs/dist/esm5/internal/config.js +0 -10
  151. package/dist/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js +0 -159
  152. package/dist/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js +0 -52
  153. package/dist/node_modules/rxjs/dist/esm5/internal/operators/catchError.js +0 -28
  154. package/dist/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js +0 -27
  155. package/dist/node_modules/rxjs/dist/esm5/internal/operators/filter.js +0 -13
  156. package/dist/node_modules/rxjs/dist/esm5/internal/operators/map.js +0 -13
  157. package/dist/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js +0 -26
  158. package/dist/node_modules/rxjs/dist/esm5/internal/operators/tap.js +0 -36
  159. package/dist/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js +0 -43
  160. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +0 -18
  161. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js +0 -11
  162. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +0 -6
  163. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +0 -14
  164. package/dist/node_modules/rxjs/dist/esm5/internal/util/args.js +0 -10
  165. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +0 -9
  166. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +0 -13
  167. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +0 -8
  168. package/dist/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js +0 -23
  169. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +0 -6
  170. package/dist/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js +0 -6
  171. package/dist/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js +0 -7
  172. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +0 -6
  173. package/dist/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js +0 -8
  174. package/dist/node_modules/rxjs/dist/esm5/internal/util/isIterable.js +0 -8
  175. package/dist/node_modules/rxjs/dist/esm5/internal/util/isPromise.js +0 -7
  176. package/dist/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js +0 -46
  177. package/dist/node_modules/rxjs/dist/esm5/internal/util/lift.js +0 -22
  178. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +0 -5
  179. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +0 -17
  180. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +0 -11
  181. package/dist/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js +0 -6
  182. package/dist/pd-spa-helper.d.ts +0 -1
  183. package/dist/pd-spa-helper.d.ts.map +0 -1
  184. package/dist/src/generated/locale-wrapper/be-wrapper.js +0 -15
  185. package/dist/src/generated/locale-wrapper/de-wrapper.js +0 -13
  186. package/dist/src/generated/locale-wrapper/en-wrapper.js +0 -15
  187. /package/dist/{src/generated → generated}/locales/be.js +0 -0
  188. /package/dist/{src/generated → generated}/locales/de.js +0 -0
  189. /package/dist/{src/generated → generated}/locales/en.js +0 -0
  190. /package/dist/{src/helper → helper}/helper-utils.js +0 -0
  191. /package/dist/{src/model → model}/spa-model.js +0 -0
  192. /package/dist/{src/service-provider → service-provider}/mock/auth.js +0 -0
  193. /package/dist/{src/service-provider → service-provider}/mock/function-client.js +0 -0
  194. /package/dist/{src/service-provider → service-provider}/mock/storage-client.js +0 -0
  195. /package/dist/{src/service-provider → service-provider}/service-provider-model.js +0 -0
  196. /package/dist/{src/store → store}/indexDB.js +0 -0
  197. /package/dist/{src/store → store}/spa-app-actions.js +0 -0
  198. /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
- };