@bootkit/ng0 0.0.0-alpha.1 → 0.0.0-alpha.2
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/common/index.d.ts +12 -5
- package/components/accordion/index.d.ts +32 -0
- package/components/collapse/index.d.ts +59 -0
- package/components/modal/index.d.ts +29 -0
- package/components/nav/index.d.ts +64 -0
- package/{offcanvas/offcanvas.directive.d.ts → components/offcanvas/index.d.ts} +14 -5
- package/components/overlay/index.d.ts +40 -0
- package/components/pagination/index.d.ts +30 -0
- package/components/popover/index.d.ts +36 -0
- package/components/toast/index.d.ts +101 -0
- package/components/tooltip/index.d.ts +30 -0
- package/data/index.d.ts +74 -0
- package/fesm2022/bootkit-ng0-common.mjs +11 -4
- package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
- package/fesm2022/{bootkit-ng0-accordion.mjs → bootkit-ng0-components-accordion.mjs} +13 -13
- package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -0
- package/fesm2022/{bootkit-ng0-collapse.mjs → bootkit-ng0-components-collapse.mjs} +12 -12
- package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -0
- package/fesm2022/{bootkit-ng0-modal.mjs → bootkit-ng0-components-modal.mjs} +9 -9
- package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -0
- package/fesm2022/{bootkit-ng0-nav.mjs → bootkit-ng0-components-nav.mjs} +21 -21
- package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -0
- package/fesm2022/{bootkit-ng0-offcanvas.mjs → bootkit-ng0-components-offcanvas.mjs} +9 -9
- package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-overlay.mjs +99 -0
- package/fesm2022/bootkit-ng0-components-overlay.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-pagination.mjs +85 -0
- package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -0
- package/fesm2022/{bootkit-ng0-popover.mjs → bootkit-ng0-components-popover.mjs} +8 -8
- package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -0
- package/fesm2022/{bootkit-ng0-toast.mjs → bootkit-ng0-components-toast.mjs} +9 -9
- package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -0
- package/fesm2022/{bootkit-ng0-tooltip.mjs → bootkit-ng0-components-tooltip.mjs} +8 -8
- package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-data.mjs +153 -0
- package/fesm2022/bootkit-ng0-data.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-http.mjs +231 -0
- package/fesm2022/bootkit-ng0-http.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-security.mjs +130 -0
- package/fesm2022/bootkit-ng0-security.mjs.map +1 -0
- package/http/index.d.ts +66 -0
- package/index.d.ts +3 -5
- package/package.json +47 -53
- package/security/index.d.ts +48 -0
- package/accordion/accordion-item.component.d.ts +0 -13
- package/accordion/accordion.component.d.ts +0 -13
- package/accordion/accordion.module.d.ts +0 -8
- package/accordion/index.d.ts +0 -5
- package/accordion/public-api.d.ts +0 -3
- package/collapse/collapse.component.d.ts +0 -18
- package/collapse/collapse.directive.d.ts +0 -32
- package/collapse/collapse.module.d.ts +0 -8
- package/collapse/index.d.ts +0 -5
- package/collapse/public-api.d.ts +0 -3
- package/common/public-api.d.ts +0 -2
- package/common/types.d.ts +0 -4
- package/common/utils.d.ts +0 -3
- package/esm2022/accordion/accordion-item.component.mjs +0 -34
- package/esm2022/accordion/accordion.component.mjs +0 -25
- package/esm2022/accordion/accordion.module.mjs +0 -25
- package/esm2022/accordion/bootkit-ng0-accordion.mjs +0 -5
- package/esm2022/accordion/public-api.mjs +0 -4
- package/esm2022/bootkit-ng0.mjs +0 -5
- package/esm2022/collapse/bootkit-ng0-collapse.mjs +0 -5
- package/esm2022/collapse/collapse.component.mjs +0 -46
- package/esm2022/collapse/collapse.directive.mjs +0 -94
- package/esm2022/collapse/collapse.module.mjs +0 -23
- package/esm2022/collapse/public-api.mjs +0 -4
- package/esm2022/common/bootkit-ng0-common.mjs +0 -5
- package/esm2022/common/public-api.mjs +0 -3
- package/esm2022/common/types.mjs +0 -3
- package/esm2022/common/utils.mjs +0 -16
- package/esm2022/lib/index.mjs +0 -3
- package/esm2022/lib/types.mjs +0 -2
- package/esm2022/modal/bootkit-ng0-modal.mjs +0 -5
- package/esm2022/modal/modal.component.mjs +0 -44
- package/esm2022/modal/modal.module.mjs +0 -20
- package/esm2022/modal/public-api.mjs +0 -3
- package/esm2022/modal/types.mjs +0 -3
- package/esm2022/nav/bootkit-ng0-nav.mjs +0 -5
- package/esm2022/nav/nav-item.directive.mjs +0 -26
- package/esm2022/nav/nav-link.directive.mjs +0 -45
- package/esm2022/nav/nav.directive.mjs +0 -23
- package/esm2022/nav/nav.module.mjs +0 -35
- package/esm2022/nav/public-api.mjs +0 -7
- package/esm2022/nav/tab-content.component.mjs +0 -29
- package/esm2022/nav/tab-pane.directive.mjs +0 -20
- package/esm2022/offcanvas/bootkit-ng0-offcanvas.mjs +0 -5
- package/esm2022/offcanvas/offcanvas.directive.mjs +0 -118
- package/esm2022/offcanvas/offcanvas.module.mjs +0 -19
- package/esm2022/offcanvas/public-api.mjs +0 -3
- package/esm2022/overlay/bootkit-ng0-overlay.mjs +0 -5
- package/esm2022/overlay/overlay.directive.mjs +0 -111
- package/esm2022/overlay/overlay.module.mjs +0 -22
- package/esm2022/overlay/private/utils.mjs +0 -58
- package/esm2022/overlay/public-api.mjs +0 -3
- package/esm2022/popover/bootkit-ng0-popover.mjs +0 -5
- package/esm2022/popover/popover-wrapper/popover-wrapper.component.mjs +0 -29
- package/esm2022/popover/popover.directive.mjs +0 -140
- package/esm2022/popover/public-api.mjs +0 -2
- package/esm2022/popover/types.mjs +0 -2
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/toast/bootkit-ng0-toast.mjs +0 -5
- package/esm2022/toast/public-api.mjs +0 -4
- package/esm2022/toast/toast-ref.mjs +0 -27
- package/esm2022/toast/toast.component.mjs +0 -68
- package/esm2022/toast/toast.service.mjs +0 -93
- package/esm2022/toast/types.mjs +0 -2
- package/esm2022/tooltip/bootkit-ng0-tooltip.mjs +0 -5
- package/esm2022/tooltip/public-api.mjs +0 -3
- package/esm2022/tooltip/tooltip-wrapper/tooltip-wrapper.component.mjs +0 -44
- package/esm2022/tooltip/tooltip.directive.mjs +0 -93
- package/esm2022/tooltip/types.mjs +0 -2
- package/fesm2022/bootkit-ng0-accordion.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-collapse.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-modal.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-nav.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-offcanvas.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-overlay.mjs +0 -194
- package/fesm2022/bootkit-ng0-overlay.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-popover.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-toast.mjs.map +0 -1
- package/fesm2022/bootkit-ng0-tooltip.mjs.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/types.d.ts +0 -1
- package/modal/index.d.ts +0 -5
- package/modal/modal.component.d.ts +0 -18
- package/modal/modal.module.d.ts +0 -7
- package/modal/public-api.d.ts +0 -2
- package/modal/types.d.ts +0 -2
- package/nav/index.d.ts +0 -5
- package/nav/nav-item.directive.d.ts +0 -13
- package/nav/nav-link.directive.d.ts +0 -16
- package/nav/nav.directive.d.ts +0 -11
- package/nav/nav.module.d.ts +0 -11
- package/nav/public-api.d.ts +0 -6
- package/nav/tab-content.component.d.ts +0 -15
- package/nav/tab-pane.directive.d.ts +0 -9
- package/offcanvas/index.d.ts +0 -5
- package/offcanvas/offcanvas.module.d.ts +0 -7
- package/offcanvas/public-api.d.ts +0 -2
- package/overlay/index.d.ts +0 -5
- package/overlay/overlay.directive.d.ts +0 -50
- package/overlay/overlay.module.d.ts +0 -10
- package/overlay/private/utils.d.ts +0 -10
- package/overlay/public-api.d.ts +0 -2
- package/popover/index.d.ts +0 -5
- package/popover/popover-wrapper/popover-wrapper.component.d.ts +0 -15
- package/popover/popover.directive.d.ts +0 -30
- package/popover/public-api.d.ts +0 -1
- package/popover/types.d.ts +0 -4
- package/public-api.d.ts +0 -1
- package/toast/index.d.ts +0 -5
- package/toast/public-api.d.ts +0 -3
- package/toast/toast-ref.d.ts +0 -12
- package/toast/toast.component.d.ts +0 -19
- package/toast/toast.service.d.ts +0 -43
- package/toast/types.d.ts +0 -44
- package/tooltip/index.d.ts +0 -5
- package/tooltip/public-api.d.ts +0 -2
- package/tooltip/tooltip-wrapper/tooltip-wrapper.component.d.ts +0 -19
- package/tooltip/tooltip.directive.d.ts +0 -24
- package/tooltip/types.d.ts +0 -3
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import * as i1 from '@angular/common/http';
|
|
2
|
+
import { HttpParams } from '@angular/common/http';
|
|
3
|
+
import { Subject, of, tap, map } from 'rxjs';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { InjectionToken, makeStateKey, PLATFORM_ID, Inject, Optional, Injectable } from '@angular/core';
|
|
6
|
+
import { isPlatformServer } from '@angular/common';
|
|
7
|
+
import { DataResult } from '@bootkit/ng0/data';
|
|
8
|
+
|
|
9
|
+
const HttpServiceBaseUrl = new InjectionToken('HttpServiceBaseUrl');
|
|
10
|
+
class HttpEvent {
|
|
11
|
+
url;
|
|
12
|
+
options;
|
|
13
|
+
constructor(url, options) {
|
|
14
|
+
this.url = url;
|
|
15
|
+
this.options = options;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
class HttpRequestSendEvent extends HttpEvent {
|
|
19
|
+
constructor(url, options) {
|
|
20
|
+
super(url, options);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
class HttpResponseEvent extends HttpEvent {
|
|
24
|
+
constructor(url, options) {
|
|
25
|
+
super(url, options);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
class HttpErrorEvent extends HttpEvent {
|
|
29
|
+
constructor(url, options) {
|
|
30
|
+
super(url, options);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
class HttpService {
|
|
35
|
+
_http;
|
|
36
|
+
transferState;
|
|
37
|
+
platformId;
|
|
38
|
+
_eventsSubject = new Subject();
|
|
39
|
+
_baseUrl;
|
|
40
|
+
events = this._eventsSubject.asObservable();
|
|
41
|
+
defaultHeaders;
|
|
42
|
+
constructor(_http, transferState, platformId, baseUrl) {
|
|
43
|
+
this._http = _http;
|
|
44
|
+
this.transferState = transferState;
|
|
45
|
+
this.platformId = platformId;
|
|
46
|
+
this._baseUrl = typeof baseUrl == 'string' ? baseUrl : '';
|
|
47
|
+
}
|
|
48
|
+
get(url, options) {
|
|
49
|
+
this._eventsSubject.next(new HttpRequestSendEvent(url, options));
|
|
50
|
+
const URL = this.makeUrl(url, options);
|
|
51
|
+
const OPTIONS = this.makeHttpClientOptions(options);
|
|
52
|
+
let obs = this.tap(this._http.get(URL, OPTIONS), url, options);
|
|
53
|
+
obs = this._handleTransferState(obs, options);
|
|
54
|
+
return obs;
|
|
55
|
+
}
|
|
56
|
+
_handleTransferState(obs, options) {
|
|
57
|
+
if (!options?.transferState) {
|
|
58
|
+
return obs;
|
|
59
|
+
}
|
|
60
|
+
if (!options.id) {
|
|
61
|
+
throw Error('To use transferState, set request id');
|
|
62
|
+
}
|
|
63
|
+
let key = makeStateKey(options.id);
|
|
64
|
+
// Check if data exists in TransferState (to avoid refetching)
|
|
65
|
+
if (this.transferState.hasKey(key)) {
|
|
66
|
+
const data = this.transferState.get(key, null);
|
|
67
|
+
if (options.transferState.clearAfterUse || true) {
|
|
68
|
+
this.transferState.remove(key); // Free memory
|
|
69
|
+
}
|
|
70
|
+
return of(data);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return obs.pipe(tap((d) => {
|
|
74
|
+
if (isPlatformServer(this.platformId)) {
|
|
75
|
+
this.transferState.set(key, d);
|
|
76
|
+
}
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
getResult(url, request, options) {
|
|
81
|
+
this._eventsSubject.next(new HttpRequestSendEvent(url, options));
|
|
82
|
+
const URL = this.makeUrl(url, options);
|
|
83
|
+
options = options || {};
|
|
84
|
+
options.query = { ...options.query, ...this.mapDataRequesToQueryObject(request) };
|
|
85
|
+
const OPTIONS = this.makeHttpClientOptions(options);
|
|
86
|
+
var o = this._http.get(URL, OPTIONS)
|
|
87
|
+
.pipe(map((x) => new DataResult(request, x.data, x.total)));
|
|
88
|
+
return this.tap(o, url, options);
|
|
89
|
+
}
|
|
90
|
+
post(url, body, options) {
|
|
91
|
+
this._eventsSubject.next(new HttpRequestSendEvent(url, options));
|
|
92
|
+
const URL = this.makeUrl(url, options);
|
|
93
|
+
const BODY = this.makeBody(body, options);
|
|
94
|
+
const OPTIONS = this.makeHttpClientOptions(options);
|
|
95
|
+
return this.tap(this._http.post(URL, BODY, OPTIONS), url, options);
|
|
96
|
+
}
|
|
97
|
+
put(url, body, options) {
|
|
98
|
+
this._eventsSubject.next(new HttpRequestSendEvent(url, options));
|
|
99
|
+
const URL = this.makeUrl(url, options);
|
|
100
|
+
const BODY = this.makeBody(body, options);
|
|
101
|
+
const OPTIONS = this.makeHttpClientOptions(options);
|
|
102
|
+
return this.tap(this._http.put(URL, BODY, OPTIONS), url, options);
|
|
103
|
+
}
|
|
104
|
+
delete(url, options) {
|
|
105
|
+
this._eventsSubject.next(new HttpRequestSendEvent(url, options));
|
|
106
|
+
const URL = this.makeUrl(url, options);
|
|
107
|
+
const OPTIONS = this.makeHttpClientOptions(options);
|
|
108
|
+
return this.tap(this._http.delete(URL, OPTIONS), url, options);
|
|
109
|
+
}
|
|
110
|
+
tap(o, url, options) {
|
|
111
|
+
return o.pipe(tap({
|
|
112
|
+
next: r => {
|
|
113
|
+
this._eventsSubject.next(new HttpResponseEvent(url, options));
|
|
114
|
+
},
|
|
115
|
+
error: e => {
|
|
116
|
+
this._eventsSubject.next(new HttpErrorEvent(url, options));
|
|
117
|
+
}
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
makeUrl(url, options) {
|
|
121
|
+
return (options?.pathType === 'absolute') ? url : (this._baseUrl + url);
|
|
122
|
+
}
|
|
123
|
+
makeHttpClientOptions(options) {
|
|
124
|
+
if (!options) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
const ngOptions = {};
|
|
128
|
+
// Query String
|
|
129
|
+
const query = options.query;
|
|
130
|
+
if (typeof query === 'object') {
|
|
131
|
+
let params = new HttpParams();
|
|
132
|
+
for (const key in query) {
|
|
133
|
+
if (query.hasOwnProperty(key)) {
|
|
134
|
+
const value = query[key];
|
|
135
|
+
const type = typeof value;
|
|
136
|
+
if (type === 'string' || type === 'number' || type === 'boolean') {
|
|
137
|
+
params = params.set(key, value);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
ngOptions.params = params;
|
|
142
|
+
}
|
|
143
|
+
// Response Type
|
|
144
|
+
// if (options.responseType) {
|
|
145
|
+
ngOptions.responseType = options.responseType;
|
|
146
|
+
// }
|
|
147
|
+
if (!options.sendAuthToken) {
|
|
148
|
+
}
|
|
149
|
+
ngOptions.headers = this.defaultHeaders;
|
|
150
|
+
ngOptions.reportProgress = options.reportProgress;
|
|
151
|
+
ngOptions.observe = options.observe;
|
|
152
|
+
return ngOptions;
|
|
153
|
+
}
|
|
154
|
+
makeBody(body, options) {
|
|
155
|
+
body = this.processBodyFields(body);
|
|
156
|
+
if (!options || !options.contentType || options.contentType !== 'multipart/form-data') {
|
|
157
|
+
return body;
|
|
158
|
+
}
|
|
159
|
+
// contentType is multipart/form-data
|
|
160
|
+
const formData = new FormData();
|
|
161
|
+
for (const key in body) {
|
|
162
|
+
if (body.hasOwnProperty(key)) {
|
|
163
|
+
const field = body[key];
|
|
164
|
+
let value;
|
|
165
|
+
if (typeof field === 'string' || field instanceof File) {
|
|
166
|
+
value = field;
|
|
167
|
+
}
|
|
168
|
+
else if (typeof field === 'number') {
|
|
169
|
+
value = field.toString();
|
|
170
|
+
}
|
|
171
|
+
else if (typeof field === 'object') {
|
|
172
|
+
value = JSON.stringify(field);
|
|
173
|
+
}
|
|
174
|
+
if (value) {
|
|
175
|
+
formData.append(key, value);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return formData;
|
|
180
|
+
}
|
|
181
|
+
processBodyFields(body) {
|
|
182
|
+
return body;
|
|
183
|
+
}
|
|
184
|
+
mapDataRequesToQueryObject(request) {
|
|
185
|
+
var result = {};
|
|
186
|
+
if (!request) {
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
if (Number.isInteger(request.pageIndex) && Number.isInteger(request.pageSize)) {
|
|
190
|
+
result['page.size'] = request.pageSize;
|
|
191
|
+
result['page.index'] = request.pageIndex;
|
|
192
|
+
}
|
|
193
|
+
if (request.sort) {
|
|
194
|
+
result['sort[field]'] = request.sort.field;
|
|
195
|
+
result['sort[asc]'] = request.sort.asc;
|
|
196
|
+
}
|
|
197
|
+
for (let i = 0; i < request.filters.length; i++) {
|
|
198
|
+
const filter = request.filters[i];
|
|
199
|
+
result[`filters[${i}].field`] = filter.field;
|
|
200
|
+
result[`filters[${i}].operator`] = filter.operator;
|
|
201
|
+
result[`filters[${i}].value`] = filter.value;
|
|
202
|
+
}
|
|
203
|
+
if (typeof request.computeTotal == 'boolean') {
|
|
204
|
+
result['ct'] = request.computeTotal;
|
|
205
|
+
}
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
208
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpClient }, { token: i0.TransferState }, { token: PLATFORM_ID }, { token: HttpServiceBaseUrl, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
209
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: HttpService, providedIn: 'root' });
|
|
210
|
+
}
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: HttpService, decorators: [{
|
|
212
|
+
type: Injectable,
|
|
213
|
+
args: [{
|
|
214
|
+
providedIn: 'root'
|
|
215
|
+
}]
|
|
216
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.TransferState }, { type: undefined, decorators: [{
|
|
217
|
+
type: Inject,
|
|
218
|
+
args: [PLATFORM_ID]
|
|
219
|
+
}] }, { type: undefined, decorators: [{
|
|
220
|
+
type: Optional
|
|
221
|
+
}, {
|
|
222
|
+
type: Inject,
|
|
223
|
+
args: [HttpServiceBaseUrl]
|
|
224
|
+
}] }] });
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Generated bundle index. Do not edit.
|
|
228
|
+
*/
|
|
229
|
+
|
|
230
|
+
export { HttpErrorEvent, HttpEvent, HttpRequestSendEvent, HttpResponseEvent, HttpService, HttpServiceBaseUrl };
|
|
231
|
+
//# sourceMappingURL=bootkit-ng0-http.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-http.mjs","sources":["../../../projects/ng0/http/types.ts","../../../projects/ng0/http/http.service.ts","../../../projects/ng0/http/bootkit-ng0-http.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const HttpServiceBaseUrl = new InjectionToken('HttpServiceBaseUrl');\r\n\r\nexport interface HttpOptions {\r\n /** Http request ID */\r\n id?: string;\r\n query?: any;\r\n pathType?: 'relative' | 'absolute';\r\n responseType?: 'json' | 'blob' | 'text';\r\n contentType?: 'json' | 'multipart/form-data';\r\n reportProgress?: boolean;\r\n observe?: 'response' | 'body' | 'events';\r\n displayServerErrors?: boolean;\r\n sendAuthToken?: boolean;\r\n\r\n /** Save response in transfer state */\r\n transferState?: {\r\n enable: boolean,\r\n clearAfterUse?: boolean; \r\n };\r\n}\r\n\r\nexport abstract class HttpEvent {\r\n constructor(public readonly url: string, public readonly options?: HttpOptions) {\r\n }\r\n}\r\n\r\nexport class HttpRequestSendEvent extends HttpEvent {\r\n constructor(url: string, options?: HttpOptions) {\r\n super(url, options);\r\n }\r\n}\r\n\r\nexport class HttpResponseEvent extends HttpEvent {\r\n constructor(url: string, options?: HttpOptions) {\r\n super(url, options);\r\n }\r\n}\r\n\r\nexport class HttpErrorEvent extends HttpEvent {\r\n constructor(url: string, options?: HttpOptions) {\r\n super(url, options);\r\n }\r\n}\r\n","import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { map, Observable, of, Subject, tap } from 'rxjs';\r\nimport { HttpErrorEvent, HttpEvent, HttpOptions, HttpRequestSendEvent, HttpResponseEvent, HttpServiceBaseUrl } from './types';\r\nimport { Inject, Injectable, makeStateKey, Optional, PLATFORM_ID, TransferState } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { DataRequest, DataResult } from '@bootkit/ng0/data';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpService {\r\n private _eventsSubject = new Subject<HttpEvent>();\r\n private _baseUrl?: string;\r\n\r\n public events = this._eventsSubject.asObservable();\r\n public defaultHeaders?: HttpHeaders;\r\n\r\n constructor(\r\n private _http: HttpClient,\r\n private transferState: TransferState,\r\n @Inject(PLATFORM_ID) private platformId: object,\r\n @Optional() @Inject(HttpServiceBaseUrl) baseUrl?: string\r\n ) {\r\n this._baseUrl = typeof baseUrl == 'string' ? baseUrl : '';\r\n }\r\n\r\n public get<T>(url: string, options?: HttpOptions): Observable<T> {\r\n this._eventsSubject.next(new HttpRequestSendEvent(url, options));\r\n const URL = this.makeUrl(url, options);\r\n const OPTIONS = this.makeHttpClientOptions(options);\r\n let obs = this.tap<T>(this._http.get<T>(URL, OPTIONS), url, options);\r\n obs = this._handleTransferState(obs, options);\r\n return obs;\r\n }\r\n\r\n private _handleTransferState<T>(obs: Observable<T>, options: HttpOptions | undefined): Observable<T> {\r\n if (!options?.transferState) {\r\n return obs;\r\n }\r\n\r\n if (!options.id) {\r\n throw Error('To use transferState, set request id')\r\n }\r\n\r\n let key = makeStateKey<T>(options.id!);\r\n\r\n // Check if data exists in TransferState (to avoid refetching)\r\n if (this.transferState.hasKey(key)) {\r\n const data = this.transferState.get<T>(key, null!);\r\n\r\n if(options.transferState.clearAfterUse || true) { \r\n this.transferState.remove(key); // Free memory\r\n }\r\n \r\n return of<T>(data);\r\n } else {\r\n return obs.pipe(\r\n tap((d) => {\r\n if (isPlatformServer(this.platformId)) {\r\n this.transferState.set(key, d);\r\n }\r\n })\r\n )\r\n }\r\n }\r\n\r\n public getResult<T>(url: string, request: DataRequest, options?: HttpOptions): Observable<DataResult<T>> {\r\n this._eventsSubject.next(new HttpRequestSendEvent(url, options));\r\n const URL = this.makeUrl(url, options);\r\n options = options || {};\r\n options.query = { ...options.query, ...this.mapDataRequesToQueryObject(request) };\r\n const OPTIONS = this.makeHttpClientOptions(options);\r\n var o = this._http.get<{ data: any[], total: number }>(URL, OPTIONS)\r\n .pipe(\r\n map((x: any) => new DataResult(request, x.data, x.total))\r\n );\r\n\r\n return this.tap(o, url, options);\r\n }\r\n\r\n public post<T>(url: string, body: any, options?: HttpOptions): Observable<T> {\r\n this._eventsSubject.next(new HttpRequestSendEvent(url, options));\r\n const URL = this.makeUrl(url, options);\r\n const BODY = this.makeBody(body, options);\r\n const OPTIONS = this.makeHttpClientOptions(options);\r\n return this.tap<T>(this._http.post(URL, BODY, OPTIONS), url, options);\r\n }\r\n\r\n public put<T>(url: string, body: any, options?: HttpOptions): Observable<T> {\r\n this._eventsSubject.next(new HttpRequestSendEvent(url, options));\r\n const URL = this.makeUrl(url, options);\r\n const BODY = this.makeBody(body, options);\r\n const OPTIONS = this.makeHttpClientOptions(options);\r\n return this.tap<T>(this._http.put(URL, BODY, OPTIONS), url, options);\r\n }\r\n\r\n public delete<T>(url: string, options?: HttpOptions): Observable<T> {\r\n this._eventsSubject.next(new HttpRequestSendEvent(url, options));\r\n const URL = this.makeUrl(url, options);\r\n const OPTIONS = this.makeHttpClientOptions(options);\r\n return this.tap<T>(this._http.delete(URL, OPTIONS), url, options);\r\n }\r\n\r\n private tap<T>(o: Observable<any>, url: string, options?: HttpOptions): Observable<T> {\r\n return o.pipe(\r\n tap({\r\n next: r => {\r\n this._eventsSubject.next(new HttpResponseEvent(url, options));\r\n },\r\n error: e => {\r\n this._eventsSubject.next(new HttpErrorEvent(url, options))\r\n }\r\n })\r\n )\r\n }\r\n\r\n private makeUrl(url: string, options?: HttpOptions) {\r\n return (options?.pathType === 'absolute') ? url : (this._baseUrl + url);\r\n }\r\n\r\n private makeHttpClientOptions(options?: HttpOptions) {\r\n if (!options) {\r\n return undefined;\r\n }\r\n\r\n const ngOptions: any = {};\r\n\r\n // Query String\r\n const query = options.query;\r\n if (typeof query === 'object') {\r\n let params = new HttpParams();\r\n for (const key in query) {\r\n if (query.hasOwnProperty(key)) {\r\n const value = query[key];\r\n const type = typeof value;\r\n if (type === 'string' || type === 'number' || type === 'boolean') {\r\n params = params.set(key, value);\r\n }\r\n }\r\n }\r\n ngOptions.params = params;\r\n }\r\n\r\n // Response Type\r\n // if (options.responseType) {\r\n ngOptions.responseType = options.responseType;\r\n // }\r\n\r\n if (!options.sendAuthToken) {\r\n }\r\n\r\n ngOptions.headers = this.defaultHeaders;\r\n ngOptions.reportProgress = options.reportProgress;\r\n ngOptions.observe = options.observe;\r\n\r\n return ngOptions;\r\n }\r\n\r\n private makeBody(body: any, options?: HttpOptions) {\r\n body = this.processBodyFields(body);\r\n if (!options || !options.contentType || options.contentType !== 'multipart/form-data') {\r\n return body;\r\n }\r\n\r\n // contentType is multipart/form-data\r\n const formData = new FormData();\r\n for (const key in body) {\r\n if (body.hasOwnProperty(key)) {\r\n const field = body[key];\r\n let value;\r\n\r\n if (typeof field === 'string' || field instanceof File) {\r\n value = field;\r\n } else if (typeof field === 'number') {\r\n value = field.toString();\r\n } else if (typeof field === 'object') {\r\n value = JSON.stringify(field);\r\n }\r\n\r\n if (value) {\r\n formData.append(key, value);\r\n }\r\n }\r\n }\r\n return formData;\r\n }\r\n\r\n private processBodyFields(body: any) {\r\n return body;\r\n }\r\n\r\n private mapDataRequesToQueryObject(request: DataRequest) {\r\n var result: { [key: string]: any } = {};\r\n\r\n if (!request) {\r\n return result;\r\n }\r\n\r\n if (Number.isInteger(request.pageIndex) && Number.isInteger(request.pageSize)) {\r\n result['page.size'] = request.pageSize;\r\n result['page.index'] = request.pageIndex;\r\n }\r\n\r\n if (request.sort) {\r\n result['sort[field]'] = request.sort.field;\r\n result['sort[asc]'] = request.sort.asc;\r\n }\r\n\r\n for (let i = 0; i < request.filters.length; i++) {\r\n const filter = request.filters[i];\r\n result[`filters[${i}].field`] = filter.field;\r\n result[`filters[${i}].operator`] = filter.operator;\r\n result[`filters[${i}].value`] = filter.value;\r\n }\r\n\r\n if (typeof request.computeTotal == 'boolean') {\r\n result['ct'] = request.computeTotal;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { signal, Injectable, input, effect, Directive, NgModule } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/** User */
|
|
5
|
+
class User {
|
|
6
|
+
claims;
|
|
7
|
+
constructor(claims) {
|
|
8
|
+
this.claims = claims;
|
|
9
|
+
}
|
|
10
|
+
hasClaims(claims) {
|
|
11
|
+
return claims.every(x => this.claims.some(y => x === y));
|
|
12
|
+
}
|
|
13
|
+
hasAnyClaim(claims) {
|
|
14
|
+
return claims.length == 0 || claims.some(x => this.claims.some(y => x === y));
|
|
15
|
+
}
|
|
16
|
+
hasClaim(claim) {
|
|
17
|
+
var type = typeof claim;
|
|
18
|
+
if (type === 'string') {
|
|
19
|
+
return this.claims.some(x => x === claim);
|
|
20
|
+
}
|
|
21
|
+
if (type === 'object') {
|
|
22
|
+
const co = claim;
|
|
23
|
+
if (co?.any && co?.all) {
|
|
24
|
+
throw Error('Setting "any" and "all" at the same time is not valid.');
|
|
25
|
+
}
|
|
26
|
+
if (Array.isArray(co?.any)) {
|
|
27
|
+
return this.hasAnyClaim(co.any);
|
|
28
|
+
}
|
|
29
|
+
if (Array.isArray(co?.all)) {
|
|
30
|
+
return this.hasClaims(co.all);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
throw Error('Invalid claim');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
class UserStore {
|
|
38
|
+
user = signal(undefined);
|
|
39
|
+
constructor() {
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, providedIn: 'root' });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserStore, decorators: [{
|
|
45
|
+
type: Injectable,
|
|
46
|
+
args: [{ providedIn: 'root' }]
|
|
47
|
+
}], ctorParameters: () => [] });
|
|
48
|
+
|
|
49
|
+
class UserDirective {
|
|
50
|
+
claim = input(undefined, { alias: 'ng0Claim' });
|
|
51
|
+
_viewCreated = false;
|
|
52
|
+
constructor(templateRef, viewContainer, userStore) {
|
|
53
|
+
effect(() => {
|
|
54
|
+
let claim = this.claim();
|
|
55
|
+
let user = userStore.user();
|
|
56
|
+
let show = !user ? false : (claim == undefined ? true : user.hasClaim(claim));
|
|
57
|
+
if (show && !this._viewCreated) {
|
|
58
|
+
viewContainer.createEmbeddedView(templateRef);
|
|
59
|
+
this._viewCreated = true;
|
|
60
|
+
}
|
|
61
|
+
else if (!show && this._viewCreated) {
|
|
62
|
+
viewContainer.clear();
|
|
63
|
+
this._viewCreated = false;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
|
|
68
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: UserDirective, isStandalone: true, selector: "[ng0Claim]", inputs: { claim: { classPropertyName: "claim", publicName: "ng0Claim", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0Claim"], ngImport: i0 });
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: UserDirective, decorators: [{
|
|
71
|
+
type: Directive,
|
|
72
|
+
args: [{
|
|
73
|
+
selector: '[ng0Claim]',
|
|
74
|
+
exportAs: 'ng0Claim',
|
|
75
|
+
standalone: true
|
|
76
|
+
}]
|
|
77
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: UserStore }] });
|
|
78
|
+
|
|
79
|
+
class GuestUserDirective {
|
|
80
|
+
_created = false;
|
|
81
|
+
constructor(templateRef, viewContainer, userStore) {
|
|
82
|
+
effect(() => {
|
|
83
|
+
let show = userStore.user() == undefined;
|
|
84
|
+
if (show && !this._created) {
|
|
85
|
+
viewContainer.createEmbeddedView(templateRef);
|
|
86
|
+
this._created = true;
|
|
87
|
+
}
|
|
88
|
+
else if (!show && this._created) {
|
|
89
|
+
viewContainer.clear();
|
|
90
|
+
this._created = false;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GuestUserDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: UserStore }], target: i0.ɵɵFactoryTarget.Directive });
|
|
95
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: GuestUserDirective, isStandalone: true, selector: "[ng0GuestUser]", exportAs: ["ng0GuestUser"], ngImport: i0 });
|
|
96
|
+
}
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GuestUserDirective, decorators: [{
|
|
98
|
+
type: Directive,
|
|
99
|
+
args: [{
|
|
100
|
+
selector: '[ng0GuestUser]',
|
|
101
|
+
exportAs: 'ng0GuestUser',
|
|
102
|
+
standalone: true
|
|
103
|
+
}]
|
|
104
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: UserStore }] });
|
|
105
|
+
|
|
106
|
+
const items = [
|
|
107
|
+
UserDirective,
|
|
108
|
+
GuestUserDirective
|
|
109
|
+
];
|
|
110
|
+
class SecurityModule {
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
112
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, imports: [UserDirective,
|
|
113
|
+
GuestUserDirective], exports: [UserDirective,
|
|
114
|
+
GuestUserDirective] });
|
|
115
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule });
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SecurityModule, decorators: [{
|
|
118
|
+
type: NgModule,
|
|
119
|
+
args: [{
|
|
120
|
+
imports: items,
|
|
121
|
+
exports: items
|
|
122
|
+
}]
|
|
123
|
+
}] });
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Generated bundle index. Do not edit.
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
export { GuestUserDirective, SecurityModule, User, UserDirective, UserStore };
|
|
130
|
+
//# sourceMappingURL=bootkit-ng0-security.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-security.mjs","sources":["../../../projects/ng0/security/user.ts","../../../projects/ng0/security/user-store.ts","../../../projects/ng0/security/claim.directive.ts","../../../projects/ng0/security/guest-user.directive.ts","../../../projects/ng0/security/security.module.ts","../../../projects/ng0/security/bootkit-ng0-security.ts"],"sourcesContent":["import { ClaimLike, ClaimObject } from './types';\r\n\r\n/** User */\r\nexport class User {\r\n constructor(public readonly claims: string[]) {\r\n }\r\n\r\n public hasClaims(claims: string[]): boolean {\r\n return claims.every(x => this.claims.some(y => x === y));\r\n }\r\n\r\n public hasAnyClaim(claims: string[]): boolean {\r\n return claims.length == 0 || claims.some(x => this.claims.some(y => x === y));\r\n }\r\n\r\n public hasClaim(claim: ClaimLike): boolean {\r\n var type = typeof claim;\r\n if (type === 'string') {\r\n return this.claims.some(x => x === claim);\r\n }\r\n\r\n if (type === 'object') {\r\n const co = claim as ClaimObject;\r\n if (co?.any && co?.all) {\r\n throw Error('Setting \"any\" and \"all\" at the same time is not valid.');\r\n }\r\n\r\n if (Array.isArray(co?.any)) {\r\n return this.hasAnyClaim(co.any);\r\n }\r\n if (Array.isArray(co?.all)) {\r\n return this.hasClaims(co.all);\r\n }\r\n }\r\n\r\n throw Error('Invalid claim');\r\n }\r\n}\r\n","import { User } from './user';\r\nimport { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserStore<U extends User = User> {\r\n public readonly user = signal<U | null | undefined>(undefined);\r\n\r\n constructor() {\r\n }\r\n}","import { Directive, TemplateRef, ViewContainerRef, input, effect } from '@angular/core';\r\nimport { ClaimLike } from './types';\r\nimport { UserStore } from './user-store';\r\n\r\n@Directive({\r\n selector: '[ng0Claim]',\r\n exportAs: 'ng0Claim',\r\n standalone: true\r\n})\r\nexport class UserDirective {\r\n public claim = input<ClaimLike | null | undefined>(undefined, { alias: 'ng0Claim' });\r\n private _viewCreated = false;\r\n\r\n constructor(\r\n templateRef: TemplateRef<any>,\r\n viewContainer: ViewContainerRef,\r\n userStore: UserStore,\r\n ) {\r\n effect(() => {\r\n let claim = this.claim();\r\n let user = userStore.user();\r\n let show = !user ? false : (claim == undefined ? true : user.hasClaim(claim))\r\n\r\n if (show && !this._viewCreated) {\r\n viewContainer.createEmbeddedView(templateRef);\r\n this._viewCreated = true;\r\n } else if (!show && this._viewCreated) {\r\n viewContainer.clear();\r\n this._viewCreated = false;\r\n }\r\n })\r\n }\r\n}\r\n","import { Directive, TemplateRef, ViewContainerRef, effect } from '@angular/core';\r\nimport { UserStore } from './user-store';\r\n\r\n@Directive({\r\n selector: '[ng0GuestUser]',\r\n exportAs: 'ng0GuestUser',\r\n standalone: true\r\n})\r\nexport class GuestUserDirective {\r\n private _created = false;\r\n\r\n constructor(\r\n templateRef: TemplateRef<any>,\r\n viewContainer: ViewContainerRef,\r\n userStore: UserStore,\r\n ) {\r\n effect(() => {\r\n let show = userStore.user() == undefined\r\n\r\n if (show && !this._created) {\r\n viewContainer.createEmbeddedView(templateRef);\r\n this._created = true;\r\n } else if (!show && this._created) {\r\n viewContainer.clear();\r\n this._created = false;\r\n }\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UserDirective } from './claim.directive';\r\nimport { GuestUserDirective } from './guest-user.directive';\r\n\r\nconst items = [\r\n UserDirective,\r\n GuestUserDirective\r\n]\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class SecurityModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserStore"],"mappings":"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"}
|
package/http/index.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { HttpHeaders, HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { InjectionToken, TransferState } from '@angular/core';
|
|
5
|
+
import { DataRequest, DataResult } from '@bootkit/ng0/data';
|
|
6
|
+
|
|
7
|
+
declare const HttpServiceBaseUrl: InjectionToken<unknown>;
|
|
8
|
+
interface HttpOptions {
|
|
9
|
+
/** Http request ID */
|
|
10
|
+
id?: string;
|
|
11
|
+
query?: any;
|
|
12
|
+
pathType?: 'relative' | 'absolute';
|
|
13
|
+
responseType?: 'json' | 'blob' | 'text';
|
|
14
|
+
contentType?: 'json' | 'multipart/form-data';
|
|
15
|
+
reportProgress?: boolean;
|
|
16
|
+
observe?: 'response' | 'body' | 'events';
|
|
17
|
+
displayServerErrors?: boolean;
|
|
18
|
+
sendAuthToken?: boolean;
|
|
19
|
+
/** Save response in transfer state */
|
|
20
|
+
transferState?: {
|
|
21
|
+
enable: boolean;
|
|
22
|
+
clearAfterUse?: boolean;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
declare abstract class HttpEvent {
|
|
26
|
+
readonly url: string;
|
|
27
|
+
readonly options?: HttpOptions;
|
|
28
|
+
constructor(url: string, options?: HttpOptions);
|
|
29
|
+
}
|
|
30
|
+
declare class HttpRequestSendEvent extends HttpEvent {
|
|
31
|
+
constructor(url: string, options?: HttpOptions);
|
|
32
|
+
}
|
|
33
|
+
declare class HttpResponseEvent extends HttpEvent {
|
|
34
|
+
constructor(url: string, options?: HttpOptions);
|
|
35
|
+
}
|
|
36
|
+
declare class HttpErrorEvent extends HttpEvent {
|
|
37
|
+
constructor(url: string, options?: HttpOptions);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare class HttpService {
|
|
41
|
+
private _http;
|
|
42
|
+
private transferState;
|
|
43
|
+
private platformId;
|
|
44
|
+
private _eventsSubject;
|
|
45
|
+
private _baseUrl?;
|
|
46
|
+
events: Observable<HttpEvent>;
|
|
47
|
+
defaultHeaders?: HttpHeaders;
|
|
48
|
+
constructor(_http: HttpClient, transferState: TransferState, platformId: object, baseUrl?: string);
|
|
49
|
+
get<T>(url: string, options?: HttpOptions): Observable<T>;
|
|
50
|
+
private _handleTransferState;
|
|
51
|
+
getResult<T>(url: string, request: DataRequest, options?: HttpOptions): Observable<DataResult<T>>;
|
|
52
|
+
post<T>(url: string, body: any, options?: HttpOptions): Observable<T>;
|
|
53
|
+
put<T>(url: string, body: any, options?: HttpOptions): Observable<T>;
|
|
54
|
+
delete<T>(url: string, options?: HttpOptions): Observable<T>;
|
|
55
|
+
private tap;
|
|
56
|
+
private makeUrl;
|
|
57
|
+
private makeHttpClientOptions;
|
|
58
|
+
private makeBody;
|
|
59
|
+
private processBodyFields;
|
|
60
|
+
private mapDataRequesToQueryObject;
|
|
61
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HttpService, [null, null, null, { optional: true; }]>;
|
|
62
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<HttpService>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { HttpErrorEvent, HttpEvent, HttpRequestSendEvent, HttpResponseEvent, HttpService, HttpServiceBaseUrl };
|
|
66
|
+
export type { HttpOptions };
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bootkit/ng0",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.2",
|
|
4
4
|
"description": "Angular+Bootstrap Component Library",
|
|
5
5
|
"homepage": "https://bootkitlib.github.io/",
|
|
6
6
|
"author": "BootKit",
|
|
@@ -33,69 +33,63 @@
|
|
|
33
33
|
},
|
|
34
34
|
".": {
|
|
35
35
|
"types": "./index.d.ts",
|
|
36
|
-
"esm2022": "./esm2022/bootkit-ng0.mjs",
|
|
37
|
-
"esm": "./esm2022/bootkit-ng0.mjs",
|
|
38
36
|
"default": "./fesm2022/bootkit-ng0.mjs"
|
|
39
37
|
},
|
|
40
|
-
"./accordion": {
|
|
41
|
-
"types": "./accordion/index.d.ts",
|
|
42
|
-
"esm2022": "./esm2022/accordion/bootkit-ng0-accordion.mjs",
|
|
43
|
-
"esm": "./esm2022/accordion/bootkit-ng0-accordion.mjs",
|
|
44
|
-
"default": "./fesm2022/bootkit-ng0-accordion.mjs"
|
|
45
|
-
},
|
|
46
|
-
"./collapse": {
|
|
47
|
-
"types": "./collapse/index.d.ts",
|
|
48
|
-
"esm2022": "./esm2022/collapse/bootkit-ng0-collapse.mjs",
|
|
49
|
-
"esm": "./esm2022/collapse/bootkit-ng0-collapse.mjs",
|
|
50
|
-
"default": "./fesm2022/bootkit-ng0-collapse.mjs"
|
|
51
|
-
},
|
|
52
|
-
"./modal": {
|
|
53
|
-
"types": "./modal/index.d.ts",
|
|
54
|
-
"esm2022": "./esm2022/modal/bootkit-ng0-modal.mjs",
|
|
55
|
-
"esm": "./esm2022/modal/bootkit-ng0-modal.mjs",
|
|
56
|
-
"default": "./fesm2022/bootkit-ng0-modal.mjs"
|
|
57
|
-
},
|
|
58
38
|
"./common": {
|
|
59
39
|
"types": "./common/index.d.ts",
|
|
60
|
-
"esm2022": "./esm2022/common/bootkit-ng0-common.mjs",
|
|
61
|
-
"esm": "./esm2022/common/bootkit-ng0-common.mjs",
|
|
62
40
|
"default": "./fesm2022/bootkit-ng0-common.mjs"
|
|
63
41
|
},
|
|
64
|
-
"./
|
|
65
|
-
"types": "./
|
|
66
|
-
"
|
|
67
|
-
|
|
68
|
-
|
|
42
|
+
"./http": {
|
|
43
|
+
"types": "./http/index.d.ts",
|
|
44
|
+
"default": "./fesm2022/bootkit-ng0-http.mjs"
|
|
45
|
+
},
|
|
46
|
+
"./data": {
|
|
47
|
+
"types": "./data/index.d.ts",
|
|
48
|
+
"default": "./fesm2022/bootkit-ng0-data.mjs"
|
|
49
|
+
},
|
|
50
|
+
"./security": {
|
|
51
|
+
"types": "./security/index.d.ts",
|
|
52
|
+
"default": "./fesm2022/bootkit-ng0-security.mjs"
|
|
53
|
+
},
|
|
54
|
+
"./components/accordion": {
|
|
55
|
+
"types": "./components/accordion/index.d.ts",
|
|
56
|
+
"default": "./fesm2022/bootkit-ng0-components-accordion.mjs"
|
|
57
|
+
},
|
|
58
|
+
"./components/modal": {
|
|
59
|
+
"types": "./components/modal/index.d.ts",
|
|
60
|
+
"default": "./fesm2022/bootkit-ng0-components-modal.mjs"
|
|
61
|
+
},
|
|
62
|
+
"./components/collapse": {
|
|
63
|
+
"types": "./components/collapse/index.d.ts",
|
|
64
|
+
"default": "./fesm2022/bootkit-ng0-components-collapse.mjs"
|
|
65
|
+
},
|
|
66
|
+
"./components/nav": {
|
|
67
|
+
"types": "./components/nav/index.d.ts",
|
|
68
|
+
"default": "./fesm2022/bootkit-ng0-components-nav.mjs"
|
|
69
|
+
},
|
|
70
|
+
"./components/offcanvas": {
|
|
71
|
+
"types": "./components/offcanvas/index.d.ts",
|
|
72
|
+
"default": "./fesm2022/bootkit-ng0-components-offcanvas.mjs"
|
|
69
73
|
},
|
|
70
|
-
"./
|
|
71
|
-
"types": "./
|
|
72
|
-
"
|
|
73
|
-
"esm": "./esm2022/offcanvas/bootkit-ng0-offcanvas.mjs",
|
|
74
|
-
"default": "./fesm2022/bootkit-ng0-offcanvas.mjs"
|
|
74
|
+
"./components/overlay": {
|
|
75
|
+
"types": "./components/overlay/index.d.ts",
|
|
76
|
+
"default": "./fesm2022/bootkit-ng0-components-overlay.mjs"
|
|
75
77
|
},
|
|
76
|
-
"./
|
|
77
|
-
"types": "./
|
|
78
|
-
"
|
|
79
|
-
"esm": "./esm2022/overlay/bootkit-ng0-overlay.mjs",
|
|
80
|
-
"default": "./fesm2022/bootkit-ng0-overlay.mjs"
|
|
78
|
+
"./components/pagination": {
|
|
79
|
+
"types": "./components/pagination/index.d.ts",
|
|
80
|
+
"default": "./fesm2022/bootkit-ng0-components-pagination.mjs"
|
|
81
81
|
},
|
|
82
|
-
"./popover": {
|
|
83
|
-
"types": "./popover/index.d.ts",
|
|
84
|
-
"
|
|
85
|
-
"esm": "./esm2022/popover/bootkit-ng0-popover.mjs",
|
|
86
|
-
"default": "./fesm2022/bootkit-ng0-popover.mjs"
|
|
82
|
+
"./components/popover": {
|
|
83
|
+
"types": "./components/popover/index.d.ts",
|
|
84
|
+
"default": "./fesm2022/bootkit-ng0-components-popover.mjs"
|
|
87
85
|
},
|
|
88
|
-
"./toast": {
|
|
89
|
-
"types": "./toast/index.d.ts",
|
|
90
|
-
"
|
|
91
|
-
"esm": "./esm2022/toast/bootkit-ng0-toast.mjs",
|
|
92
|
-
"default": "./fesm2022/bootkit-ng0-toast.mjs"
|
|
86
|
+
"./components/toast": {
|
|
87
|
+
"types": "./components/toast/index.d.ts",
|
|
88
|
+
"default": "./fesm2022/bootkit-ng0-components-toast.mjs"
|
|
93
89
|
},
|
|
94
|
-
"./tooltip": {
|
|
95
|
-
"types": "./tooltip/index.d.ts",
|
|
96
|
-
"
|
|
97
|
-
"esm": "./esm2022/tooltip/bootkit-ng0-tooltip.mjs",
|
|
98
|
-
"default": "./fesm2022/bootkit-ng0-tooltip.mjs"
|
|
90
|
+
"./components/tooltip": {
|
|
91
|
+
"types": "./components/tooltip/index.d.ts",
|
|
92
|
+
"default": "./fesm2022/bootkit-ng0-components-tooltip.mjs"
|
|
99
93
|
}
|
|
100
94
|
}
|
|
101
95
|
}
|