@progressive-development/pd-spa-helper 0.1.85 → 0.1.87
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/src/InitApplicationData.d.ts +1 -1
- package/dist/src/InitApplicationData.js +2 -2
- package/dist/src/InitApplicationData.js.map +1 -1
- package/dist/src/PdSpaHelper.d.ts +8 -4
- package/dist/src/PdSpaHelper.js +19 -36
- package/dist/src/PdSpaHelper.js.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/service-call-controller2.d.ts +1 -1
- package/dist/src/service-call-controller2.js +1 -1
- package/dist/src/service-call-controller2.js.map +1 -1
- package/dist/src/service-provider/firebase/auth.d.ts +5 -0
- package/dist/src/service-provider/firebase/auth.js +48 -0
- package/dist/src/service-provider/firebase/auth.js.map +1 -0
- package/dist/src/service-provider/firebase/firestore-client.d.ts +9 -0
- package/dist/src/service-provider/firebase/firestore-client.js +19 -0
- package/dist/src/service-provider/firebase/firestore-client.js.map +1 -0
- package/dist/src/service-provider/firebase/functions-client.d.ts +34 -0
- package/dist/src/service-provider/firebase/functions-client.js +70 -0
- package/dist/src/service-provider/firebase/functions-client.js.map +1 -0
- package/dist/src/service-provider/mock/auth.d.ts +4 -0
- package/dist/src/service-provider/mock/auth.js +50 -0
- package/dist/src/service-provider/mock/auth.js.map +1 -0
- package/dist/src/service-provider/service-provider-impl.d.ts +6 -0
- package/dist/src/service-provider/service-provider-impl.js +56 -0
- package/dist/src/service-provider/service-provider-impl.js.map +1 -0
- package/dist/src/tmpown/pd-login.js +2 -2
- package/dist/src/tmpown/pd-login.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/InitApplicationData.ts +2 -2
- package/src/PdSpaHelper.ts +33 -41
- package/src/index.ts +6 -6
- package/src/service-call-controller2.ts +1 -1
- package/src/service-provider/firebase/auth.ts +52 -0
- package/src/{firebase → service-provider/firebase}/functions-client.ts +1 -1
- package/src/service-provider/mock/auth.ts +68 -0
- package/src/service-provider/service-provider-impl.ts +68 -0
- package/src/tmpown/pd-login.ts +3 -2
- package/src/firebase/auth.ts +0 -30
- /package/src/{firebase → service-provider/firebase}/firestore-client.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions-client.js","sourceRoot":"","sources":["../../../../src/service-provider/firebase/functions-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAiB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgChF,MAAM,WAAW,GAAG,IAAI,GAAsC,CAAC;AAC/D,IAAI,UAAiC,CAAC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAgB,EAAE,eAAgC,EAAE,EAAE;IAClF,IAAI;QACA,8CAA8C;QAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAE5D,2BAA2B;QAC3B,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;KAEN;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;KACxD;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,eAAsC,EAAE,EAAE;IACvE,UAAU,GAAG,eAAe,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAuB,EAAE,aAAkB,EAA2B,EAAE;IAC1G,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,OAAO,EAAE;QACX,MAAM,UAAU,GAAO,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,UAAU;eACP,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC/E,OAAO,UAAU,CAAC,IAAsB,CAAC;SAC1C;QACD;;;;;;;;;;;;;;;;;;;;;;;;;UAyBE;KACH;IACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAuB,EAAE,aAAkB,EAA2B,EAAE;IACzG,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,eAAe,GAAG,EAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC;KACnD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAA","sourcesContent":["import { FirebaseApp } from \"firebase/app\";\nimport { getFunctions, HttpsCallable, httpsCallable } from \"firebase/functions\";\nimport { TemplateResult } from \"lit\";\nimport { ServiceCallController } from \"../../service-call-controller2.js\";\n\nexport interface FunctionDefinition {\n name: string,\n successCodes: Array<Number>, \n // Fade window during function call (true) or show only background infos (false).\n fadeWindow: boolean,\n successTxt: TemplateResult,\n pendingTxt: TemplateResult,\n param?: any,\n redirect?: string,\n logoutOnFail?: boolean\n}\n\nexport interface FunctionParam {\n func: FunctionDefinition,\n inputData: any,\n}\n\nexport interface FunctionResult {\n resultData: unknown,\n statusCode: number,\n}\n\nexport interface FunctionsConfig {\n region: string, // 'europe-west3'\n functions: Array<FunctionDefinition>,\n postLoginFunc?: FunctionDefinition,\n}\n\nconst functionMap = new Map<FunctionDefinition, HttpsCallable>;\nlet controller: ServiceCallController;\n\n/**\n * During start/load application, initialize functions. \n * \n * @param {*} app - initialized app. \n */\nexport const initFunctions = (app: FirebaseApp, functionsConfig: FunctionsConfig) => {\n try {\n // Initialize cloud functions through Firebase\n const functions = getFunctions(app, functionsConfig.region);\n\n // Initialize functions map\n functionsConfig.functions.forEach(func => {\n functionMap.set(func, httpsCallable(functions, func.name));\n });\n\n } catch (error) {\n console.error(\"ToDo: Error programmieren...\", error);\n }\n}\n\nexport const initController = (controllerParam: ServiceCallController) => {\n controller = controllerParam\n}\n\nconst internalCallFunction = async (def: FunctionDefinition, functionInput: any): Promise<FunctionResult> => {\n const funcRef = functionMap.get(def); \n if (funcRef) { \n const funcResult:any = await funcRef(functionInput);\n if (funcResult \n && funcResult.data && def.successCodes.includes(funcResult.data.statusCode)) {\n return funcResult.data as FunctionResult;\n }\n /*\n const ne = new Error(\"Invalid result\");\n if (result.data) {\n // Read result of the Cloud Function. \n switch (result.data.statusCode) {\n case 200:\n return resolve(result.data.projects);\n default:\n ne.data = result.data;\n return reject(ne);\n }\n } else {\n return reject(ne);\n }\n })\n .catch((error) => {\n // Getting the Error details.\n const {code} = error;\n const {message} = error;\n const {details} = error;\n\n console.warn(\"Error occured: \", code, message, details);\n console.warn(\"Error: \", error);\n return reject(error);\n })\n */\n } \n console.log(\"No function available for \", def.name);\n throw new Error(\"Illegal state, no data with right state available\");\n}\n\nexport const callFunction = async (def: FunctionDefinition, functionInput: any): Promise<FunctionResult> => {\n const promise = internalCallFunction(def, functionInput);\n if (controller) {\n controller.callDataPromise = {func: def, promise};\n }\n return promise;\n}"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Only for temporary development:
|
|
3
|
+
* Set to true/false if the user should hold only in session (login after each reload)
|
|
4
|
+
* or in the localstore (login until the local store entry is invalid or not available).
|
|
5
|
+
*/
|
|
6
|
+
const LOCALSTORE_ACTIV = true;
|
|
7
|
+
const LOCALSTORE_ITEM_KEY = 'pdUserLogin';
|
|
8
|
+
const HARDCODED_USER = 'mock';
|
|
9
|
+
const HARDCODED_PWD = 'mock';
|
|
10
|
+
let loginAvailable;
|
|
11
|
+
const checkLocalStore = () => {
|
|
12
|
+
const userItem = localStorage.getItem(LOCALSTORE_ITEM_KEY);
|
|
13
|
+
return userItem === 'true';
|
|
14
|
+
};
|
|
15
|
+
export const logoutMock = async () => {
|
|
16
|
+
console.log("Do MOCK logout");
|
|
17
|
+
loginAvailable = undefined;
|
|
18
|
+
if (LOCALSTORE_ACTIV) {
|
|
19
|
+
localStorage.removeItem(LOCALSTORE_ITEM_KEY);
|
|
20
|
+
}
|
|
21
|
+
return Promise.resolve(true);
|
|
22
|
+
};
|
|
23
|
+
export const isAuthenticatedMock = () => {
|
|
24
|
+
if (loginAvailable === undefined) {
|
|
25
|
+
console.log('MOCK: check authentication');
|
|
26
|
+
loginAvailable = LOCALSTORE_ACTIV ? checkLocalStore() : false;
|
|
27
|
+
}
|
|
28
|
+
return loginAvailable;
|
|
29
|
+
};
|
|
30
|
+
export const authStateChangedMock = (callback) => {
|
|
31
|
+
console.log("Not implemented for MOCK");
|
|
32
|
+
};
|
|
33
|
+
export const loginMock = async (user, sec) => {
|
|
34
|
+
console.log('MOCK: do authentication for user: ', user);
|
|
35
|
+
let valid = false;
|
|
36
|
+
if (user === HARDCODED_USER && sec === HARDCODED_PWD) {
|
|
37
|
+
if (LOCALSTORE_ACTIV) {
|
|
38
|
+
localStorage.setItem(LOCALSTORE_ITEM_KEY, 'true');
|
|
39
|
+
}
|
|
40
|
+
valid = true;
|
|
41
|
+
loginAvailable = true;
|
|
42
|
+
}
|
|
43
|
+
if (valid) {
|
|
44
|
+
return Promise.resolve({
|
|
45
|
+
uid: "123124"
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
throw new Error("Invalid login");
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/service-provider/mock/auth.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,aAAa,GAAG,MAAM,CAAC;AAI7B,IAAI,cAAmC,CAAC;AAGxC,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,QAAQ,GAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5D,OAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAAsB,EAAE;IACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,cAAc,GAAG,SAAS,CAAC;IAC3B,IAAI,gBAAgB,EAAE;QAClB,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;KAChD;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IAC/C,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;KAC/D;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAE,EAAE;IACzD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAW,EAAE,GAAU,EAAoB,EAAE;IAE3E,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,KAAK,cAAc,IAAI,GAAG,KAAK,aAAa,EAAE;QAClD,IAAI,gBAAgB,EAAE;YAClB,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;SACrD;QACD,KAAK,GAAG,IAAI,CAAC;QACb,cAAc,GAAG,IAAI,CAAC;KACzB;IAED,IAAI,KAAK,EAAE;QACT,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AACnC,CAAC,CAAA","sourcesContent":["\n/*\n * Only for temporary development:\n * Set to true/false if the user should hold only in session (login after each reload)\n * or in the localstore (login until the local store entry is invalid or not available).\n */\nconst LOCALSTORE_ACTIV = true;\nconst LOCALSTORE_ITEM_KEY = 'pdUserLogin';\nconst HARDCODED_USER = 'mock';\nconst HARDCODED_PWD = 'mock';\n\n\n\nlet loginAvailable: boolean | undefined;\n\n\nconst checkLocalStore = () => {\n const userItem = localStorage.getItem(LOCALSTORE_ITEM_KEY);\n return userItem === 'true';\n}\n\n\nexport const logoutMock = async (): Promise<boolean> => {\n console.log(\"Do MOCK logout\");\n loginAvailable = undefined;\n if (LOCALSTORE_ACTIV) {\n localStorage.removeItem(LOCALSTORE_ITEM_KEY);\n }\n return Promise.resolve(true);\n};\n\nexport const isAuthenticatedMock = (): boolean => {\n if (loginAvailable === undefined) {\n console.log('MOCK: check authentication');\n loginAvailable = LOCALSTORE_ACTIV ? checkLocalStore() : false;\n }\n return loginAvailable;\n} \n\n\nexport const authStateChangedMock = (callback: Function) => {\n console.log(\"Not implemented for MOCK\");\n}\n\nexport const loginMock = async (user:string, sec:string): Promise<unknown> => { \n\n console.log('MOCK: do authentication for user: ', user);\n let valid = false;\n if (user === HARDCODED_USER && sec === HARDCODED_PWD) {\n if (LOCALSTORE_ACTIV) {\n localStorage.setItem(LOCALSTORE_ITEM_KEY, 'true');\n }\n valid = true;\n loginAvailable = true;\n }\n\n if (valid) {\n return Promise.resolve({\n uid: \"123124\"\n }); \n }\n \n throw new Error(\"Invalid login\");\n}\n\n\n\n\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ServiceProviderConfiguration } from "../PdSpaHelper.js";
|
|
2
|
+
export declare const setServiceProvider: (providerParam?: ServiceProviderConfiguration) => void;
|
|
3
|
+
export declare const authStateChangedImpl: (callback: Function) => void;
|
|
4
|
+
export declare const isAuthenticatedImpl: () => boolean;
|
|
5
|
+
export declare const loginImpl: (user: string, sec: string) => Promise<unknown>;
|
|
6
|
+
export declare const logoutImpl: () => Promise<boolean>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { authStateChanged, isAuthenticated, login, logout } from "./firebase/auth.js";
|
|
2
|
+
import { authStateChangedMock, isAuthenticatedMock, loginMock, logoutMock } from "./mock/auth.js";
|
|
3
|
+
let provider;
|
|
4
|
+
const throwUndefinedProviderError = () => {
|
|
5
|
+
throw new Error("Undefined service provider, please check configuration. 'firebase' or 'mock' allowed here.");
|
|
6
|
+
};
|
|
7
|
+
export const setServiceProvider = (providerParam) => {
|
|
8
|
+
provider = providerParam;
|
|
9
|
+
};
|
|
10
|
+
export const authStateChangedImpl = (callback) => {
|
|
11
|
+
if (provider === "firebase") {
|
|
12
|
+
authStateChanged(callback);
|
|
13
|
+
}
|
|
14
|
+
else if (provider === "mock") {
|
|
15
|
+
authStateChangedMock(callback);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
throwUndefinedProviderError();
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export const isAuthenticatedImpl = () => {
|
|
22
|
+
if (provider === "firebase") {
|
|
23
|
+
return isAuthenticated();
|
|
24
|
+
}
|
|
25
|
+
if (provider === "mock") {
|
|
26
|
+
return isAuthenticatedMock();
|
|
27
|
+
}
|
|
28
|
+
return throwUndefinedProviderError();
|
|
29
|
+
};
|
|
30
|
+
export const loginImpl = (user, sec) => {
|
|
31
|
+
if (!user) {
|
|
32
|
+
const returnError = new Error("empty user");
|
|
33
|
+
return Promise.reject(returnError);
|
|
34
|
+
}
|
|
35
|
+
if (!sec) {
|
|
36
|
+
const returnError = new Error("empty password");
|
|
37
|
+
return Promise.reject(returnError);
|
|
38
|
+
}
|
|
39
|
+
if (provider === "firebase") {
|
|
40
|
+
return login(user, sec);
|
|
41
|
+
}
|
|
42
|
+
if (provider === "mock") {
|
|
43
|
+
return loginMock(user, sec);
|
|
44
|
+
}
|
|
45
|
+
return throwUndefinedProviderError();
|
|
46
|
+
};
|
|
47
|
+
export const logoutImpl = () => {
|
|
48
|
+
if (provider === "firebase") {
|
|
49
|
+
return logout();
|
|
50
|
+
}
|
|
51
|
+
if (provider === "mock") {
|
|
52
|
+
return logoutMock();
|
|
53
|
+
}
|
|
54
|
+
return throwUndefinedProviderError();
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=service-provider-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-provider-impl.js","sourceRoot":"","sources":["../../../src/service-provider/service-provider-impl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGlG,IAAI,QAAkD,CAAC;AAGvD,MAAM,2BAA2B,GAAG,GAAG,EAAE;IACvC,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;AAChH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAA4C,EAAE,EAAE;IACjF,QAAQ,GAAG,aAAa,CAAC;AAC3B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAkB,EAClB,EAAE;IACF,IAAI,QAAQ,KAAK,UAAU,EAAE;QAC3B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KAC5B;SAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;QAC9B,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KAChC;SAAM;QACL,2BAA2B,EAAE,CAAC;KAC/B;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAI,QAAQ,KAAK,UAAU,EAAE;QAC3B,OAAO,eAAe,EAAE,CAAC;KAC1B;IACD,IAAI,QAAQ,KAAK,MAAM,EAAE;QACvB,OAAO,mBAAmB,EAAE,CAAC;KAC9B;IACD,OAAO,2BAA2B,EAAE,CAAC;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE;IAErD,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KACpC;IACD,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KACpC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE;QAC3B,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACzB;IACD,IAAI,QAAQ,KAAK,MAAM,EAAE;QACvB,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,2BAA2B,EAAE,CAAC;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,IAAI,QAAQ,KAAK,UAAU,EAAE;QAC3B,OAAO,MAAM,EAAE,CAAC;KACjB;IACD,IAAI,QAAQ,KAAK,MAAM,EAAE;QACvB,OAAO,UAAU,EAAE,CAAC;KACrB;IACD,OAAO,2BAA2B,EAAE,CAAC;AACvC,CAAC,CAAA","sourcesContent":["import { ServiceProviderConfiguration } from \"../PdSpaHelper.js\";\n\nimport { authStateChanged, isAuthenticated, login, logout } from \"./firebase/auth.js\";\nimport { authStateChangedMock, isAuthenticatedMock, loginMock, logoutMock } from \"./mock/auth.js\";\n\n\nlet provider: ServiceProviderConfiguration | undefined;\n\n\nconst throwUndefinedProviderError = () => {\n throw new Error(\"Undefined service provider, please check configuration. 'firebase' or 'mock' allowed here.\");\n}\n\nexport const setServiceProvider = (providerParam?: ServiceProviderConfiguration) => {\n provider = providerParam;\n}\n\nexport const authStateChangedImpl = (\n callback: Function\n) => {\n if (provider === \"firebase\") {\n authStateChanged(callback);\n } else if (provider === \"mock\") {\n authStateChangedMock(callback);\n } else {\n throwUndefinedProviderError();\n }\n}\n\nexport const isAuthenticatedImpl = () => {\n if (provider === \"firebase\") {\n return isAuthenticated();\n } \n if (provider === \"mock\") {\n return isAuthenticatedMock();\n } \n return throwUndefinedProviderError(); \n}\n\nexport const loginImpl = (user: string, sec: string) => {\n\n if (!user) { \n const returnError = new Error(\"empty user\");\n return Promise.reject(returnError);\n }\n if (!sec) {\n const returnError = new Error(\"empty password\");\n return Promise.reject(returnError);\n }\n\n if (provider === \"firebase\") {\n return login(user, sec);\n } \n if (provider === \"mock\") {\n return loginMock(user, sec);\n } \n return throwUndefinedProviderError(); \n}\n\nexport const logoutImpl = () => {\n if (provider === \"firebase\") {\n return logout();\n } \n if (provider === \"mock\") {\n return logoutMock();\n } \n return throwUndefinedProviderError(); \n}\n"]}
|
|
@@ -5,7 +5,7 @@ import '@progressive-development/pd-forms/pd-form-container.js';
|
|
|
5
5
|
import '@progressive-development/pd-forms/pd-form-row.js';
|
|
6
6
|
import '@progressive-development/pd-forms/pd-input.js';
|
|
7
7
|
import '@progressive-development/pd-forms/pd-button.js';
|
|
8
|
-
import {
|
|
8
|
+
import { loginImpl } from '../service-provider/service-provider-impl.js';
|
|
9
9
|
let PdLogin = class PdLogin extends LitElement {
|
|
10
10
|
/**
|
|
11
11
|
* @event login-success fired when login was successfully
|
|
@@ -81,7 +81,7 @@ let PdLogin = class PdLogin extends LitElement {
|
|
|
81
81
|
// get form elements as input elements (for value access)
|
|
82
82
|
const elMail = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.getElementById('eMail');
|
|
83
83
|
const elSec = (_d = this.shadowRoot) === null || _d === void 0 ? void 0 : _d.getElementById('pWord');
|
|
84
|
-
|
|
84
|
+
loginImpl(elMail === null || elMail === void 0 ? void 0 : elMail.value, elSec === null || elSec === void 0 ? void 0 : elSec.value)
|
|
85
85
|
.then(() => {
|
|
86
86
|
this.dispatchEvent(new CustomEvent("login-success"));
|
|
87
87
|
}).catch(error => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-login.js","sourceRoot":"","sources":["../../../src/tmpown/pd-login.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,wDAAwD,CAAC;AAChE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,+CAA+C,CAAC;AACvD,OAAO,gDAAgD,CAAC;AAExD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pd-login.js","sourceRoot":"","sources":["../../../src/tmpown/pd-login.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,wDAAwD,CAAC;AAChE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,+CAA+C,CAAC;AACvD,OAAO,gDAAgD,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,8CAA8C,CAAC;AAIlE,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAErC;;OAEG;IAEH,MAAM,KAAK,MAAM;QACf,OAAO;YACL,GAAG,CAAA;;;;;;;;;;;;;;;OAeF;SACF,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;;;;;;;;gCAciB,IAAI,CAAC,YAAY;;;;;;;;;;;;gCAYjB,IAAI,CAAC,YAAY;;;;;uEAKsB,IAAI,CAAC,YAAY;;;;;;KAMnF,CAAC;IACJ,CAAC;IAED,YAAY;;QAEV,gBAAgB;QAChB,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,IAAI,GAAG,EAAE;SACpB,CAAC;QACF,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,cAAc,CAAC,aAAa,CAAC,0CAAE,aAAa,CAC3D,IAAI,WAAW,CAAC,eAAe,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC;QAE9C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;YAE9B,yDAAyD;YACzD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,cAAc,CAAC,OAAO,CAAqB,CAAC;YAC5E,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,cAAc,CAAC,OAAO,CAAqB,CAAC;YAE3E,SAAS,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;iBACnC,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACf,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAClB,KAAK,oBAAoB;wBACvB,8BAA8B;wBAC9B,8CAA8C;wBAC9C,IAAI,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;wBACrE,MAAM;oBACR,KAAK,qBAAqB,CAAC;oBAC3B,KAAK,qBAAqB;wBACxB,IAAI,CAAC,mBAAmB,CAAC,oDAAoD,CAAC,CAAC;wBAC/E,MAAM;oBACR;wBACE,IAAI,CAAC,mBAAmB,CAAC,+FAA+F,CAAC,CAAC;iBAC7H;YACH,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAED,mBAAmB,CAAC,GAAW;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAC;YAC/C,MAAM,EAAE;gBACN,GAAG,EAAE,OAAO,EAAE,IAAI;aACnB;YACD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC,CAAC;IACN,CAAC;CAEF,CAAA;AAlHY,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAkHnB;SAlHY,OAAO","sourcesContent":["import { LitElement, css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport '@progressive-development/pd-forms/pd-form-container.js';\nimport '@progressive-development/pd-forms/pd-form-row.js';\nimport '@progressive-development/pd-forms/pd-input.js';\nimport '@progressive-development/pd-forms/pd-button.js';\n\nimport { loginImpl } from '../service-provider/service-provider-impl.js';\n\n\n@customElement(\"pd-login\")\nexport class PdLogin extends LitElement {\n\n /**\n * @event login-success fired when login was successfully\n */\n\n static get styles() {\n return [\n css`\n :host {\n display: flex;\n justify-content: center;\n /*min-height: 100vh;\n min-width: 100vh;*/ \n }\n\n .login-form {\n display: flex; \n flex-flow: column;\n justify-content: center; \n --pd-form-row-allign: center; \n }\n \n `,\n ];\n } \n\n render() {\n return html`\n <div class=\"login-form\">\n <pd-form-container id=\"loginFormId\">\n \n <pd-form-row>\n <pd-input\n id=\"eMail\"\n class=\"quarter3\"\n maxlength=\"250\"\n field-type=\"mail\"\n valueName=\"email\"\n label=\"E-mail\" \n autoCompleteName=\"email\"\n required\n @enter-pressed=\"${this._accessLogin}\"\n ></pd-input>\n </pd-form-row>\n\n <pd-form-row>\n <pd-input\n id=\"pWord\"\n class=\"quarter3\"\n secret \n maxlength=\"30\"\n label=\"Password\" \n required \n @enter-pressed=\"${this._accessLogin}\"\n ></pd-input>\n </pd-form-row>\n \n <pd-form-row>\n <pd-button class=\"quarter3\" primary text=\"Login\" @click=\"${this._accessLogin}\"></pd-button> \n </pd-form-row>\n\n </pd-form-container> \n </div>\n\n `;\n }\n\n _accessLogin() {\n \n // validate form\n const detail = {\n errorMap: new Map()\n };\n this.shadowRoot?.getElementById(\"loginFormId\")?.dispatchEvent(\n new CustomEvent(\"validate-form\", {detail}));\n\n if (detail.errorMap.size === 0) {\n \n // get form elements as input elements (for value access)\n const elMail = this.shadowRoot?.getElementById('eMail') as HTMLInputElement; \n const elSec = this.shadowRoot?.getElementById('pWord') as HTMLInputElement; \n\n loginImpl(elMail?.value, elSec?.value)\n .then(() => {\n this.dispatchEvent(new CustomEvent(\"login-success\"));\n }).catch(error => {\n switch (error.code) {\n case 'auth/invalid-email':\n // returnError.eType = 'user';\n // returnError.logMsg = 'Invalid mail format';\n this._dispatchToastEvent(\"E-Mail Format für Benutzer ist ungültig.\");\n break;\n case 'auth/wrong-password':\n case 'auth/user-not-found':\n this._dispatchToastEvent(\"Anmeldung fehlgeschlagen, ungültige Benutzerdaten.\");\n break;\n default:\n this._dispatchToastEvent(\"Technisches Problem aufgetreten, die Anmeldung kann leider aktuell nicht durchgeführt werden.\");\n }\n });\n } \n }\n\n _dispatchToastEvent(txt: string) {\n this.dispatchEvent(new CustomEvent(\"toast-event\",{\n detail: {\n txt, isError: true,\n },\n bubbles: true,\n composed: true\n }));\n }\n\n}\n"]}
|