ng-ipa-library 6.2.29 → 7.0.0
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/fesm2022/ng-ipa-library.mjs +125 -246
- package/fesm2022/ng-ipa-library.mjs.map +1 -1
- package/index.d.ts +568 -5
- package/package.json +8 -13
- package/src/lib/assets/ngIPAStyle.scss +0 -51
- package/lib/core/components/loading/loading.component.d.ts +0 -13
- package/lib/core/interceptors/error.interceptor.d.ts +0 -12
- package/lib/core/interceptors/loading.interceptor.d.ts +0 -14
- package/lib/core/interceptors/myIPAToken.interceptor.d.ts +0 -14
- package/lib/core/interceptors/token.interceptor.d.ts +0 -19
- package/lib/core/services/auth.service.d.ts +0 -18
- package/lib/core/services/error.service.d.ts +0 -19
- package/lib/core/services/loader.service.d.ts +0 -12
- package/lib/core/services/token.service.d.ts +0 -10
- package/lib/generate-form/generate-form.component.d.ts +0 -35
- package/lib/ipa-form/datepicker/datepicker.component.d.ts +0 -46
- package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +0 -7
- package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.d.ts +0 -10
- package/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.d.ts +0 -10
- package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +0 -7
- package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +0 -42
- package/lib/ipa-form/file-upload/file-upload.component.d.ts +0 -47
- package/lib/ipa-form/file-upload/models/files.d.ts +0 -4
- package/lib/ipa-form/ipa-form.service.d.ts +0 -52
- package/lib/ipa-form/recaptcha/recaptcha.component.d.ts +0 -22
- package/lib/ipa-form/text-input/text-input.component.d.ts +0 -36
- package/lib/ipa-form/textarea-input/textarea-input.component.d.ts +0 -33
- package/lib/models/apiException.d.ts +0 -5
- package/lib/models/apiResponse.d.ts +0 -5
- package/lib/models/breadcrumbs.model.d.ts +0 -4
- package/lib/models/decodedToken.model.d.ts +0 -6
- package/lib/models/exceptionUrl.model.d.ts +0 -4
- package/lib/models/generateForm.model.d.ts +0 -31
- package/lib/models/pagedResult.d.ts +0 -4
- package/lib/models/user.model.d.ts +0 -7
- package/lib/ng-ipa-library.module.d.ts +0 -25
- package/lib/pipes/hijri-date.pipe.d.ts +0 -7
- package/lib/pipes/pipes.module.d.ts +0 -7
- package/lib/services/breadcrumbs.service.d.ts +0 -18
- package/lib/services/breadcrumbsV2.service.d.ts +0 -19
- package/lib/services/common.service.d.ts +0 -11
- package/lib/share-button/share-button.component.d.ts +0 -19
- package/lib/share-button/share-button.module.d.ts +0 -13
- package/public-api.d.ts +0 -33
package/index.d.ts
CHANGED
|
@@ -1,5 +1,568 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit, AfterContentChecked, ElementRef, ChangeDetectorRef, AfterViewInit, EventEmitter, OnChanges, PipeTransform } from '@angular/core';
|
|
3
|
+
import * as i13 from '@angular/forms';
|
|
4
|
+
import { AbstractControl, ValidationErrors, UntypedFormControl, NgControl, UntypedFormGroup, UntypedFormArray } from '@angular/forms';
|
|
5
|
+
import { Moment } from 'moment';
|
|
6
|
+
import * as i18 from '@ng-bootstrap/ng-bootstrap';
|
|
7
|
+
import { NgbDateParserFormatter, NgbCalendar, NgbInputDatepicker, NgbDateStruct, NgbInputDatepickerConfig, NgbDatepicker } from '@ng-bootstrap/ng-bootstrap';
|
|
8
|
+
export * from '@ng-bootstrap/ng-bootstrap';
|
|
9
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
10
|
+
import * as i14 from 'ngx-toastr';
|
|
11
|
+
import { ToastrService, IndividualConfig } from 'ngx-toastr';
|
|
12
|
+
export * from 'ngx-toastr';
|
|
13
|
+
import * as i15 from 'ngx-dropzone-wrapper';
|
|
14
|
+
import { DropzoneDirective, DropzoneConfigInterface } from 'ngx-dropzone-wrapper';
|
|
15
|
+
import * as ng_ipa_library from 'ng-ipa-library';
|
|
16
|
+
import * as i12 from '@angular/common';
|
|
17
|
+
import * as i16 from 'ngx-captcha';
|
|
18
|
+
import * as i19 from '@ng-select/ng-select';
|
|
19
|
+
export * from '@ng-select/ng-select';
|
|
20
|
+
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpClient } from '@angular/common/http';
|
|
21
|
+
|
|
22
|
+
declare class IPAFormService {
|
|
23
|
+
private parserFormatter;
|
|
24
|
+
constructor(parserFormatter: NgbDateParserFormatter);
|
|
25
|
+
/**
|
|
26
|
+
* check link is valid.
|
|
27
|
+
*/
|
|
28
|
+
static linkValidation(control: AbstractControl): ValidationErrors | null;
|
|
29
|
+
/**
|
|
30
|
+
* check mp4 link is valid.
|
|
31
|
+
*/
|
|
32
|
+
static mp4LinkValidation(control: AbstractControl): ValidationErrors | null;
|
|
33
|
+
/**
|
|
34
|
+
* check mobile number is valid.
|
|
35
|
+
*/
|
|
36
|
+
static mobileNo(control: AbstractControl): ValidationErrors | null;
|
|
37
|
+
/**
|
|
38
|
+
* check email is valid.
|
|
39
|
+
*/
|
|
40
|
+
static email(control: AbstractControl): ValidationErrors | null;
|
|
41
|
+
/**
|
|
42
|
+
* check national ID or iqama ID is valid.
|
|
43
|
+
*/
|
|
44
|
+
static checkID(control: AbstractControl): ValidationErrors | null;
|
|
45
|
+
static validHijriDate(control: AbstractControl): ValidationErrors | null;
|
|
46
|
+
getErrorMessage(control: UntypedFormControl, patternErrorMsg: string | undefined, isArabic: boolean): string | null;
|
|
47
|
+
/**
|
|
48
|
+
* convert gregorian date to hijri date (Based on Umm al-Qura calculations).
|
|
49
|
+
* @param date: gregorian date
|
|
50
|
+
* @param format: iDD => day: ١٥, iMM => month: ٠٤, iMMM => month: ربيع ٢,
|
|
51
|
+
* iMMMM => ربيع الثاني, iYY => year: ٤٢, iYYYY => year: ١٤٤٢,
|
|
52
|
+
* dd => ن, ddd => إثنين, dddd => الإثنين
|
|
53
|
+
* @example 'iYYYY/iM/iDهـ الموافق YYYY/M/Dم'
|
|
54
|
+
* '١٤٤٢/٠٤/١٥هـ الموافق ٢٠٢٠/١١/٣٠'
|
|
55
|
+
*/
|
|
56
|
+
convertToHijriDate(date: string, format?: string, lang?: string): string;
|
|
57
|
+
convertToGregorianDate(date: Moment, format?: string, lang?: string): string;
|
|
58
|
+
getCurrentHijriDate(): string;
|
|
59
|
+
getCurrentHijriYear(): number;
|
|
60
|
+
private getValidatorErrorMessage;
|
|
61
|
+
private addPatternMsg;
|
|
62
|
+
private getNgbDatepickerErrorMsg;
|
|
63
|
+
private static checkHijriDateValid;
|
|
64
|
+
private static convertToEn;
|
|
65
|
+
private static nationalIdValidate;
|
|
66
|
+
private static iqamaIdValidate;
|
|
67
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IPAFormService, never>;
|
|
68
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<IPAFormService>;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
declare class TextInputComponent implements OnInit, AfterContentChecked {
|
|
72
|
+
private validationService;
|
|
73
|
+
controlDir: NgControl;
|
|
74
|
+
private cd;
|
|
75
|
+
input: ElementRef;
|
|
76
|
+
id: string;
|
|
77
|
+
type: string;
|
|
78
|
+
label: string;
|
|
79
|
+
placeholder: string;
|
|
80
|
+
required: boolean;
|
|
81
|
+
patternErrorMsg: string;
|
|
82
|
+
onlyNumber: boolean;
|
|
83
|
+
pattern: string;
|
|
84
|
+
classes: string;
|
|
85
|
+
containerClasses: string;
|
|
86
|
+
isArabicForm: boolean;
|
|
87
|
+
formControl: UntypedFormControl;
|
|
88
|
+
errorMsg: string | null;
|
|
89
|
+
constructor(validationService: IPAFormService, controlDir: NgControl, cd: ChangeDetectorRef);
|
|
90
|
+
ngAfterContentChecked(): void;
|
|
91
|
+
ngOnInit(): void;
|
|
92
|
+
onChange(event: any): void;
|
|
93
|
+
onTouched(): void;
|
|
94
|
+
writeValue(obj: any): void;
|
|
95
|
+
registerOnChange(fn: any): void;
|
|
96
|
+
registerOnTouched(fn: any): void;
|
|
97
|
+
checkIsNumber(event: Event): void;
|
|
98
|
+
get errorMessage(): string | null;
|
|
99
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextInputComponent, [null, { self: true; }, null]>;
|
|
100
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextInputComponent, "ipa-text-input", never, { "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "label": { "alias": "label"; "required": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "patternErrorMsg": { "alias": "patternErrorMsg"; "required": false; }; "onlyNumber": { "alias": "onlyNumber"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; }, {}, never, never, false, never>;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
declare class TextareaInputComponent implements OnInit, AfterContentChecked {
|
|
104
|
+
private validationService;
|
|
105
|
+
controlDir: NgControl;
|
|
106
|
+
private cd;
|
|
107
|
+
input: ElementRef<any>;
|
|
108
|
+
id: string;
|
|
109
|
+
label: string;
|
|
110
|
+
placeholder: string;
|
|
111
|
+
required: boolean;
|
|
112
|
+
patternErrorMsg: string;
|
|
113
|
+
pattern: string;
|
|
114
|
+
classes: string;
|
|
115
|
+
containerClasses: string;
|
|
116
|
+
isArabicForm: boolean;
|
|
117
|
+
formControl: UntypedFormControl;
|
|
118
|
+
errorMsg: string | null;
|
|
119
|
+
constructor(validationService: IPAFormService, controlDir: NgControl, cd: ChangeDetectorRef);
|
|
120
|
+
ngAfterContentChecked(): void;
|
|
121
|
+
ngOnInit(): void;
|
|
122
|
+
onChange(event: any): void;
|
|
123
|
+
onTouched(): void;
|
|
124
|
+
writeValue(obj: any): void;
|
|
125
|
+
registerOnChange(fn: any): void;
|
|
126
|
+
registerOnTouched(fn: any): void;
|
|
127
|
+
get errorMessage(): string | null;
|
|
128
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextareaInputComponent, [null, { self: true; }, null]>;
|
|
129
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextareaInputComponent, "ipa-textarea-input", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "patternErrorMsg": { "alias": "patternErrorMsg"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; }, {}, never, never, false, never>;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
declare class DropdownInputComponent implements OnInit, AfterContentChecked {
|
|
133
|
+
private validationService;
|
|
134
|
+
controlDir: NgControl;
|
|
135
|
+
input: HTMLSelectElement;
|
|
136
|
+
id: string;
|
|
137
|
+
label: string;
|
|
138
|
+
items: any[];
|
|
139
|
+
textField: string;
|
|
140
|
+
valueField: string;
|
|
141
|
+
required: boolean;
|
|
142
|
+
firstItemLabel: string;
|
|
143
|
+
searchable: boolean;
|
|
144
|
+
notFoundText: string;
|
|
145
|
+
classes: string;
|
|
146
|
+
containerClasses: string;
|
|
147
|
+
isArabicForm: boolean;
|
|
148
|
+
fromGenerateForm: boolean;
|
|
149
|
+
formControl: UntypedFormControl;
|
|
150
|
+
errorMsg: string | null;
|
|
151
|
+
dropdownButtonSpan: Element | null;
|
|
152
|
+
dropdownItems: NodeListOf<Element>;
|
|
153
|
+
hiddenSelect: HTMLSelectElement | null;
|
|
154
|
+
constructor(validationService: IPAFormService, controlDir: NgControl);
|
|
155
|
+
ngOnInit(): void;
|
|
156
|
+
ngAfterContentChecked(): void;
|
|
157
|
+
onChange(event: any): void;
|
|
158
|
+
onTouched(): void;
|
|
159
|
+
writeValue(obj: any): void;
|
|
160
|
+
registerOnChange(fn: any): void;
|
|
161
|
+
registerOnTouched(fn: any): void;
|
|
162
|
+
get errorMessage(): string | null;
|
|
163
|
+
dropdownItemClicked(index: number): void;
|
|
164
|
+
private updateValueAndTrigger;
|
|
165
|
+
private initCustomDropdowns;
|
|
166
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownInputComponent, [null, { self: true; }]>;
|
|
167
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownInputComponent, "ipa-dropdown-input", never, { "id": { "alias": "id"; "required": true; }; "label": { "alias": "label"; "required": true; }; "items": { "alias": "items"; "required": true; }; "textField": { "alias": "textField"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "required": { "alias": "required"; "required": false; }; "firstItemLabel": { "alias": "firstItemLabel"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; "fromGenerateForm": { "alias": "fromGenerateForm"; "required": false; }; }, {}, never, never, false, never>;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
interface ExceptionUrl {
|
|
171
|
+
path: string;
|
|
172
|
+
method: string;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
declare class LoaderService {
|
|
176
|
+
isLoading: BehaviorSubject<boolean>;
|
|
177
|
+
urls: ExceptionUrl[];
|
|
178
|
+
constructor();
|
|
179
|
+
setExceptionUrls(urls: ExceptionUrl[]): void;
|
|
180
|
+
addExceptionUrl(url: ExceptionUrl): void;
|
|
181
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoaderService, never>;
|
|
182
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LoaderService>;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
declare class LoaderComponent implements AfterViewInit {
|
|
186
|
+
private loaderService;
|
|
187
|
+
private cdr;
|
|
188
|
+
loading: boolean;
|
|
189
|
+
isLocal: boolean;
|
|
190
|
+
constructor(loaderService: LoaderService, cdr: ChangeDetectorRef);
|
|
191
|
+
ngAfterViewInit(): void;
|
|
192
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoaderComponent, never>;
|
|
193
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoaderComponent, "ipa-loader", never, { "isLocal": { "alias": "isLocal"; "required": false; }; }, {}, never, never, false, never>;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
interface GenerateForm {
|
|
197
|
+
columns: Column[];
|
|
198
|
+
}
|
|
199
|
+
interface Column {
|
|
200
|
+
arabicLabel: string;
|
|
201
|
+
englishLabel: string;
|
|
202
|
+
formControlName: string;
|
|
203
|
+
validationPattern?: string;
|
|
204
|
+
inputClasses?: string;
|
|
205
|
+
containerClasses?: string;
|
|
206
|
+
valueField?: string;
|
|
207
|
+
textField?: string;
|
|
208
|
+
patternArErrorMsg?: string;
|
|
209
|
+
patternEnErrorMsg?: string;
|
|
210
|
+
type: string;
|
|
211
|
+
size?: number;
|
|
212
|
+
required: boolean;
|
|
213
|
+
data?: Data[] | any[];
|
|
214
|
+
searchable?: boolean;
|
|
215
|
+
notFoundText?: string;
|
|
216
|
+
acceptedFiles?: string;
|
|
217
|
+
multipleFile?: number;
|
|
218
|
+
apiUrl?: string;
|
|
219
|
+
autoUploadFile?: boolean;
|
|
220
|
+
apiURlMethod?: string;
|
|
221
|
+
authorization?: string;
|
|
222
|
+
}
|
|
223
|
+
interface Data {
|
|
224
|
+
id: number;
|
|
225
|
+
description: string;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
declare class GenerateFormComponent implements OnInit {
|
|
229
|
+
private validationService;
|
|
230
|
+
generateForm: UntypedFormGroup;
|
|
231
|
+
form: GenerateForm;
|
|
232
|
+
isArabicForm: boolean;
|
|
233
|
+
siteKey: string;
|
|
234
|
+
recaptchaSize: 'compact' | 'normal';
|
|
235
|
+
lang: 'ar' | 'en';
|
|
236
|
+
recaptchaType: 'image' | 'audio';
|
|
237
|
+
theme: 'light' | 'dark';
|
|
238
|
+
useGlobalDomain: boolean;
|
|
239
|
+
successUpload: EventEmitter<any>;
|
|
240
|
+
fileAdded: EventEmitter<any>;
|
|
241
|
+
fileDeleted: EventEmitter<any>;
|
|
242
|
+
errorMsg: string | null;
|
|
243
|
+
constructor(validationService: IPAFormService);
|
|
244
|
+
ngOnInit(): void;
|
|
245
|
+
getFormControls(formControlName: string): UntypedFormArray;
|
|
246
|
+
getErrorMessage(formControlName: string): string | null;
|
|
247
|
+
SuccessUpload(event: any): void;
|
|
248
|
+
FileAdded(file: any, formControlName: string): void;
|
|
249
|
+
FileDeleted(event: any, formControlName: string): void;
|
|
250
|
+
private changeDataValueForEngForm;
|
|
251
|
+
private createForm;
|
|
252
|
+
private addCheckboxControl;
|
|
253
|
+
private getCheckboxSelectedValues;
|
|
254
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GenerateFormComponent, never>;
|
|
255
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GenerateFormComponent, "ipa-generate-form", never, { "generateForm": { "alias": "generateForm"; "required": false; }; "form": { "alias": "form"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; "siteKey": { "alias": "siteKey"; "required": false; }; "recaptchaSize": { "alias": "recaptchaSize"; "required": false; }; "lang": { "alias": "lang"; "required": false; }; "recaptchaType": { "alias": "recaptchaType"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "useGlobalDomain": { "alias": "useGlobalDomain"; "required": false; }; }, { "successUpload": "successUpload"; "fileAdded": "fileAdded"; "fileDeleted": "fileDeleted"; }, never, never, false, never>;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
interface Files {
|
|
259
|
+
file: File;
|
|
260
|
+
error: string;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
declare class FileUploadComponent implements OnInit {
|
|
264
|
+
private toastrService;
|
|
265
|
+
dropzoneDir: DropzoneDirective;
|
|
266
|
+
isArabicForm: boolean;
|
|
267
|
+
label: string;
|
|
268
|
+
required: boolean;
|
|
269
|
+
acceptedFiles: string;
|
|
270
|
+
multiple: number;
|
|
271
|
+
maxFileSize: number;
|
|
272
|
+
method: string;
|
|
273
|
+
autoUpload: boolean;
|
|
274
|
+
apiUrl: string;
|
|
275
|
+
authorization: string;
|
|
276
|
+
disabled: boolean;
|
|
277
|
+
successUpload: EventEmitter<any>;
|
|
278
|
+
fileAdded: EventEmitter<any>;
|
|
279
|
+
fileDeleted: EventEmitter<any>;
|
|
280
|
+
dragEnter: boolean;
|
|
281
|
+
config: DropzoneConfigInterface;
|
|
282
|
+
filesAdded: File[];
|
|
283
|
+
currentFiles: Files[];
|
|
284
|
+
hasMaxFileExceeded: boolean;
|
|
285
|
+
fileIconDone: string;
|
|
286
|
+
fileIconError: string;
|
|
287
|
+
fileMessage: string;
|
|
288
|
+
formControl: UntypedFormControl;
|
|
289
|
+
constructor(toastrService: ToastrService);
|
|
290
|
+
ngOnInit(): void;
|
|
291
|
+
operationCompleted(e: any): void;
|
|
292
|
+
onUploadSuccess(e: any): void;
|
|
293
|
+
onUploadError(args: any): void;
|
|
294
|
+
fileWasAdded(e: File): void;
|
|
295
|
+
onEnterKey(event: any): void;
|
|
296
|
+
sending(e: any): void;
|
|
297
|
+
reset(e: any): void;
|
|
298
|
+
deleteFile(file: File): void;
|
|
299
|
+
maxFilesExceeded(file: any): void;
|
|
300
|
+
private formatAcceptedFiles;
|
|
301
|
+
private setConfiguration;
|
|
302
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
|
|
303
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ipa-file-upload", never, { "isArabicForm": { "alias": "isArabicForm"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "acceptedFiles": { "alias": "acceptedFiles"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "method": { "alias": "method"; "required": false; }; "autoUpload": { "alias": "autoUpload"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "authorization": { "alias": "authorization"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "successUpload": "successUpload"; "fileAdded": "fileAdded"; "fileDeleted": "fileDeleted"; }, never, never, false, never>;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
declare class DatepickerComponent implements OnInit, AfterContentChecked {
|
|
307
|
+
private ipaFormService;
|
|
308
|
+
calendar: NgbCalendar;
|
|
309
|
+
controlDir: NgControl;
|
|
310
|
+
private cd;
|
|
311
|
+
datepicker: NgbInputDatepicker;
|
|
312
|
+
id: string;
|
|
313
|
+
label: string;
|
|
314
|
+
patternErrorMsg: string;
|
|
315
|
+
required: boolean;
|
|
316
|
+
maxDate: NgbDateStruct;
|
|
317
|
+
minDate: NgbDateStruct;
|
|
318
|
+
classes: string;
|
|
319
|
+
containerClasses: string;
|
|
320
|
+
isArabicForm: boolean;
|
|
321
|
+
isHijriDatepicker: boolean;
|
|
322
|
+
today: ng_ipa_library.NgbDate;
|
|
323
|
+
formControl: UntypedFormControl;
|
|
324
|
+
errorMsg: string | null;
|
|
325
|
+
years: number[];
|
|
326
|
+
minYear: number;
|
|
327
|
+
maxYear: number;
|
|
328
|
+
constructor(ipaFormService: IPAFormService, calendar: NgbCalendar, controlDir: NgControl, config: NgbInputDatepickerConfig, cd: ChangeDetectorRef);
|
|
329
|
+
ngAfterContentChecked(): void;
|
|
330
|
+
ngOnInit(): void;
|
|
331
|
+
onChange(event: any): void;
|
|
332
|
+
onTouched(): void;
|
|
333
|
+
writeValue(obj: any): void;
|
|
334
|
+
registerOnChange(fn: any): void;
|
|
335
|
+
registerOnTouched(fn: any): void;
|
|
336
|
+
openDatepicker(event: Event): void;
|
|
337
|
+
get errorMessage(): string | null;
|
|
338
|
+
navigate(datepicker: NgbDatepicker, number: number): void;
|
|
339
|
+
navigateYear(datepicker: NgbDatepicker, year: number): void;
|
|
340
|
+
private generateYearsRange;
|
|
341
|
+
private initCustomDropdowns;
|
|
342
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerComponent, [null, null, { self: true; }, null, null]>;
|
|
343
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerComponent, "ipa-datepicker", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "patternErrorMsg": { "alias": "patternErrorMsg"; "required": false; }; "required": { "alias": "required"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; }, {}, never, never, false, never>;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
declare class HijriDatepickerComponent extends DatepickerComponent {
|
|
347
|
+
isHijriDatepicker: boolean;
|
|
348
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HijriDatepickerComponent, never>;
|
|
349
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HijriDatepickerComponent, "ipa-hijri-datepicker", never, {}, {}, never, never, false, never>;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
declare class GregorianDatepickerComponent extends DatepickerComponent {
|
|
353
|
+
isHijriDatepicker: boolean;
|
|
354
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GregorianDatepickerComponent, never>;
|
|
355
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GregorianDatepickerComponent, "ipa-gregorian-datepicker", never, {}, {}, never, never, false, never>;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
declare class RecaptchaComponent implements OnInit {
|
|
359
|
+
controlDir: NgControl;
|
|
360
|
+
recaptcha: any;
|
|
361
|
+
siteKey: string;
|
|
362
|
+
recaptchaSize: 'compact' | 'normal';
|
|
363
|
+
lang: 'ar' | 'en';
|
|
364
|
+
recaptchaType: 'image' | 'audio';
|
|
365
|
+
theme: 'light' | 'dark';
|
|
366
|
+
useGlobalDomain: boolean;
|
|
367
|
+
constructor(controlDir: NgControl);
|
|
368
|
+
ngOnInit(): void;
|
|
369
|
+
onChange(event: any): void;
|
|
370
|
+
onTouched(): void;
|
|
371
|
+
writeValue(obj: any): void;
|
|
372
|
+
registerOnChange(fn: any): void;
|
|
373
|
+
registerOnTouched(fn: any): void;
|
|
374
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RecaptchaComponent, [{ self: true; }]>;
|
|
375
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RecaptchaComponent, "ipa-recaptcha", never, { "siteKey": { "alias": "siteKey"; "required": false; }; "recaptchaSize": { "alias": "recaptchaSize"; "required": false; }; "lang": { "alias": "lang"; "required": false; }; "recaptchaType": { "alias": "recaptchaType"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "useGlobalDomain": { "alias": "useGlobalDomain"; "required": false; }; }, {}, never, never, false, never>;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
declare class ShareButtonComponent implements OnChanges {
|
|
379
|
+
private toastrService;
|
|
380
|
+
title: string;
|
|
381
|
+
tooltip: string;
|
|
382
|
+
containerClasses: string;
|
|
383
|
+
description: string;
|
|
384
|
+
btnLabel: string;
|
|
385
|
+
constructor(toastrService: ToastrService);
|
|
386
|
+
ngOnChanges(): void;
|
|
387
|
+
alertSuccessCopy(): void;
|
|
388
|
+
private addShareStyleAndScript;
|
|
389
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShareButtonComponent, never>;
|
|
390
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ShareButtonComponent, "ipa-share-button", never, { "title": { "alias": "title"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "description": { "alias": "description"; "required": false; }; "btnLabel": { "alias": "btnLabel"; "required": false; }; }, {}, never, never, false, never>;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
declare class HijriDatePipe implements PipeTransform {
|
|
394
|
+
transform(date: string, format?: string, lang?: 'ar' | 'en'): string;
|
|
395
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HijriDatePipe, never>;
|
|
396
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<HijriDatePipe, "hijriDate", false>;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
declare class PipesModule {
|
|
400
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PipesModule, never>;
|
|
401
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<PipesModule, [typeof HijriDatePipe], never, [typeof HijriDatePipe]>;
|
|
402
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<PipesModule>;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
declare class NgIPALibraryModule {
|
|
406
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgIPALibraryModule, never>;
|
|
407
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgIPALibraryModule, [typeof TextInputComponent, typeof TextareaInputComponent, typeof DropdownInputComponent, typeof LoaderComponent, typeof GenerateFormComponent, typeof FileUploadComponent, typeof DatepickerComponent, typeof HijriDatepickerComponent, typeof GregorianDatepickerComponent, typeof RecaptchaComponent, typeof ShareButtonComponent], [typeof i12.CommonModule, typeof i13.FormsModule, typeof i13.ReactiveFormsModule, typeof i14.ToastrModule, typeof i15.DropzoneModule, typeof i16.NgxCaptchaModule, typeof PipesModule, typeof i18.NgbDatepickerModule, typeof i19.NgSelectModule], [typeof TextInputComponent, typeof TextareaInputComponent, typeof DropdownInputComponent, typeof LoaderComponent, typeof GenerateFormComponent, typeof FileUploadComponent, typeof PipesModule, typeof HijriDatepickerComponent, typeof GregorianDatepickerComponent, typeof RecaptchaComponent, typeof ShareButtonComponent]>;
|
|
408
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgIPALibraryModule>;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
declare class LoadingInterceptor implements HttpInterceptor {
|
|
412
|
+
private loaderService;
|
|
413
|
+
private requests;
|
|
414
|
+
constructor(loaderService: LoaderService);
|
|
415
|
+
removeRequest(req: HttpRequest<any>): void;
|
|
416
|
+
intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
417
|
+
isException(req: HttpRequest<any>): boolean;
|
|
418
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoadingInterceptor, never>;
|
|
419
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LoadingInterceptor>;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
interface ApiResponse {
|
|
423
|
+
statusCode: number;
|
|
424
|
+
message: string;
|
|
425
|
+
errors?: string[];
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
interface ApiException extends ApiResponse {
|
|
429
|
+
innerException: string;
|
|
430
|
+
stackTrace: string;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
declare class CommonService {
|
|
434
|
+
private toastrService;
|
|
435
|
+
constructor(toastrService: ToastrService);
|
|
436
|
+
copyToClipboard(copyText: any, message: string): void;
|
|
437
|
+
print(element: string, title: string, classes?: string): void;
|
|
438
|
+
private getElementTag;
|
|
439
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CommonService, never>;
|
|
440
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CommonService>;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
declare class ErrorService {
|
|
444
|
+
private toastrService;
|
|
445
|
+
private commonService;
|
|
446
|
+
urls: ExceptionUrl[];
|
|
447
|
+
constructor(toastrService: ToastrService, commonService: CommonService);
|
|
448
|
+
setExceptionUrls(urls: ExceptionUrl[]): void;
|
|
449
|
+
addExceptionUrl(url: ExceptionUrl): void;
|
|
450
|
+
showErrorMsg(response: ApiResponse, toastrConfig: Partial<IndividualConfig>): void;
|
|
451
|
+
show500ErrorMsg(response: ApiException, toastrConfig: Partial<IndividualConfig>): void;
|
|
452
|
+
private addCopyButton;
|
|
453
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ErrorService, never>;
|
|
454
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ErrorService>;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
declare class ErrorInterceptor implements HttpInterceptor {
|
|
458
|
+
private errorService;
|
|
459
|
+
constructor(errorService: ErrorService);
|
|
460
|
+
intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
461
|
+
private isException;
|
|
462
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ErrorInterceptor, never>;
|
|
463
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ErrorInterceptor>;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
interface DecodedToken {
|
|
467
|
+
nameid?: string;
|
|
468
|
+
given_name?: string;
|
|
469
|
+
email?: string;
|
|
470
|
+
exp?: number;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
declare class AuthService {
|
|
474
|
+
currentUser: BehaviorSubject<DecodedToken>;
|
|
475
|
+
currentUserUrl: string;
|
|
476
|
+
constructor();
|
|
477
|
+
getToken(): string;
|
|
478
|
+
getDecodedToken(): any;
|
|
479
|
+
setCurrentUser(): void;
|
|
480
|
+
getTokenFromHidden(): string;
|
|
481
|
+
getDecodedTokenFromHidden(): any;
|
|
482
|
+
setCurrentUserFromHidden(): void;
|
|
483
|
+
setCurrentUserUrl(url: string): void;
|
|
484
|
+
private decodeJwt;
|
|
485
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuthService, never>;
|
|
486
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AuthService>;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
declare class TokenService {
|
|
490
|
+
urls: ExceptionUrl[];
|
|
491
|
+
constructor();
|
|
492
|
+
setExceptionUrls(urls: ExceptionUrl[]): void;
|
|
493
|
+
addExceptionUrl(url: ExceptionUrl): void;
|
|
494
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TokenService, never>;
|
|
495
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TokenService>;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
declare class TokenInterceptor implements HttpInterceptor {
|
|
499
|
+
private authService;
|
|
500
|
+
private http;
|
|
501
|
+
private loaderService;
|
|
502
|
+
private tokenService;
|
|
503
|
+
refresh: boolean;
|
|
504
|
+
constructor(authService: AuthService, http: HttpClient, loaderService: LoaderService, tokenService: TokenService);
|
|
505
|
+
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
506
|
+
private isTokenExpired;
|
|
507
|
+
isException(req: HttpRequest<any>): boolean;
|
|
508
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TokenInterceptor, never>;
|
|
509
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TokenInterceptor>;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
declare class myIPATokenInterceptor implements HttpInterceptor {
|
|
513
|
+
private authService;
|
|
514
|
+
private tokenService;
|
|
515
|
+
constructor(authService: AuthService, tokenService: TokenService);
|
|
516
|
+
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
517
|
+
isException(req: HttpRequest<any>): boolean;
|
|
518
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<myIPATokenInterceptor, never>;
|
|
519
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<myIPATokenInterceptor>;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
interface Breadcrumbs {
|
|
523
|
+
nodeName: string;
|
|
524
|
+
nodeUrl: string | null;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
declare class BreadcrumbsService {
|
|
528
|
+
constructor();
|
|
529
|
+
setPageTitle(text: string): void;
|
|
530
|
+
setMainPageTitle(text: string, url: string): void;
|
|
531
|
+
addBreadcrumb(nodeName: string, spanClasses?: string, linkClasses?: string): void;
|
|
532
|
+
addBreadcrumbList(nodeList: Breadcrumbs[], spanClasses?: string, linkClasses?: string): void;
|
|
533
|
+
createBreadcrumbs(nodeList: Breadcrumbs[], spanClasses?: string, linkClasses?: string): void;
|
|
534
|
+
removeLastBreadcrumb(): void;
|
|
535
|
+
removeBreadcrumbByNodeName(nodeName: string): void;
|
|
536
|
+
removeLastBreadcrumbsByLength(length: number): void;
|
|
537
|
+
private createLink;
|
|
538
|
+
private createSpan;
|
|
539
|
+
private setCurrentNode;
|
|
540
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbsService, never>;
|
|
541
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BreadcrumbsService>;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
declare class BreadcrumbsV2Service {
|
|
545
|
+
constructor();
|
|
546
|
+
setPageTitle(text: string): void;
|
|
547
|
+
setPageTitleHTML(text: string): void;
|
|
548
|
+
addBreadcrumb(nodeName: string, arrowImgSrc?: string, imgClasses?: string, linkClasses?: string): void;
|
|
549
|
+
addBreadcrumbList(nodeList: Breadcrumbs[], arrowImgSrc?: string, imgClasses?: string, linkClasses?: string): void;
|
|
550
|
+
createBreadcrumbs(nodeList: Breadcrumbs[], arrowImgSrc?: string, imgClasses?: string, linkClasses?: string): void;
|
|
551
|
+
removeLastBreadcrumb(): void;
|
|
552
|
+
removeBreadcrumbByNodeName(nodeName: string): void;
|
|
553
|
+
removeLastBreadcrumbsByLength(length: number): void;
|
|
554
|
+
private createLink;
|
|
555
|
+
private createSpan;
|
|
556
|
+
private createImg;
|
|
557
|
+
private setCurrentNode;
|
|
558
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbsV2Service, never>;
|
|
559
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BreadcrumbsV2Service>;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
interface PagedResult<T> {
|
|
563
|
+
data: T[];
|
|
564
|
+
count: number;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
export { AuthService, BreadcrumbsService, BreadcrumbsV2Service, CommonService, DropdownInputComponent, ErrorInterceptor, ErrorService, FileUploadComponent, GenerateFormComponent, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, IPAFormService, LoaderComponent, LoaderService, LoadingInterceptor, NgIPALibraryModule, PipesModule, RecaptchaComponent, ShareButtonComponent, TextInputComponent, TextareaInputComponent, TokenInterceptor, TokenService, myIPATokenInterceptor };
|
|
568
|
+
export type { ApiException, ApiResponse, Column, Data, GenerateForm, PagedResult };
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-ipa-library",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "<
|
|
6
|
-
"@angular/core": "<
|
|
7
|
-
"@angular/cdk": "<
|
|
5
|
+
"@angular/common": "<21.0.0",
|
|
6
|
+
"@angular/core": "<21.0.0",
|
|
7
|
+
"@angular/cdk": "<21.0.0"
|
|
8
8
|
},
|
|
9
9
|
"peerDependenciesMeta": {
|
|
10
10
|
"@angular/cdk": {
|
|
@@ -13,18 +13,13 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"tslib": "^2.3.1",
|
|
16
|
-
"ngx-toastr": "^19.
|
|
17
|
-
"ngx-captcha": "^
|
|
16
|
+
"ngx-toastr": "^19.1.0",
|
|
17
|
+
"ngx-captcha": "^14.0.0",
|
|
18
18
|
"ngx-dropzone-wrapper": "^14.0.0",
|
|
19
19
|
"moment-hijri": "^3.0.0",
|
|
20
20
|
"@types/moment-hijri": "^2.1.4",
|
|
21
|
-
"@ng-bootstrap/ng-bootstrap": "^
|
|
22
|
-
"@
|
|
23
|
-
"@fortawesome/angular-fontawesome": "^1.0.0",
|
|
24
|
-
"@fortawesome/free-brands-svg-icons": "^6.7.1",
|
|
25
|
-
"@fortawesome/free-solid-svg-icons": "^6.7.1",
|
|
26
|
-
"ngx-sharebuttons": "^11.0.0",
|
|
27
|
-
"@ng-select/ng-select": "^14.9.0"
|
|
21
|
+
"@ng-bootstrap/ng-bootstrap": "^19.0.1",
|
|
22
|
+
"@ng-select/ng-select": "^20.7.0"
|
|
28
23
|
},
|
|
29
24
|
"module": "fesm2022/ng-ipa-library.mjs",
|
|
30
25
|
"typings": "index.d.ts",
|
|
@@ -1,56 +1,5 @@
|
|
|
1
|
-
@import "node_modules/@angular/cdk/overlay/index";
|
|
2
|
-
@import "node_modules/ngx-sharebuttons/themes/default.scss";
|
|
3
1
|
@import "node_modules/@ng-select/ng-select/scss/default.theme.scss";
|
|
4
2
|
|
|
5
|
-
//ipa share button style --start
|
|
6
|
-
.cdk-overlay-pane {
|
|
7
|
-
direction: rtl !important;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.cdk-overlay-container .cdk-overlay-pane {
|
|
11
|
-
.sb-overlay {
|
|
12
|
-
h3 {
|
|
13
|
-
visibility: hidden;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
h3::after {
|
|
17
|
-
content: "شارك";
|
|
18
|
-
display: block;
|
|
19
|
-
visibility: visible;
|
|
20
|
-
position: absolute;
|
|
21
|
-
top: 0;
|
|
22
|
-
left: 0;
|
|
23
|
-
bottom: 0;
|
|
24
|
-
right: 0;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.sb-close-overlay {
|
|
29
|
-
right: 250px;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
#IPAShareBtn {
|
|
34
|
-
width: 35px !important;
|
|
35
|
-
min-width: unset !important;
|
|
36
|
-
--sb-border-radius: none !important;
|
|
37
|
-
--sb-background: none !important;
|
|
38
|
-
font-size: 16px !important;
|
|
39
|
-
|
|
40
|
-
.sb-icon {
|
|
41
|
-
background-color: white;
|
|
42
|
-
font-size: 1.4em !important;
|
|
43
|
-
color: #02b9b4;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.sm-share-title {
|
|
48
|
-
font-size: 20px !important;
|
|
49
|
-
vertical-align: baseline;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
//ipa share button style --end
|
|
53
|
-
|
|
54
3
|
ng-select.ng-invalid.ng-touched .ng-select-container {
|
|
55
4
|
border-color: #dc3545;
|
|
56
5
|
box-shadow:
|