@progressive-development/pd-spa-helper 0.3.102 → 0.3.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +72 -0
- package/dist/node_modules/@firebase/app/dist/esm/index.esm2017.js +749 -0
- package/dist/node_modules/@firebase/auth/dist/esm2017/index-68602d24.js +6265 -0
- package/dist/node_modules/@firebase/component/dist/esm/index.esm2017.js +341 -0
- package/dist/node_modules/@firebase/firestore/dist/index.esm2017.js +10250 -0
- package/dist/node_modules/@firebase/functions/dist/index.esm2017.js +513 -0
- package/dist/node_modules/@firebase/installations/dist/esm/index.esm2017.js +863 -0
- package/dist/node_modules/@firebase/logger/dist/esm/index.esm2017.js +122 -0
- package/dist/node_modules/@firebase/messaging/dist/esm/index.esm2017.js +1019 -0
- package/dist/node_modules/@firebase/storage/dist/index.esm2017.js +2042 -0
- package/dist/node_modules/@firebase/util/dist/index.esm2017.js +931 -0
- package/dist/node_modules/@firebase/webchannel-wrapper/dist/bloom-blob/esm/bloom_blob_es2018.js +417 -0
- package/dist/node_modules/@firebase/webchannel-wrapper/dist/webchannel-blob/esm/webchannel_blob_es2018.js +2155 -0
- package/dist/node_modules/@lit/reactive-element/decorators/custom-element.js +14 -0
- package/dist/node_modules/@lit/reactive-element/decorators/property.js +20 -0
- package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js +7 -0
- package/dist/node_modules/@progressive-development/pd-dialog/pd-popup-dialog.js +5 -0
- package/dist/node_modules/@progressive-development/pd-dialog/pd-popup.js +2 -0
- package/dist/node_modules/@progressive-development/pd-dialog/src/PdPopup.js +113 -0
- package/dist/node_modules/@progressive-development/pd-dialog/src/PdPopupDialog.js +189 -0
- package/dist/node_modules/@progressive-development/pd-forms/pd-button.js +2 -0
- package/dist/node_modules/@progressive-development/pd-forms/pd-form-container.js +2 -0
- package/dist/node_modules/@progressive-development/pd-forms/pd-form-row.js +2 -0
- package/dist/node_modules/@progressive-development/pd-forms/pd-hover-box.js +2 -0
- package/dist/node_modules/@progressive-development/pd-forms/pd-input.js +2 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseInputElement.js +86 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUi.js +34 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUiInput.js +227 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdButton.js +194 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdFormContainer.js +167 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdFormRow.js +92 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdHoverBox.js +108 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/PdInput.js +79 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/generated/locale/be.js +11 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/generated/locale/en.js +11 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/shared-input-field-styles.js +152 -0
- package/dist/node_modules/@progressive-development/pd-forms/src/shared-input-styles.js +64 -0
- package/dist/node_modules/@progressive-development/pd-icon/pd-icon.js +4 -0
- package/dist/node_modules/@progressive-development/pd-icon/src/PdIcon.js +596 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/locales/be.js +15 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/locales/de.js +15 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/locales/en.js +15 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-contact/pd-contact.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-contact/src/PdContact.js +567 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/pd-collapse.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/pd-edit-content.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/src/PdCollapse.js +136 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-content/src/PdEditContent.js +224 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-dialog/pd-popup.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-dialog/src/PdPopup.js +113 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-checkbox.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-form-container.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-form-row.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-hover-box.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-input.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/pd-radio-group.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseInputElement.js +86 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUi.js +34 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdBaseUiInput.js +229 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdCheckbox.js +230 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdFormContainer.js +167 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdFormRow.js +92 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdHoverBox.js +108 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdInput.js +79 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/PdRadioGroup.js +72 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/shared-input-field-styles.js +152 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-forms/src/shared-input-styles.js +64 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-icon/pd-icon.js +4 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-icon/src/PdIcon.js +596 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-price/pd-pricetable.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/@progressive-development/pd-price/src/PdPricetable.js +149 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/fecha/lib/fecha.js +200 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/directive.js +27 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/directives/class-map.js +36 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/node_modules/lit/node_modules/lit-html/lit-html.js +242 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/pd-order-contacts.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/pd-order-summary.js +2 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/src/PdOrderContacts.js +192 -0
- package/dist/node_modules/@progressive-development/pd-order/dist/src/PdOrderSummary.js +243 -0
- package/dist/node_modules/@progressive-development/pd-page/pd-footer.js +2 -0
- package/dist/node_modules/@progressive-development/pd-page/pd-menu.js +2 -0
- package/dist/node_modules/@progressive-development/pd-page/src/PdFooter.js +141 -0
- package/dist/node_modules/@progressive-development/pd-page/src/PdMenu.js +450 -0
- package/dist/node_modules/@progressive-development/pd-shared-styles/src/shared-color-styles.js +30 -0
- package/dist/node_modules/@progressive-development/pd-shared-styles/src/shared-font-styles.js +32 -0
- package/dist/node_modules/@progressive-development/pd-wizard/pd-wizard.js +2 -0
- package/dist/node_modules/@progressive-development/pd-wizard/src/PdSteps.js +191 -0
- package/dist/node_modules/@progressive-development/pd-wizard/src/PdWizard.js +280 -0
- package/dist/node_modules/firebase/app/dist/esm/index.esm.js +35 -0
- package/dist/node_modules/idb/build/index.js +81 -0
- package/dist/node_modules/idb/build/wrap-idb-value.js +148 -0
- package/dist/node_modules/lit/node_modules/lit-html/directive.js +27 -0
- package/dist/node_modules/lit/node_modules/lit-html/directives/class-map.js +36 -0
- package/dist/node_modules/lit/node_modules/lit-html/lit-html.js +242 -0
- package/dist/node_modules/lit-element-router/lit-element-router.js +131 -0
- package/dist/node_modules/lit-element-router/utility/router-utility.js +36 -0
- package/dist/node_modules/mini-rx-store/index.esm.js +458 -0
- package/dist/node_modules/pwa-helpers/media-query.js +17 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +100 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +147 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +139 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js +10 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js +159 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js +52 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/catchError.js +28 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js +27 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/filter.js +13 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/map.js +13 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js +26 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/tap.js +36 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js +43 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +18 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js +11 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +6 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +14 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/args.js +10 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +9 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +13 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +8 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js +23 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +6 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js +6 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js +7 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +6 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js +8 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isIterable.js +8 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isPromise.js +7 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js +46 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/lift.js +22 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +5 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +17 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +11 -0
- package/dist/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js +6 -0
- package/dist/node_modules/tslib/tslib.es6.js +240 -0
- package/dist/pd-panel-viewer.js +189 -0
- package/dist/pd-panel.js +51 -0
- package/dist/src/PdSpaHelper.js +319 -402
- package/dist/src/defaultpage/default-confirm-popup.js +61 -41
- package/dist/src/defaultpage/default-dialog-popup.js +74 -60
- package/dist/src/defaultpage/default-login.js +31 -20
- package/dist/src/defaultpage/default-popup.js +13 -10
- package/dist/src/defaultpage/default-step-address.js +52 -42
- package/dist/src/defaultpage/default-step-summary.js +58 -49
- package/dist/src/defaultpage/default-view-page.js +31 -23
- package/dist/src/defaultpage/default-wizard-step.js +119 -111
- package/dist/src/defaultpage/default-wizard.js +199 -195
- package/dist/src/generated/locale-wrapper/be-wrapper.js +14 -11
- package/dist/src/generated/locale-wrapper/de-wrapper.js +12 -9
- package/dist/src/generated/locale-wrapper/en-wrapper.js +14 -11
- package/dist/src/generated/locales/be.js +17 -19
- package/dist/src/generated/locales/de.js +17 -19
- package/dist/src/generated/locales/en.js +17 -19
- package/dist/src/helper/helper-utils.js +29 -24
- package/dist/src/model/spa-model.js +6 -3
- package/dist/src/popup/wizard-close-popup.js +37 -27
- package/dist/src/popup/wizard-reload-popup.js +35 -23
- package/dist/src/router/AppMain.js +23 -12
- package/dist/src/service-provider/firebase/auth.js +50 -73
- package/dist/src/service-provider/firebase/firestorage-client.js +194 -243
- package/dist/src/service-provider/firebase/firestore-client.js +19 -25
- package/dist/src/service-provider/firebase/functions-client.js +27 -59
- package/dist/src/service-provider/firebase/messagingFirebaseClient.js +60 -59
- package/dist/src/service-provider/mock/auth.js +54 -54
- package/dist/src/service-provider/mock/function-client.js +28 -27
- package/dist/src/service-provider/mock/storage-client.js +86 -92
- package/dist/src/service-provider/service-provider-impl.js +206 -211
- package/dist/src/service-provider/service-provider-model.js +1 -2
- package/dist/src/store/indexDB.js +133 -180
- package/dist/src/store/mini-rx.store.js +36 -38
- package/dist/src/store/spa-app-actions.js +27 -14
- package/dist/src/store/spa-app-effects.js +60 -40
- package/dist/src/store/spa-app-reducer.js +42 -33
- package/dist/src/store/spa-app-selector.js +31 -15
- package/dist/src/tmpown/pd-loading-state.js +49 -39
- package/dist/src/tmpown/pd-login.js +76 -67
- package/dist/src/tmpown/pd-toast.js +74 -65
- package/package.json +21 -18
- package/.editorconfig +0 -29
- package/.storybook/main.ts +0 -14
- package/.storybook/preview.ts +0 -15
- package/demo/index.html +0 -29
- package/dist/src/InitApplicationData.d.ts +0 -3
- package/dist/src/InitApplicationData.js +0 -8
- package/dist/src/InitApplicationData.js.map +0 -1
- package/dist/src/PdSpaHelper.d.ts +0 -93
- package/dist/src/PdSpaHelper.js.map +0 -1
- package/dist/src/defaultpage/default-confirm-popup.d.ts +0 -19
- package/dist/src/defaultpage/default-confirm-popup.js.map +0 -1
- package/dist/src/defaultpage/default-dialog-popup.d.ts +0 -16
- package/dist/src/defaultpage/default-dialog-popup.js.map +0 -1
- package/dist/src/defaultpage/default-login.d.ts +0 -8
- package/dist/src/defaultpage/default-login.js.map +0 -1
- package/dist/src/defaultpage/default-popup.d.ts +0 -7
- package/dist/src/defaultpage/default-popup.js.map +0 -1
- package/dist/src/defaultpage/default-step-address.d.ts +0 -19
- package/dist/src/defaultpage/default-step-address.js.map +0 -1
- package/dist/src/defaultpage/default-step-summary.d.ts +0 -30
- package/dist/src/defaultpage/default-step-summary.js.map +0 -1
- package/dist/src/defaultpage/default-view-page.d.ts +0 -9
- package/dist/src/defaultpage/default-view-page.js.map +0 -1
- package/dist/src/defaultpage/default-wizard-step.d.ts +0 -34
- package/dist/src/defaultpage/default-wizard-step.js.map +0 -1
- package/dist/src/defaultpage/default-wizard.d.ts +0 -33
- package/dist/src/defaultpage/default-wizard.js.map +0 -1
- package/dist/src/firebase/auth.d.ts +0 -4
- package/dist/src/firebase/auth.js +0 -28
- package/dist/src/firebase/auth.js.map +0 -1
- package/dist/src/firebase/firestore-client.d.ts +0 -9
- package/dist/src/firebase/firestore-client.js +0 -19
- package/dist/src/firebase/firestore-client.js.map +0 -1
- package/dist/src/firebase/functions-client.d.ts +0 -34
- package/dist/src/firebase/functions-client.js +0 -70
- package/dist/src/firebase/functions-client.js.map +0 -1
- package/dist/src/generated/locale-codes.d.ts +0 -13
- package/dist/src/generated/locale-codes.js +0 -25
- package/dist/src/generated/locale-codes.js.map +0 -1
- package/dist/src/generated/locale-wrapper/be-wrapper.d.ts +0 -1
- package/dist/src/generated/locale-wrapper/be-wrapper.js.map +0 -1
- package/dist/src/generated/locale-wrapper/de-wrapper.d.ts +0 -15
- package/dist/src/generated/locale-wrapper/de-wrapper.js.map +0 -1
- package/dist/src/generated/locale-wrapper/en-wrapper.d.ts +0 -1
- package/dist/src/generated/locale-wrapper/en-wrapper.js.map +0 -1
- package/dist/src/generated/locales/be.d.ts +0 -15
- package/dist/src/generated/locales/be.js.map +0 -1
- package/dist/src/generated/locales/de.d.ts +0 -15
- package/dist/src/generated/locales/de.js.map +0 -1
- package/dist/src/generated/locales/en.d.ts +0 -15
- package/dist/src/generated/locales/en.js.map +0 -1
- package/dist/src/helper/helper-utils.d.ts +0 -5
- package/dist/src/helper/helper-utils.js.map +0 -1
- package/dist/src/index.d.ts +0 -22
- package/dist/src/index.js +0 -33
- package/dist/src/index.js.map +0 -1
- package/dist/src/model/spa-model.d.ts +0 -16
- package/dist/src/model/spa-model.js.map +0 -1
- package/dist/src/pd-spa-helper.d.ts +0 -0
- package/dist/src/pd-spa-helper.js +0 -5
- package/dist/src/pd-spa-helper.js.map +0 -1
- package/dist/src/popup/wizard-close-popup.d.ts +0 -10
- package/dist/src/popup/wizard-close-popup.js.map +0 -1
- package/dist/src/popup/wizard-reload-popup.d.ts +0 -13
- package/dist/src/popup/wizard-reload-popup.js.map +0 -1
- package/dist/src/router/AppMain.d.ts +0 -6
- package/dist/src/router/AppMain.js.map +0 -1
- package/dist/src/service-call-controller2.d.ts +0 -16
- package/dist/src/service-call-controller2.js +0 -43
- package/dist/src/service-call-controller2.js.map +0 -1
- package/dist/src/service-provider/firebase/auth.d.ts +0 -14
- package/dist/src/service-provider/firebase/auth.js.map +0 -1
- package/dist/src/service-provider/firebase/firestorage-client.d.ts +0 -20
- package/dist/src/service-provider/firebase/firestorage-client.js.map +0 -1
- package/dist/src/service-provider/firebase/firestore-client.d.ts +0 -11
- package/dist/src/service-provider/firebase/firestore-client.js.map +0 -1
- package/dist/src/service-provider/firebase/functions-client.d.ts +0 -9
- package/dist/src/service-provider/firebase/functions-client.js.map +0 -1
- package/dist/src/service-provider/firebase/messagingFirebaseClient.d.ts +0 -8
- package/dist/src/service-provider/firebase/messagingFirebaseClient.js.map +0 -1
- package/dist/src/service-provider/mock/auth.d.ts +0 -5
- package/dist/src/service-provider/mock/auth.js.map +0 -1
- package/dist/src/service-provider/mock/function-client.d.ts +0 -8
- package/dist/src/service-provider/mock/function-client.js.map +0 -1
- package/dist/src/service-provider/mock/storage-client.d.ts +0 -10
- package/dist/src/service-provider/mock/storage-client.js.map +0 -1
- package/dist/src/service-provider/service-provider-impl.d.ts +0 -21
- package/dist/src/service-provider/service-provider-impl.js.map +0 -1
- package/dist/src/service-provider/service-provider-model.d.ts +0 -136
- package/dist/src/service-provider/service-provider-model.js.map +0 -1
- package/dist/src/store/indexDB.d.ts +0 -27
- package/dist/src/store/indexDB.js.map +0 -1
- package/dist/src/store/mini-rx.store.d.ts +0 -4
- package/dist/src/store/mini-rx.store.js.map +0 -1
- package/dist/src/store/spa-app-actions.d.ts +0 -104
- package/dist/src/store/spa-app-actions.js.map +0 -1
- package/dist/src/store/spa-app-effects.d.ts +0 -23
- package/dist/src/store/spa-app-effects.js.map +0 -1
- package/dist/src/store/spa-app-reducer.d.ts +0 -9
- package/dist/src/store/spa-app-reducer.js.map +0 -1
- package/dist/src/store/spa-app-selector.d.ts +0 -6
- package/dist/src/store/spa-app-selector.js.map +0 -1
- package/dist/src/stories/Button.d.ts +0 -27
- package/dist/src/stories/Button.js +0 -20
- package/dist/src/stories/Button.js.map +0 -1
- package/dist/src/stories/Button.stories.d.ts +0 -9
- package/dist/src/stories/Button.stories.js +0 -41
- package/dist/src/stories/Button.stories.js.map +0 -1
- package/dist/src/stories/Header.d.ts +0 -12
- package/dist/src/stories/Header.js +0 -44
- package/dist/src/stories/Header.js.map +0 -1
- package/dist/src/stories/Header.stories.d.ts +0 -7
- package/dist/src/stories/Header.stories.js +0 -17
- package/dist/src/stories/Header.stories.js.map +0 -1
- package/dist/src/stories/Page.d.ts +0 -12
- package/dist/src/stories/Page.js +0 -61
- package/dist/src/stories/Page.js.map +0 -1
- package/dist/src/stories/Page.stories.d.ts +0 -7
- package/dist/src/stories/Page.stories.js +0 -19
- package/dist/src/stories/Page.stories.js.map +0 -1
- package/dist/src/stories/pd-loading-state.stories.d.ts +0 -30
- package/dist/src/stories/pd-loading-state.stories.js +0 -153
- package/dist/src/stories/pd-loading-state.stories.js.map +0 -1
- package/dist/src/stories/pd-toast.stories.d.ts +0 -23
- package/dist/src/stories/pd-toast.stories.js +0 -34
- package/dist/src/stories/pd-toast.stories.js.map +0 -1
- package/dist/src/tmpown/pd-loading-state.d.ts +0 -9
- package/dist/src/tmpown/pd-loading-state.js.map +0 -1
- package/dist/src/tmpown/pd-login.d.ts +0 -14
- package/dist/src/tmpown/pd-login.js.map +0 -1
- package/dist/src/tmpown/pd-panel-viewer.d.ts +0 -18
- package/dist/src/tmpown/pd-panel-viewer.js +0 -188
- package/dist/src/tmpown/pd-panel-viewer.js.map +0 -1
- package/dist/src/tmpown/pd-panel.d.ts +0 -5
- package/dist/src/tmpown/pd-panel.js +0 -41
- package/dist/src/tmpown/pd-panel.js.map +0 -1
- package/dist/src/tmpown/pd-toast.d.ts +0 -12
- package/dist/src/tmpown/pd-toast.js.map +0 -1
- package/dist/stories/index.stories.d.ts +0 -33
- package/dist/stories/index.stories.js +0 -37
- package/dist/stories/index.stories.js.map +0 -1
- package/dist/test/pd-spa-helper.test.d.ts +0 -1
- package/dist/test/pd-spa-helper.test.js +0 -22
- package/dist/test/pd-spa-helper.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/index.d.ts +0 -15
- package/lit-localize.json +0 -15
- package/pd-spa-helper.iml +0 -9
- package/src/PdSpaHelper.ts +0 -619
- package/src/defaultpage/default-confirm-popup.ts +0 -78
- package/src/defaultpage/default-dialog-popup.ts +0 -105
- package/src/defaultpage/default-login.ts +0 -41
- package/src/defaultpage/default-popup.ts +0 -26
- package/src/defaultpage/default-step-address.ts +0 -57
- package/src/defaultpage/default-step-summary.ts +0 -88
- package/src/defaultpage/default-view-page.ts +0 -58
- package/src/defaultpage/default-wizard-step.ts +0 -142
- package/src/defaultpage/default-wizard.ts +0 -273
- package/src/generated/locale-codes.ts +0 -27
- package/src/generated/locale-wrapper/be-wrapper.ts +0 -13
- package/src/generated/locale-wrapper/de-wrapper.ts +0 -11
- package/src/generated/locale-wrapper/en-wrapper.ts +0 -13
- package/src/generated/locales/be.ts +0 -26
- package/src/generated/locales/de.ts +0 -26
- package/src/generated/locales/en.ts +0 -26
- package/src/helper/helper-utils.ts +0 -35
- package/src/index.ts +0 -66
- package/src/model/spa-model.ts +0 -20
- package/src/pd-spa-helper.ts +0 -3
- package/src/popup/wizard-close-popup.ts +0 -52
- package/src/popup/wizard-reload-popup.ts +0 -69
- package/src/router/AppMain.ts +0 -10
- package/src/service-call-controller2.ts +0 -68
- package/src/service-provider/firebase/auth.ts +0 -89
- package/src/service-provider/firebase/firestorage-client.ts +0 -327
- package/src/service-provider/firebase/firestore-client.ts +0 -40
- package/src/service-provider/firebase/functions-client.ts +0 -73
- package/src/service-provider/firebase/messagingFirebaseClient.ts +0 -102
- package/src/service-provider/mock/auth.ts +0 -86
- package/src/service-provider/mock/function-client.ts +0 -42
- package/src/service-provider/mock/storage-client.ts +0 -149
- package/src/service-provider/service-provider-impl.ts +0 -286
- package/src/service-provider/service-provider-model.ts +0 -163
- package/src/store/indexDB.ts +0 -244
- package/src/store/mini-rx.store.ts +0 -48
- package/src/store/spa-app-actions.ts +0 -36
- package/src/store/spa-app-effects.ts +0 -73
- package/src/store/spa-app-reducer.ts +0 -86
- package/src/store/spa-app-selector.ts +0 -41
- package/src/stories/pd-loading-state.stories.ts +0 -168
- package/src/stories/pd-toast.stories.ts +0 -43
- package/src/tmpown/pd-loading-state.ts +0 -177
- package/src/tmpown/pd-login.ts +0 -131
- package/src/tmpown/pd-panel-viewer.ts +0 -193
- package/src/tmpown/pd-panel.ts +0 -43
- package/src/tmpown/pd-toast.ts +0 -118
- package/test/pd-spa-helper.test.ts +0 -26
- package/tsconfig.json +0 -22
- package/web-dev-server.config.mjs +0 -27
- package/web-test-runner.config.mjs +0 -41
- package/xliff/be.xlf +0 -60
- package/xliff/de.xlf +0 -46
- package/xliff/en.xlf +0 -58
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import {ReactiveControllerHost} from 'lit';
|
|
2
|
-
import {initialState, Task} from '@lit-labs/task';
|
|
3
|
-
|
|
4
|
-
import { FunctionDefinition, FunctionResult } from './service-provider/service-provider-model.js';
|
|
5
|
-
import { initController } from './service-provider/service-provider-impl.js';
|
|
6
|
-
|
|
7
|
-
export interface ServiceControllerInput {
|
|
8
|
-
promise: Promise<FunctionResult>,
|
|
9
|
-
func: FunctionDefinition,
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export class ServiceCallController {
|
|
13
|
-
|
|
14
|
-
host: ReactiveControllerHost;
|
|
15
|
-
|
|
16
|
-
private task!: Task;
|
|
17
|
-
|
|
18
|
-
private _callDataPromise!: ServiceControllerInput;
|
|
19
|
-
|
|
20
|
-
constructor(host: ReactiveControllerHost) {
|
|
21
|
-
this.host = host;
|
|
22
|
-
this.task = new Task<[ServiceControllerInput], FunctionResult>(host,
|
|
23
|
-
|
|
24
|
-
async ([callDataPromise]: [ServiceControllerInput]) => {
|
|
25
|
-
if (!callDataPromise) {
|
|
26
|
-
return initialState;
|
|
27
|
-
}
|
|
28
|
-
try {
|
|
29
|
-
const result = await callDataPromise.promise;
|
|
30
|
-
return result as FunctionResult;
|
|
31
|
-
} catch (e) {
|
|
32
|
-
console.error("Error: ", e);
|
|
33
|
-
throw new Error(`Failed call function "${callDataPromise.func.name}"`);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
}, () => [this.callDataPromise]
|
|
37
|
-
|
|
38
|
-
);
|
|
39
|
-
initController(this);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/*
|
|
43
|
-
set callData(value: FunctionParam) {
|
|
44
|
-
this._callData = value;
|
|
45
|
-
this.host.requestUpdate();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
get callData(): FunctionParam { return this._callData; }
|
|
49
|
-
*/
|
|
50
|
-
|
|
51
|
-
set callDataPromise(value: ServiceControllerInput) {
|
|
52
|
-
this._callDataPromise = value;
|
|
53
|
-
this.host.requestUpdate();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
get callDataPromise(): ServiceControllerInput { return this._callDataPromise; }
|
|
57
|
-
|
|
58
|
-
clear() {
|
|
59
|
-
this.task.status = 0;
|
|
60
|
-
this.host.requestUpdate();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// TODO: Type definition FunctionResult do not work, but work in Homepage Project...
|
|
64
|
-
render(renderFunctions: any) {
|
|
65
|
-
return this.task.render(renderFunctions);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from 'firebase/app';
|
|
2
|
-
import { Auth, getAuth, onAuthStateChanged, onIdTokenChanged, signInWithEmailAndPassword, signOut, User } from 'firebase/auth';
|
|
3
|
-
|
|
4
|
-
let auth: Auth;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* During start/load application, initialize functions.
|
|
8
|
-
*
|
|
9
|
-
* @param {*} app - initialized app.
|
|
10
|
-
*/
|
|
11
|
-
export const initAuth = (appParam: FirebaseApp) => {
|
|
12
|
-
auth = getAuth(appParam);
|
|
13
|
-
console.log("App for auth is set: ", auth);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const logout = async (): Promise<boolean> => {
|
|
17
|
-
if (!auth) {
|
|
18
|
-
throw new Error("logout: Auth was not initialized");
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
await signOut(auth);
|
|
22
|
-
return true;
|
|
23
|
-
} catch (error) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export const isAuthenticated = (): boolean => {
|
|
29
|
-
if (!auth) {
|
|
30
|
-
throw new Error("isAuthenticated: Auth was not initialized");
|
|
31
|
-
}
|
|
32
|
-
const authCheck = auth.currentUser !== null;
|
|
33
|
-
console.log("Check auth: ", authCheck);
|
|
34
|
-
return authCheck;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const getAuthUser = (): unknown => {
|
|
38
|
-
if (!auth) {
|
|
39
|
-
throw new Error("isAuthenticated: Auth was not initialized");
|
|
40
|
-
}
|
|
41
|
-
return auth.currentUser;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export const authStateChanged = (callback: Function) => {
|
|
45
|
-
if (!auth) {
|
|
46
|
-
throw new Error("authStateChanged: Auth was not initialized");
|
|
47
|
-
}
|
|
48
|
-
onAuthStateChanged(auth, (user) => callback(user));
|
|
49
|
-
|
|
50
|
-
/* Alter code aus init in pd-spa-helper, hier falsch, noch refactorieren
|
|
51
|
-
if (user) {
|
|
52
|
-
this._user = user;
|
|
53
|
-
if (postLoginFunc) {
|
|
54
|
-
callFunction(postLoginFunc, postLoginFunc.param)
|
|
55
|
-
.then((result:FunctionResult) => {
|
|
56
|
-
this._profile = result.resultData;
|
|
57
|
-
// redirect if login in the meantime is available
|
|
58
|
-
// => else stay on the login page after reload/url navigation
|
|
59
|
-
if (this.route === "login" && postLoginFunc?.redirect) {
|
|
60
|
-
this.navigate(postLoginFunc.redirect);
|
|
61
|
-
}
|
|
62
|
-
// new event, could/should replace redirect
|
|
63
|
-
document.dispatchEvent(new CustomEvent("user-login-event"));
|
|
64
|
-
}).catch(() => {
|
|
65
|
-
if (postLoginFunc?.logoutOnFail) {
|
|
66
|
-
logout();
|
|
67
|
-
this._user = undefined;
|
|
68
|
-
this._profile = undefined;
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
} else {
|
|
72
|
-
this._user = undefined;
|
|
73
|
-
this._profile = undefined;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
*/
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export const authIdTokenStateChanged = (callback: Function) => {
|
|
80
|
-
onIdTokenChanged(auth, (user) => callback(user));
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export const login = async (user:string, sec:string): Promise<User> => {
|
|
84
|
-
if (!auth) {
|
|
85
|
-
throw new Error("login: Auth was not initialized");
|
|
86
|
-
}
|
|
87
|
-
const credentials = await signInWithEmailAndPassword(auth, user, sec);
|
|
88
|
-
return credentials.user;
|
|
89
|
-
}
|
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from 'firebase/app';
|
|
2
|
-
import { FirebaseStorage, FullMetadata, ListResult, StorageReference, UploadResult, deleteObject, getDownloadURL, getMetadata, getStorage, listAll, ref, uploadString } from "firebase/storage";
|
|
3
|
-
|
|
4
|
-
import { FileStorageConfig, StorageDocument, UploadFile } from '../service-provider-model.js';
|
|
5
|
-
import { getUser } from '../service-provider-impl.js';
|
|
6
|
-
|
|
7
|
-
const DEFAULT_STORAGE = "default_storage";
|
|
8
|
-
|
|
9
|
-
const storageMap:Map<string, {
|
|
10
|
-
storage: FirebaseStorage,
|
|
11
|
-
references?: {
|
|
12
|
-
key: string,
|
|
13
|
-
storageRef: StorageReference
|
|
14
|
-
}[],
|
|
15
|
-
}> = new Map();
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* During start/load application, initialize functions.
|
|
19
|
-
*
|
|
20
|
-
* @param {*} app - initialized app.
|
|
21
|
-
*/
|
|
22
|
-
export const initFirestorage = (
|
|
23
|
-
app: FirebaseApp,
|
|
24
|
-
defaultStorage?: string,
|
|
25
|
-
storageConfig?: FileStorageConfig
|
|
26
|
-
) => {
|
|
27
|
-
try {
|
|
28
|
-
|
|
29
|
-
// add default storage
|
|
30
|
-
if (defaultStorage) {
|
|
31
|
-
storageMap.set(DEFAULT_STORAGE, {
|
|
32
|
-
storage: getStorage(app)
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// add specific storages
|
|
37
|
-
storageConfig?.storage.forEach(storeConfig => {
|
|
38
|
-
|
|
39
|
-
const storage = getStorage(app, storeConfig.name);
|
|
40
|
-
const storageRootRef = ref(storage);
|
|
41
|
-
|
|
42
|
-
storageMap.set(storeConfig.name, {
|
|
43
|
-
storage,
|
|
44
|
-
references: [
|
|
45
|
-
{
|
|
46
|
-
key: "ROOT",
|
|
47
|
-
storageRef: storageRootRef
|
|
48
|
-
},
|
|
49
|
-
...storeConfig.references.map(refConfigString => ({
|
|
50
|
-
key: refConfigString,
|
|
51
|
-
storageRef: ref(storageRootRef, refConfigString)
|
|
52
|
-
}))
|
|
53
|
-
]
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
} catch (error) {
|
|
58
|
-
console.error(error);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export const uploadFirestorageFile = (file: UploadFile):Promise<UploadResult> => {
|
|
63
|
-
|
|
64
|
-
if (!storageMap || storageMap.size === 0) {
|
|
65
|
-
throw new Error("No storage is configured");
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// get storage
|
|
69
|
-
const {storageName, referenceKey, subFolderName, fileName} = file;
|
|
70
|
-
const storageConf = storageMap.get(storageName || DEFAULT_STORAGE);
|
|
71
|
-
if (!storageConf ) {
|
|
72
|
-
throw new Error(`Invalid storage name: ${storageName || DEFAULT_STORAGE}`);
|
|
73
|
-
}
|
|
74
|
-
if (!storageConf.references || storageConf.references.length === 0) {
|
|
75
|
-
throw new Error(`No references configured for storage: ${storageName || DEFAULT_STORAGE}`);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// get reference to path
|
|
79
|
-
const uploadRefConf = referenceKey ? (storageConf.references.filter(filterRef => filterRef.key === referenceKey)[0]) : storageConf.references[0];
|
|
80
|
-
if (!uploadRefConf || !uploadRefConf.storageRef) {
|
|
81
|
-
throw new Error(`No valid reference for key: ${referenceKey}`);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// create file reference and upload
|
|
85
|
-
const fileRef = ref(uploadRefConf.storageRef, subFolderName ? `${subFolderName}/${fileName}` : fileName);
|
|
86
|
-
|
|
87
|
-
// default usefull metadata: contentType, size, timeCreated, updated
|
|
88
|
-
|
|
89
|
-
// additional custom metadata
|
|
90
|
-
const metadata = {
|
|
91
|
-
customMetadata: {
|
|
92
|
-
'creator': (getUser() as any)?.displayName,
|
|
93
|
-
'comment': file.description,
|
|
94
|
-
'name': file.descriptionName,
|
|
95
|
-
'readonly': file.readonly ? "true" : "false",
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
return uploadString(fileRef, file.base64DataURL, 'data_url', metadata);
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
const fetchItemsAndFolders = async (
|
|
103
|
-
usedRef: StorageReference,
|
|
104
|
-
storageName: string,
|
|
105
|
-
refKey: string,
|
|
106
|
-
includeMetaData = false,
|
|
107
|
-
includeFolder = false
|
|
108
|
-
): Promise<StorageDocument[]> => {
|
|
109
|
-
try {
|
|
110
|
-
const itemRefs: StorageDocument[] = [];
|
|
111
|
-
const metaPromises: Promise<FullMetadata>[] = [];
|
|
112
|
-
|
|
113
|
-
// Hole alle Items und Folder direkt unter `usedRef`
|
|
114
|
-
const res: ListResult = await listAll(usedRef);
|
|
115
|
-
|
|
116
|
-
// Hilfsfunktion zur Verarbeitung der Metadaten
|
|
117
|
-
const processMetadata = (item: StorageDocument, metadata: FullMetadata): StorageDocument => ({
|
|
118
|
-
...item,
|
|
119
|
-
creation: new Date(metadata.timeCreated),
|
|
120
|
-
documentType: metadata.contentType,
|
|
121
|
-
creator: metadata.customMetadata?.creator,
|
|
122
|
-
descriptionName: metadata.customMetadata?.name,
|
|
123
|
-
description: metadata.customMetadata?.comment,
|
|
124
|
-
size: metadata.size,
|
|
125
|
-
readonly: metadata.customMetadata?.readonly === "true",
|
|
126
|
-
metaData: metadata
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
// 1. Items direkt im usedRef-Ordner verarbeiten
|
|
130
|
-
res.items.forEach((itemRef) => {
|
|
131
|
-
itemRefs.push({
|
|
132
|
-
fileName: itemRef.name,
|
|
133
|
-
filePath: itemRef.fullPath,
|
|
134
|
-
storageName,
|
|
135
|
-
refKey
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
// Erzeuge die Metadaten-Promises direkt, wenn `includeMetaData` aktiv ist
|
|
139
|
-
if (includeMetaData) {
|
|
140
|
-
metaPromises.push(getMetadata(itemRef));
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
// 2. Verarbeite alle Ordner direkt unter usedRef, falls includeFolder gesetzt ist
|
|
145
|
-
if (includeFolder) {
|
|
146
|
-
await Promise.all(
|
|
147
|
-
res.prefixes.map(async (folderRef) => {
|
|
148
|
-
const folderRes = await listAll(folderRef);
|
|
149
|
-
folderRes.items.forEach((subItemRef) => {
|
|
150
|
-
itemRefs.push({
|
|
151
|
-
fileName: subItemRef.name,
|
|
152
|
-
filePath: subItemRef.fullPath,
|
|
153
|
-
storageName,
|
|
154
|
-
refKey,
|
|
155
|
-
subFolderName: folderRef.name
|
|
156
|
-
});
|
|
157
|
-
|
|
158
|
-
// Erzeuge Metadaten-Promises für die Ordner-Inhalte, wenn `includeMetaData` aktiv ist
|
|
159
|
-
if (includeMetaData) {
|
|
160
|
-
metaPromises.push(getMetadata(subItemRef));
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
})
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// 3. Falls `includeMetaData`, warte auf alle Metadaten und ordne sie den `itemRefs` zu
|
|
168
|
-
if (includeMetaData) {
|
|
169
|
-
const metaResults = await Promise.all(metaPromises);
|
|
170
|
-
return itemRefs.map((item, index) => processMetadata(item, metaResults[index]));
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return itemRefs; // Rückgabe ohne Metadaten, falls nicht angefordert
|
|
174
|
-
} catch (error) {
|
|
175
|
-
console.error("Error during file and folder listing:", error);
|
|
176
|
-
throw error;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// Funktion, um `StorageDocument` von einer `storageURI` zu erstellen
|
|
181
|
-
export const getFirestorageFile = async (
|
|
182
|
-
storageName: string,
|
|
183
|
-
refKey:string,
|
|
184
|
-
storageURI: string,
|
|
185
|
-
includeMetaData = false
|
|
186
|
-
): Promise<StorageDocument> => {
|
|
187
|
-
try {
|
|
188
|
-
|
|
189
|
-
if (!storageMap || storageMap.size === 0) {
|
|
190
|
-
throw new Error("No storage is configured");
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// get storage
|
|
194
|
-
const storageConf = storageMap.get(storageName);
|
|
195
|
-
if (!storageConf ) {
|
|
196
|
-
throw new Error(`Invalid storage name: ${storageName}`);
|
|
197
|
-
}
|
|
198
|
-
const storageRef = ref(storageConf.storage, storageURI);
|
|
199
|
-
|
|
200
|
-
// Basis-StorageDocument ohne Metadaten
|
|
201
|
-
const storageDocument: StorageDocument = {
|
|
202
|
-
fileName: storageRef.name,
|
|
203
|
-
filePath: storageRef.fullPath,
|
|
204
|
-
storageName,
|
|
205
|
-
refKey,
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
// Falls Metadaten angefordert, lade und füge sie hinzu
|
|
209
|
-
if (includeMetaData) {
|
|
210
|
-
const metadata = await getMetadata(storageRef);
|
|
211
|
-
|
|
212
|
-
return {
|
|
213
|
-
...storageDocument,
|
|
214
|
-
creation: new Date(metadata.timeCreated),
|
|
215
|
-
documentType: metadata.contentType,
|
|
216
|
-
creator: metadata.customMetadata?.creator,
|
|
217
|
-
descriptionName: metadata.customMetadata?.name,
|
|
218
|
-
description: metadata.customMetadata?.comment,
|
|
219
|
-
size: metadata.size,
|
|
220
|
-
readonly: metadata.customMetadata?.readonly === "true",
|
|
221
|
-
metaData: metadata
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
return storageDocument; // Rückgabe ohne Metadaten
|
|
226
|
-
} catch (error) {
|
|
227
|
-
console.error("Error creating StorageDocument:", error);
|
|
228
|
-
throw error;
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
export const getFirestorageFileList = (
|
|
233
|
-
storageName: string,
|
|
234
|
-
refKey: string,
|
|
235
|
-
subFolder?: string,
|
|
236
|
-
includeMetaData?: boolean
|
|
237
|
-
):Promise<StorageDocument[]> => {
|
|
238
|
-
|
|
239
|
-
if (!storageMap || storageMap.size === 0) {
|
|
240
|
-
throw new Error("No storage is configured");
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// get storage
|
|
244
|
-
const storageConf = storageMap.get(storageName);
|
|
245
|
-
if (!storageConf ) {
|
|
246
|
-
throw new Error(`Invalid storage name: ${storageName}`);
|
|
247
|
-
}
|
|
248
|
-
if (!storageConf.references || storageConf.references.length === 0) {
|
|
249
|
-
throw new Error(`No references configured for storage: ${storageName || DEFAULT_STORAGE}`);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// get refrence
|
|
253
|
-
const storageRef = storageConf.references.filter(refIt => refIt.key === refKey)[0];
|
|
254
|
-
if (!storageRef) {
|
|
255
|
-
throw new Error(`No reference available for storage: ${storageName || DEFAULT_STORAGE} and ref: ${refKey}`);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
const usedRef = subFolder ? ref(storageRef.storageRef, subFolder) : storageRef.storageRef;
|
|
259
|
-
return fetchItemsAndFolders(usedRef, storageName, refKey, includeMetaData, true);
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
export const downloadFileFirestorage = (file: StorageDocument) => {
|
|
264
|
-
|
|
265
|
-
if (!storageMap || storageMap.size === 0) {
|
|
266
|
-
throw new Error("No storage is configured");
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// get storage
|
|
270
|
-
const storageConf = storageMap.get(file.storageName);
|
|
271
|
-
if (!storageConf ) {
|
|
272
|
-
throw new Error(`Invalid storage name: ${file.storageName}`);
|
|
273
|
-
}
|
|
274
|
-
const usedRef = ref(storageConf.storage, file.filePath);
|
|
275
|
-
return getDownloadURL(usedRef);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Löscht eine Datei in Firebase Storage basierend auf den Informationen im StorageDocument.
|
|
280
|
-
*
|
|
281
|
-
* @param deleteFile - Das StorageDocument-Objekt, das die zu löschende Datei beschreibt.
|
|
282
|
-
* @returns Ein Promise, das erfüllt wird, wenn die Datei gelöscht wurde, oder abgelehnt wird, wenn ein Fehler auftritt.
|
|
283
|
-
*/
|
|
284
|
-
export async function deleteFirestorageDocument(deleteFile: StorageDocument): Promise<void> {
|
|
285
|
-
if (!deleteFile.filePath) {
|
|
286
|
-
throw new Error("File path is required to delete a document.");
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
// Hole die Storage-Konfiguration basierend auf dem storageName
|
|
290
|
-
const storageConf = storageMap.get(deleteFile.storageName);
|
|
291
|
-
if (!storageConf) {
|
|
292
|
-
throw new Error(`Invalid storage name: ${deleteFile.storageName}`);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
// Erstelle eine Referenz zur Datei in Firebase Storage
|
|
296
|
-
const deleteRef = ref(storageConf.storage, deleteFile.filePath);
|
|
297
|
-
|
|
298
|
-
try {
|
|
299
|
-
// Lösche die Datei
|
|
300
|
-
await deleteObject(deleteRef);
|
|
301
|
-
console.log(`File ${deleteFile.fileName} successfully deleted.`);
|
|
302
|
-
} catch (error) {
|
|
303
|
-
console.error("Error deleting file:", error);
|
|
304
|
-
throw error;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
/* Firestorage Error List: https://firebase.google.com/docs/storage/web/handle-errors */
|
|
310
|
-
/*
|
|
311
|
-
storage/unknown An unknown error occurred.
|
|
312
|
-
storage/object-not-found No object exists at the desired reference.
|
|
313
|
-
storage/bucket-not-found No bucket is configured for Cloud Storage
|
|
314
|
-
storage/project-not-found No project is configured for Cloud Storage
|
|
315
|
-
storage/quota-exceeded Quota on your Cloud Storage bucket has been exceeded. If you're on the no-cost tier, upgrade to a paid plan. If you're on a paid plan, reach out to Firebase support.
|
|
316
|
-
storage/unauthenticated User is unauthenticated, please authenticate and try again.
|
|
317
|
-
storage/unauthorized User is not authorized to perform the desired action, check your security rules to ensure they are correct.
|
|
318
|
-
storage/retry-limit-exceeded The maximum time limit on an operation (upload, download, delete, etc.) has been excceded. Try uploading again.
|
|
319
|
-
storage/invalid-checksum File on the client does not match the checksum of the file received by the server. Try uploading again.
|
|
320
|
-
storage/canceled User canceled the operation.
|
|
321
|
-
storage/invalid-event-name Invalid event name provided. Must be one of [`running`, `progress`, `pause`]
|
|
322
|
-
storage/invalid-url Invalid URL provided to refFromURL(). Must be of the form: gs://bucket/object or https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
|
|
323
|
-
storage/invalid-argument The argument passed to put() must be `File`, `Blob`, or `UInt8` Array. The argument passed to putString() must be a raw, `Base64`, or `Base64URL` string.
|
|
324
|
-
storage/no-default-bucket No bucket has been set in your config's storageBucket property.
|
|
325
|
-
storage/cannot-slice-blob Commonly occurs when the local file has changed (deleted, saved again, etc.). Try uploading again after verifying that the file hasn't changed.
|
|
326
|
-
storage/server-file-wrong-size
|
|
327
|
-
*/
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from 'firebase/app';
|
|
2
|
-
import {collection, Firestore, getFirestore, onSnapshot, query, QueryConstraint, where} from 'firebase/firestore';
|
|
3
|
-
import { CollectionContraint } from '../service-provider-model';
|
|
4
|
-
// import { getAuth } from 'firebase/auth';
|
|
5
|
-
|
|
6
|
-
let db:Firestore;
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* During start/load application, initialize functions.
|
|
10
|
-
*
|
|
11
|
-
* @param {*} app - initialized app.
|
|
12
|
-
*/
|
|
13
|
-
export const initFirestore = (app: FirebaseApp) => {
|
|
14
|
-
try {
|
|
15
|
-
// init db access
|
|
16
|
-
db = getFirestore(app);
|
|
17
|
-
} catch (error) {
|
|
18
|
-
console.error(error);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export const getDB = ():Firestore => db;
|
|
23
|
-
|
|
24
|
-
export const getFirebaseCollectionListener = (
|
|
25
|
-
callback: Function,
|
|
26
|
-
col: string,
|
|
27
|
-
constraints?:CollectionContraint[]
|
|
28
|
-
) => {
|
|
29
|
-
const queryConstraints:QueryConstraint[] =
|
|
30
|
-
(constraints || []).map(constraint => {
|
|
31
|
-
if (constraint.type === "where") {
|
|
32
|
-
return where(constraint.field, constraint.operator, constraint.value)
|
|
33
|
-
}
|
|
34
|
-
throw new Error(`Unkown constraint type: ${constraint.type}`);
|
|
35
|
-
});
|
|
36
|
-
const q = query(collection(db, col), ...queryConstraints);
|
|
37
|
-
return onSnapshot(q, (querySnapshot) => callback(querySnapshot));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from "firebase/app";
|
|
2
|
-
import { getFunctions, HttpsCallable, httpsCallable } from "firebase/functions";
|
|
3
|
-
import { FunctionDefinition, FunctionResult, FunctionsConfig } from "../service-provider-model.js";
|
|
4
|
-
|
|
5
|
-
const functionMap = new Map<FunctionDefinition, HttpsCallable>;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* During start/load application, initialize functions.
|
|
9
|
-
*
|
|
10
|
-
* @param {*} app - initialized app.
|
|
11
|
-
*/
|
|
12
|
-
export const initFunctions = (app: FirebaseApp, functionsConfig: FunctionsConfig) => {
|
|
13
|
-
try {
|
|
14
|
-
// Initialize cloud functions through Firebase
|
|
15
|
-
const functions = getFunctions(app, functionsConfig.region);
|
|
16
|
-
|
|
17
|
-
// Initialize functions map
|
|
18
|
-
functionsConfig.functions.forEach(func => {
|
|
19
|
-
functionMap.set(func, httpsCallable(functions, func.name));
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
} catch (error) {
|
|
23
|
-
console.error("ToDo: Error programmieren...", error);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const internalCallFunction = async (def: FunctionDefinition, functionInput: any): Promise<FunctionResult> => {
|
|
28
|
-
const funcRef = functionMap.get(def);
|
|
29
|
-
if (funcRef) {
|
|
30
|
-
const funcResult:any = await funcRef(functionInput);
|
|
31
|
-
if (funcResult
|
|
32
|
-
&& funcResult.data && def.successCodes.includes(funcResult.data.statusCode)) {
|
|
33
|
-
return funcResult.data as FunctionResult;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (funcResult && funcResult.data) {
|
|
37
|
-
throw new Error(`Error: ${funcResult.data.statusCode} - ${funcResult.data.resultData}`);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/*
|
|
41
|
-
const ne = new Error("Invalid result");
|
|
42
|
-
if (result.data) {
|
|
43
|
-
// Read result of the Cloud Function.
|
|
44
|
-
switch (result.data.statusCode) {
|
|
45
|
-
case 200:
|
|
46
|
-
return resolve(result.data.projects);
|
|
47
|
-
default:
|
|
48
|
-
ne.data = result.data;
|
|
49
|
-
return reject(ne);
|
|
50
|
-
}
|
|
51
|
-
} else {
|
|
52
|
-
return reject(ne);
|
|
53
|
-
}
|
|
54
|
-
})
|
|
55
|
-
.catch((error) => {
|
|
56
|
-
// Getting the Error details.
|
|
57
|
-
const {code} = error;
|
|
58
|
-
const {message} = error;
|
|
59
|
-
const {details} = error;
|
|
60
|
-
|
|
61
|
-
console.warn("Error occured: ", code, message, details);
|
|
62
|
-
console.warn("Error: ", error);
|
|
63
|
-
return reject(error);
|
|
64
|
-
})
|
|
65
|
-
*/
|
|
66
|
-
}
|
|
67
|
-
console.log("No function available for ", def.name);
|
|
68
|
-
throw new Error("Illegal state, no data with right state available");
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export const callFunction = async (def: FunctionDefinition, functionInput: any): Promise<FunctionResult> =>
|
|
72
|
-
internalCallFunction(def, functionInput);
|
|
73
|
-
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from "firebase/app";
|
|
2
|
-
import { getMessaging, getToken, Messaging } from "firebase/messaging";
|
|
3
|
-
import { User } from "firebase/auth";
|
|
4
|
-
|
|
5
|
-
import { MessagingConfig } from "../service-provider-model.js";
|
|
6
|
-
import { update, USER_COLLECTION } from '../../store/indexDB.js';
|
|
7
|
-
|
|
8
|
-
import { pdStore } from "../../store/mini-rx.store.js";
|
|
9
|
-
import { updateNewNotificationToken } from "../../store/spa-app-actions.js";
|
|
10
|
-
import { authIdTokenStateChanged } from "./auth.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export const NOTIFICATION_TOKEN = "pd.spa.helper.notification.token";
|
|
14
|
-
|
|
15
|
-
let messaging: Messaging;
|
|
16
|
-
let firebaseMessagingAppConfigKey: MessagingConfig;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
export function prepareMessaging(
|
|
20
|
-
app: FirebaseApp,
|
|
21
|
-
messageConfig: MessagingConfig
|
|
22
|
-
) {
|
|
23
|
-
messaging = getMessaging(app);
|
|
24
|
-
firebaseMessagingAppConfigKey = messageConfig;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export const activateTokenChangeHandler = (appName:string) => {
|
|
28
|
-
authIdTokenStateChanged(async (user:User) => {
|
|
29
|
-
if (user) {
|
|
30
|
-
const token = await user.getIdToken();
|
|
31
|
-
if (token) {
|
|
32
|
-
await update(USER_COLLECTION, {
|
|
33
|
-
id: appName,
|
|
34
|
-
userNameToken: user.displayName,
|
|
35
|
-
userIdToken: token,
|
|
36
|
-
});
|
|
37
|
-
console.log('UserToken stored in local db');
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const initMessageToken = async (
|
|
44
|
-
registration: ServiceWorkerRegistration
|
|
45
|
-
) => {
|
|
46
|
-
|
|
47
|
-
if (!messaging || !firebaseMessagingAppConfigKey || !registration) {
|
|
48
|
-
throw new Error("Messaging, Registration or Key not available");
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// get token from cache or network
|
|
52
|
-
const currentToken = await getToken(
|
|
53
|
-
messaging,
|
|
54
|
-
{
|
|
55
|
-
vapidKey: firebaseMessagingAppConfigKey.apidKey,
|
|
56
|
-
serviceWorkerRegistration: registration
|
|
57
|
-
}
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
if (currentToken) {
|
|
61
|
-
const storedToken = localStorage.getItem(NOTIFICATION_TOKEN);
|
|
62
|
-
if (storedToken !== currentToken) {
|
|
63
|
-
console.log("Update new token in Backend");
|
|
64
|
-
pdStore().dispatch(updateNewNotificationToken({
|
|
65
|
-
messagingToken: currentToken
|
|
66
|
-
}));
|
|
67
|
-
} else {
|
|
68
|
-
console.log("RegisterDevice: Stored token is valid");
|
|
69
|
-
}
|
|
70
|
-
} else {
|
|
71
|
-
console.warn("No token received - no new token was generated.");
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
export const registerDevice = async (
|
|
77
|
-
registration: ServiceWorkerRegistration
|
|
78
|
-
) => {
|
|
79
|
-
|
|
80
|
-
console.log("Start registering app for messages and notifications");
|
|
81
|
-
|
|
82
|
-
// Noch keine Berechtigung erteilt, diese vom Benutzer abfragen
|
|
83
|
-
if (Notification.permission === "default") {
|
|
84
|
-
// TODO: Manually triggered with user information
|
|
85
|
-
await Notification.requestPermission();
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Berechtigung erteilt, Gerät für messaging registrieren
|
|
89
|
-
if (Notification.permission === "granted") {
|
|
90
|
-
// FCM-Token abrufen, wenn online oder lokal verfügbar
|
|
91
|
-
await initMessageToken(registration);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Keine Berechtigung erteilt
|
|
95
|
-
if (Notification.permission === "denied") {
|
|
96
|
-
console.warn("Messaging not possible, missing rights");
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
export const getFirebaseMessaging = () => messaging;
|