- add search components: vs-result.vue, vs-input.vue, facet-category.vue

- add search models
- add opensans font
- add bulma css framework
- add axios, rxjs, vue-property-decorator
- npm updates
This commit is contained in:
Arno Kaimbacher 2021-11-12 10:13:22 +01:00
parent 8e0bc7c18d
commit 156bf0ae26
30 changed files with 4937 additions and 2044 deletions

51
src/api/api.ts Normal file
View file

@ -0,0 +1,51 @@
import initializeAxios from "./axiosSetup";
import { axiosRequestConfiguration } from "./config";
import { map } from "rxjs/operators";
// import { Observable } from "@reactivex/rxjs/compat";
import { defer, Observable } from "rxjs";
import { AxiosResponse } from "axios";
// https://ichi.pro/de/so-wickeln-sie-axios-mit-typescript-und-react-in-rxjs-ein-118892823169891
const axiosInstance = initializeAxios(axiosRequestConfiguration);
const get = <T>(url: string, queryParams?: any): Observable<T> => {
return defer(() => axiosInstance.get<T>(url, { params: queryParams })).pipe(map((result: AxiosResponse) => result.data));
};
// const post = <T>(
// url: string,
// body: object,
// queryParams?: object
// ): Observable<T | void> => {
// return defer(() =>
// axiosInstance.post<T>(url, body, { params: queryParams })
// ).pipe(map((result) => result.data));
// };
// const put = <T>(
// url: string,
// body: object,
// queryParams?: object
// ): Observable<T | void> => {
// return defer(() =>
// axiosInstance.put<T>(url, body, { params: queryParams })
// ).pipe(map((result) => result.data));
// };
// const patch = <T>(
// url: string,
// body: object,
// queryParams?: object
// ): Observable<T | void> => {
// return defer(() =>
// axiosInstance.patch<T>(url, body, { params: queryParams })
// ).pipe(map((result) => result.data));
// };
// const deleteR = <T>(url: string, id: number): Observable<T | void> => {
// return defer(() => axiosInstance.delete(`${url}/${id}`)).pipe(
// map((result) => result.data)
// );
// };
export default { get };

14
src/api/axiosSetup.ts Normal file
View file

@ -0,0 +1,14 @@
import axios, { AxiosRequestConfig, AxiosInstance, AxiosPromise } from "axios";
const initialization = (config: AxiosRequestConfig): AxiosInstance => {
axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
const axiosInstance = axios.create(config);
/*
Add default headers, interceptors etc..
*/
return axiosInstance;
};
export default initialization;

10
src/api/config.ts Normal file
View file

@ -0,0 +1,10 @@
import { AxiosRequestConfig } from "axios";
import * as qs from "qs";
export const axiosRequestConfiguration: AxiosRequestConfig = {
responseType: "text",
headers: {
"Content-Type": "application/json",
},
paramsSerializer: (params) => qs.stringify(params, { arrayFormat: "repeat" }),
};