UNPKG

629 kBJavaScriptView Raw
1import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
2import * as i0 from '@angular/core';
3import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, HostBinding, NgModule, forwardRef, Directive, HostListener, ViewChild, Injectable, EventEmitter, PLATFORM_ID, Inject, ContentChildren, Output, isDevMode, Injector, ElementRef, TemplateRef, Attribute, NO_ERRORS_SCHEMA, ContentChild } from '@angular/core';
4import * as i2 from '@angular/common';
5import { CommonModule, isPlatformBrowser, DOCUMENT } from '@angular/common';
6import { NG_VALUE_ACCESSOR, FormsModule, NG_VALIDATORS } from '@angular/forms';
7import { takeUntil, take, throttleTime, map, pairwise, distinctUntilChanged, share, filter, skip } from 'rxjs/operators';
8import { Subject, timer, merge, fromEvent, of, animationFrameScheduler, Observable } from 'rxjs';
9import { trigger, state, style, transition, animate } from '@angular/animations';
10import * as i1 from '@angular/cdk/a11y';
11import { A11yModule } from '@angular/cdk/a11y';
12import { RouterLinkWithHref } from '@angular/router';
13import { __decorate } from 'tslib';
14
15class MDBBadgeComponent {
16 constructor(_el, _renderer) {
17 this._el = _el;
18 this._renderer = _renderer;
19 this._default = false;
20 this._primary = false;
21 this._secondary = false;
22 this._success = false;
23 this._info = false;
24 this._warning = false;
25 this._danger = false;
26 this._pill = false;
27 }
28 get default() {
29 return this._default;
30 }
31 set default(value) {
32 this._default = coerceBooleanProperty(value);
33 }
34 get primary() {
35 return this._primary;
36 }
37 set primary(value) {
38 this._primary = coerceBooleanProperty(value);
39 }
40 get secondary() {
41 return this._secondary;
42 }
43 set secondary(value) {
44 this._secondary = coerceBooleanProperty(value);
45 }
46 get success() {
47 return this._success;
48 }
49 set success(value) {
50 this._success = coerceBooleanProperty(value);
51 }
52 get info() {
53 return this._info;
54 }
55 set info(value) {
56 this._info = coerceBooleanProperty(value);
57 }
58 get warning() {
59 return this._warning;
60 }
61 set warning(value) {
62 this._warning = coerceBooleanProperty(value);
63 }
64 get danger() {
65 return this._danger;
66 }
67 set danger(value) {
68 this._danger = coerceBooleanProperty(value);
69 }
70 get pill() {
71 return this._pill;
72 }
73 set pill(value) {
74 this._pill = coerceBooleanProperty(value);
75 }
76 ngOnInit() {
77 this._renderer.addClass(this._el.nativeElement, 'badge');
78 if (this.color) {
79 const customClassArr = this.color.split(' ');
80 customClassArr.forEach((el) => {
81 this._renderer.addClass(this._el.nativeElement, el);
82 });
83 }
84 }
85}
86MDBBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBBadgeComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
87MDBBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MDBBadgeComponent, selector: "mdb-badge", inputs: { default: "default", primary: "primary", secondary: "secondary", success: "success", info: "info", warning: "warning", danger: "danger", pill: "pill", classInside: "classInside", color: "color", class: "class" }, host: { properties: { "class.badge-default": "this.default", "class.badge-primary": "this.primary", "class.badge-secondary": "this.secondary", "class.badge-success": "this.success", "class.badge-info": "this.info", "class.badge-warning": "this.warning", "class.badge-danger": "this.danger", "class.badge-pill": "this.pill" } }, ngImport: i0, template: "<span class=\"{{class}} {{classInside}}\">\n <ng-content></ng-content>\n</span>\n", styles: [".badge{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border-radius:.125rem;color:#fff!important}.badge-pill{border-radius:10rem;padding-right:.6rem;padding-left:.6rem}.badge-primary{background-color:#4285f4!important;color:#fff!important}.badge-danger{background-color:#ff3547!important;color:#fff!important}.badge-warning{background-color:#fb3!important;color:#fff!important}.badge-success{background-color:#00c851!important;color:#fff!important}.badge-info{background-color:#33b5e5!important;color:#fff!important}.badge-default{background-color:#2bbbad!important;color:#fff!important}.badge-secondary{background-color:#a6c!important;color:#fff!important}.badge-dark{background-color:#212121!important;color:#fff!important}.badge-light{background-color:#e0e0e0!important;color:#000!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
88i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBBadgeComponent, decorators: [{
89 type: Component,
90 args: [{ selector: 'mdb-badge', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"{{class}} {{classInside}}\">\n <ng-content></ng-content>\n</span>\n", styles: [".badge{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border-radius:.125rem;color:#fff!important}.badge-pill{border-radius:10rem;padding-right:.6rem;padding-left:.6rem}.badge-primary{background-color:#4285f4!important;color:#fff!important}.badge-danger{background-color:#ff3547!important;color:#fff!important}.badge-warning{background-color:#fb3!important;color:#fff!important}.badge-success{background-color:#00c851!important;color:#fff!important}.badge-info{background-color:#33b5e5!important;color:#fff!important}.badge-default{background-color:#2bbbad!important;color:#fff!important}.badge-secondary{background-color:#a6c!important;color:#fff!important}.badge-dark{background-color:#212121!important;color:#fff!important}.badge-light{background-color:#e0e0e0!important;color:#000!important}\n"] }]
91 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { default: [{
92 type: Input
93 }, {
94 type: HostBinding,
95 args: ['class.badge-default']
96 }], primary: [{
97 type: Input
98 }, {
99 type: HostBinding,
100 args: ['class.badge-primary']
101 }], secondary: [{
102 type: Input
103 }, {
104 type: HostBinding,
105 args: ['class.badge-secondary']
106 }], success: [{
107 type: Input
108 }, {
109 type: HostBinding,
110 args: ['class.badge-success']
111 }], info: [{
112 type: Input
113 }, {
114 type: HostBinding,
115 args: ['class.badge-info']
116 }], warning: [{
117 type: Input
118 }, {
119 type: HostBinding,
120 args: ['class.badge-warning']
121 }], danger: [{
122 type: Input
123 }, {
124 type: HostBinding,
125 args: ['class.badge-danger']
126 }], pill: [{
127 type: Input
128 }, {
129 type: HostBinding,
130 args: ['class.badge-pill']
131 }], classInside: [{
132 type: Input
133 }], color: [{
134 type: Input
135 }], class: [{
136 type: Input
137 }] } });
138
139class BadgeModule {
140}
141BadgeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
142BadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BadgeModule, declarations: [MDBBadgeComponent], exports: [MDBBadgeComponent] });
143BadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BadgeModule });
144i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BadgeModule, decorators: [{
145 type: NgModule,
146 args: [{
147 declarations: [MDBBadgeComponent],
148 exports: [MDBBadgeComponent]
149 }]
150 }] });
151
152class MdbBreadcrumbComponent {
153}
154MdbBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
155MdbBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbBreadcrumbComponent, selector: "mdb-breadcrumb", inputs: { customClass: "customClass", textTransform: "textTransform" }, ngImport: i0, template: "<ol class=\"breadcrumb list-inline list-unstyled {{customClass}} text-{{textTransform}}\">\n <ng-content></ng-content>\n</ol>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
156i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbBreadcrumbComponent, decorators: [{
157 type: Component,
158 args: [{ selector: 'mdb-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ol class=\"breadcrumb list-inline list-unstyled {{customClass}} text-{{textTransform}}\">\n <ng-content></ng-content>\n</ol>\n" }]
159 }], propDecorators: { customClass: [{
160 type: Input
161 }], textTransform: [{
162 type: Input
163 }] } });
164
165class MdbBreadcrumbItemComponent {
166 constructor(_el, _renderer) {
167 this._el = _el;
168 this._renderer = _renderer;
169 }
170 ngOnInit() {
171 this._renderer.addClass(this._el.nativeElement, 'breadcrumb-item');
172 }
173}
174MdbBreadcrumbItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbBreadcrumbItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
175MdbBreadcrumbItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbBreadcrumbItemComponent, selector: "mdb-breadcrumb-item", inputs: { fontWeight: "fontWeight" }, ngImport: i0, template: "<li class=\"list-inline-item breadcrumb-item font-weight-{{fontWeight}}\">\n <ng-content></ng-content>\n</li>\n", styles: [".breadcrumb-item{cursor:pointer}.breadcrumb-item.active{color:#6c757d!important}.breadcrumb-item.active>.breadcrumb-item{cursor:default}.light-font .breadcrumb-item:before{color:#fff}.light-font .breadcrumb-item.active{color:#cfd8dc!important}.light-font .breadcrumb-item.active>.breadcrumb-item{cursor:default}.dark-font .breadcrumb-item:before{color:#000}.dark-font .breadcrumb-item.active{color:#455a64!important}.dark-font .breadcrumb-item.active>.breadcrumb-item{cursor:default}\n"], encapsulation: i0.ViewEncapsulation.None });
176i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbBreadcrumbItemComponent, decorators: [{
177 type: Component,
178 args: [{ selector: 'mdb-breadcrumb-item', encapsulation: ViewEncapsulation.None, template: "<li class=\"list-inline-item breadcrumb-item font-weight-{{fontWeight}}\">\n <ng-content></ng-content>\n</li>\n", styles: [".breadcrumb-item{cursor:pointer}.breadcrumb-item.active{color:#6c757d!important}.breadcrumb-item.active>.breadcrumb-item{cursor:default}.light-font .breadcrumb-item:before{color:#fff}.light-font .breadcrumb-item.active{color:#cfd8dc!important}.light-font .breadcrumb-item.active>.breadcrumb-item{cursor:default}.dark-font .breadcrumb-item:before{color:#000}.dark-font .breadcrumb-item.active{color:#455a64!important}.dark-font .breadcrumb-item.active>.breadcrumb-item{cursor:default}\n"] }]
179 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { fontWeight: [{
180 type: Input
181 }] } });
182
183class BreadcrumbModule {
184}
185BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
186BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BreadcrumbModule, declarations: [MdbBreadcrumbComponent, MdbBreadcrumbItemComponent], imports: [CommonModule], exports: [MdbBreadcrumbComponent, MdbBreadcrumbItemComponent] });
187BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BreadcrumbModule, imports: [[CommonModule]] });
188i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BreadcrumbModule, decorators: [{
189 type: NgModule,
190 args: [{
191 imports: [CommonModule],
192 declarations: [MdbBreadcrumbComponent, MdbBreadcrumbItemComponent],
193 exports: [MdbBreadcrumbComponent, MdbBreadcrumbItemComponent]
194 }]
195 }] });
196
197// eslint-disable-next-line @angular-eslint/component-class-suffix
198class MdbBtnDirective {
199 constructor(el, renderer) {
200 this.el = el;
201 this.renderer = renderer;
202 this.color = '';
203 this._rounded = false;
204 this.gradient = '';
205 this._outline = false;
206 this._flat = false;
207 this.size = '';
208 this._block = false;
209 this._floating = false;
210 }
211 get rounded() {
212 return this._rounded;
213 }
214 set rounded(value) {
215 this._rounded = coerceBooleanProperty(value);
216 }
217 get outline() {
218 return this._outline;
219 }
220 set outline(value) {
221 this._outline = coerceBooleanProperty(value);
222 }
223 get flat() {
224 return this._flat;
225 }
226 set flat(value) {
227 this._flat = coerceBooleanProperty(value);
228 }
229 get block() {
230 return this._block;
231 }
232 set block(value) {
233 this._block = coerceBooleanProperty(value);
234 }
235 get floating() {
236 return this._floating;
237 }
238 set floating(value) {
239 this._floating = coerceBooleanProperty(value);
240 }
241 ngOnInit() {
242 this.colorClass = 'btn-' + this.color;
243 this.gradientClass = this.gradient + '-gradient';
244 this.outlineClass = 'btn-outline-' + this.color;
245 this.flatClass = 'btn-flat';
246 this.roundedClass = 'btn-rounded';
247 this.sizeClass = 'btn-' + this.size;
248 this.blockClass = 'btn-block';
249 this.floatingClass = 'btn-floating';
250 this.renderer.addClass(this.el.nativeElement, 'btn');
251 this.initClasses();
252 }
253 ngOnChanges(changes) {
254 if (changes.color) {
255 this.renderer.removeClass(this.el.nativeElement, this.colorClass);
256 if (this.color && this.color !== '') {
257 this.colorClass = 'btn-' + this.color;
258 this.renderer.addClass(this.el.nativeElement, this.colorClass);
259 }
260 if (this.outline) {
261 const currentOutlineClass = this.outlineClass;
262 this.outlineClass = 'btn-outline-' + this.color;
263 this.renderer.removeClass(this.el.nativeElement, currentOutlineClass);
264 this.renderer.addClass(this.el.nativeElement, this.outlineClass);
265 }
266 }
267 if (changes.gradient) {
268 this.renderer.removeClass(this.el.nativeElement, this.gradientClass);
269 if (this.gradient !== '') {
270 this.gradientClass = this.gradient + '-gradient';
271 this.renderer.addClass(this.el.nativeElement, this.gradientClass);
272 }
273 }
274 if (changes.outline) {
275 if (!this.outline) {
276 this.renderer.removeClass(this.el.nativeElement, this.outlineClass);
277 }
278 if (this.outline) {
279 this.renderer.removeClass(this.el.nativeElement, this.colorClass);
280 this.renderer.addClass(this.el.nativeElement, this.outlineClass);
281 }
282 this.outlineClass = 'btn-outline-' + this.color;
283 }
284 if (changes.flat) {
285 this.renderer.removeClass(this.el.nativeElement, this.flatClass);
286 if (this.flat) {
287 if (this.color) {
288 this.renderer.removeClass(this.el.nativeElement, this.colorClass);
289 }
290 if (this.gradient) {
291 this.renderer.removeClass(this.el.nativeElement, this.gradientClass);
292 }
293 if (this.outline) {
294 this.renderer.removeClass(this.el.nativeElement, this.outlineClass);
295 }
296 if (this.rounded) {
297 this.renderer.removeClass(this.el.nativeElement, this.roundedClass);
298 }
299 this.renderer.addClass(this.el.nativeElement, this.flatClass);
300 }
301 }
302 if (changes.rounded) {
303 this.renderer.removeClass(this.el.nativeElement, this.roundedClass);
304 if (this.rounded) {
305 this.roundedClass = 'btn-rounded';
306 this.renderer.addClass(this.el.nativeElement, this.roundedClass);
307 }
308 }
309 if (changes.size) {
310 this.renderer.removeClass(this.el.nativeElement, this.sizeClass);
311 if (this.size !== '') {
312 this.sizeClass = 'btn-' + this.size;
313 this.renderer.addClass(this.el.nativeElement, this.sizeClass);
314 }
315 }
316 if (changes.block) {
317 this.renderer.removeClass(this.el.nativeElement, this.blockClass);
318 if (this.block) {
319 this.blockClass = 'btn-block';
320 this.renderer.addClass(this.el.nativeElement, this.blockClass);
321 }
322 }
323 if (changes.floating) {
324 if (!this.floating) {
325 this.renderer.removeClass(this.el.nativeElement, this.floatingClass);
326 this.renderer.addClass(this.el.nativeElement, 'btn');
327 }
328 if (this.floating) {
329 this.floatingClass = 'btn-floating';
330 this.renderer.addClass(this.el.nativeElement, this.floatingClass);
331 this.renderer.removeClass(this.el.nativeElement, 'btn');
332 }
333 }
334 }
335 initClasses() {
336 if (this.color !== '') {
337 this.renderer.addClass(this.el.nativeElement, this.colorClass);
338 }
339 if (this.rounded) {
340 this.renderer.addClass(this.el.nativeElement, this.roundedClass);
341 }
342 if (this.gradient) {
343 if (this.color !== '') {
344 this.renderer.removeClass(this.el.nativeElement, this.colorClass);
345 }
346 this.renderer.addClass(this.el.nativeElement, this.gradientClass);
347 }
348 if (this.outline) {
349 this.renderer.removeClass(this.el.nativeElement, this.colorClass);
350 this.renderer.addClass(this.el.nativeElement, this.outlineClass);
351 }
352 if (this.flat) {
353 if (this.color) {
354 this.renderer.removeClass(this.el.nativeElement, this.colorClass);
355 }
356 if (this.gradient) {
357 this.renderer.removeClass(this.el.nativeElement, this.gradientClass);
358 }
359 if (this.outline) {
360 this.renderer.removeClass(this.el.nativeElement, this.outlineClass);
361 }
362 if (this.rounded) {
363 this.renderer.removeClass(this.el.nativeElement, this.roundedClass);
364 }
365 this.renderer.addClass(this.el.nativeElement, this.flatClass);
366 }
367 if (this.size) {
368 this.renderer.addClass(this.el.nativeElement, this.sizeClass);
369 }
370 if (this.block) {
371 this.renderer.addClass(this.el.nativeElement, this.blockClass);
372 }
373 if (this.floating) {
374 this.renderer.addClass(this.el.nativeElement, this.floatingClass);
375 this.renderer.removeClass(this.el.nativeElement, 'btn');
376 }
377 }
378}
379MdbBtnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbBtnDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
380MdbBtnDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbBtnDirective, selector: "[mdbBtn]", inputs: { color: "color", rounded: "rounded", gradient: "gradient", outline: "outline", flat: "flat", size: "size", block: "block", floating: "floating" }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".btn{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;padding:.84rem 2.14rem;font-size:.81rem;transition:all .2s ease-in-out;margin:.375rem;border:0;border-radius:.125rem;cursor:pointer;text-transform:uppercase;white-space:normal;word-wrap:break-word;color:inherit}.btn:hover,.btn:active,.btn:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;outline:0}.btn:not([disabled]):not(.disabled):active,.btn:not([disabled]):not(.disabled).active{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn .fas,.btn .fab,.btn .far{position:relative;font-size:.9rem}.btn .fas.right,.btn .fab.right,.btn .far.right{margin-left:.3rem}.btn .fas.left,.btn .fab.left,.btn .far.left{margin-right:.3rem}.btn.btn-lg .fas,.btn.btn-lg .fab,.btn.btn-lg .far{font-size:1rem}.btn.btn-md .fas,.btn.btn-md .fab,.btn.btn-md .far{font-size:.8rem}.btn.btn-sm .fas,.btn.btn-sm .fab,.btn.btn-sm .far{font-size:.7rem}.btn.btn-tb{padding:.3rem 1rem}.btn.disabled:active,.btn.disabled:focus,.btn.disabled:hover,.btn:disabled:active,.btn:disabled:focus,.btn:disabled:hover{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f}.btn.btn-block{margin:inherit}.btn.btn-link{color:#000;box-shadow:none;background-color:transparent}.btn.btn-link:active,.btn.btn-link:focus,.btn.btn-link:hover{box-shadow:none!important;background-color:transparent}.btn[class*=btn-outline-]{padding-top:.7rem;padding-bottom:.7rem}.btn[class*=btn-outline-].btn-lg{padding-top:.88rem;padding-bottom:.88rem}.btn[class*=btn-outline-].btn-md{padding-top:.58rem;padding-bottom:.58rem}.btn[class*=btn-outline-].btn-sm{padding-top:.38rem;padding-bottom:.38rem}.btn-group .btn{margin:0}.btn .fa-lg,.btn-floating .fa-lg{font-size:1.33333em!important}.btn .fa-xs,.btn-floating .fa-xs{font-size:.75em!important}.btn .fa-sm,.btn-floating .fa-sm{font-size:.875em!important}.btn .fa-1x,.btn-floating .fa-1x{font-size:1em!important}.btn .fa-2x,.btn-floating .fa-2x{font-size:2em!important}.btn .fa-3x,.btn-floating .fa-3x{font-size:3em!important}.btn .fa-4x,.btn-floating .fa-4x{font-size:4em!important}.btn .fa-5x,.btn-floating .fa-5x{font-size:5em!important}.btn .fa-6x,.btn-floating .fa-6x{font-size:6em!important}.btn .fa-7x,.btn-floating .fa-7x{font-size:7em!important}.btn .fa-8x,.btn-floating .fa-8x{font-size:8em!important}.btn .fa-9x,.btn-floating .fa-9x{font-size:9em!important}.btn .fa-10x,.btn-floating .fa-10x{font-size:10em!important}.btn-primary{background-color:#4285f4!important;color:#fff}.btn-primary:hover{background-color:#5a95f5;color:#fff}.btn-primary:focus,.btn-primary.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-primary:focus,.btn-primary:active,.btn-primary.active{background-color:#0b51c5}.btn-primary.dropdown-toggle{background-color:#4285f4!important}.btn-primary.dropdown-toggle:hover,.btn-primary.dropdown-toggle:focus{background-color:#5a95f5!important}.btn-primary:not([disabled]):not(.disabled):active,.btn-primary:not([disabled]):not(.disabled).active,.show>.btn-primary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#0b51c5!important}.btn-primary:not([disabled]):not(.disabled):active:focus,.btn-primary:not([disabled]):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.primary-ic{color:#4285f4!important}.primary-ic:hover,.primary-ic:focus{color:#4285f4}table.table a.btn.btn-primary{color:#fff}.btn-outline-primary{border:2px solid #4285f4!important;background-color:transparent!important;color:#4285f4!important}.btn-outline-primary:hover,.btn-outline-primary:focus,.btn-outline-primary:active,.btn-outline-primary:active:focus,.btn-outline-primary.active{border-color:#4285f4!important;background-color:transparent!important;color:#4285f4!important}.btn-outline-primary:not([disabled]):not(.disabled):active,.btn-outline-primary:not([disabled]):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#4285f4!important}.btn-outline-primary:not([disabled]):not(.disabled):active:focus,.btn-outline-primary:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-danger{background-color:#ff3547!important;color:#fff}.btn-danger:hover{background-color:#ff4f5e;color:#fff}.btn-danger:focus,.btn-danger.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-danger:focus,.btn-danger:active,.btn-danger.active{background-color:#ce0012}.btn-danger.dropdown-toggle{background-color:#ff3547!important}.btn-danger.dropdown-toggle:hover,.btn-danger.dropdown-toggle:focus{background-color:#ff4f5e!important}.btn-danger:not([disabled]):not(.disabled):active,.btn-danger:not([disabled]):not(.disabled).active,.show>.btn-danger.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#ce0012!important}.btn-danger:not([disabled]):not(.disabled):active:focus,.btn-danger:not([disabled]):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.danger-ic{color:#ff3547!important}.danger-ic:hover,.danger-ic:focus{color:#ff3547}table.table a.btn.btn-danger{color:#fff}.btn-outline-danger{border:2px solid #ff3547!important;background-color:transparent!important;color:#ff3547!important}.btn-outline-danger:hover,.btn-outline-danger:focus,.btn-outline-danger:active,.btn-outline-danger:active:focus,.btn-outline-danger.active{border-color:#ff3547!important;background-color:transparent!important;color:#ff3547!important}.btn-outline-danger:not([disabled]):not(.disabled):active,.btn-outline-danger:not([disabled]):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ff3547!important}.btn-outline-danger:not([disabled]):not(.disabled):active:focus,.btn-outline-danger:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-warning{background-color:#fb3!important;color:#fff}.btn-warning:hover{background-color:#ffc44d;color:#fff}.btn-warning:focus,.btn-warning.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-warning:focus,.btn-warning:active,.btn-warning.active{background-color:#c80}.btn-warning.dropdown-toggle{background-color:#fb3!important}.btn-warning.dropdown-toggle:hover,.btn-warning.dropdown-toggle:focus{background-color:#ffc44d!important}.btn-warning:not([disabled]):not(.disabled):active,.btn-warning:not([disabled]):not(.disabled).active,.show>.btn-warning.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#c80!important}.btn-warning:not([disabled]):not(.disabled):active:focus,.btn-warning:not([disabled]):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.warning-ic{color:#fb3!important}.warning-ic:hover,.warning-ic:focus{color:#fb3}table.table a.btn.btn-warning{color:#fff}.btn-outline-warning{border:2px solid #ffbb33!important;background-color:transparent!important;color:#fb3!important}.btn-outline-warning:hover,.btn-outline-warning:focus,.btn-outline-warning:active,.btn-outline-warning:active:focus,.btn-outline-warning.active{border-color:#fb3!important;background-color:transparent!important;color:#fb3!important}.btn-outline-warning:not([disabled]):not(.disabled):active,.btn-outline-warning:not([disabled]):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#fb3!important}.btn-outline-warning:not([disabled]):not(.disabled):active:focus,.btn-outline-warning:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-success{background-color:#00c851!important;color:#fff}.btn-success:hover{background-color:#00e25b;color:#fff}.btn-success:focus,.btn-success.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-success:focus,.btn-success:active,.btn-success.active{background-color:#006228}.btn-success.dropdown-toggle{background-color:#00c851!important}.btn-success.dropdown-toggle:hover,.btn-success.dropdown-toggle:focus{background-color:#00e25b!important}.btn-success:not([disabled]):not(.disabled):active,.btn-success:not([disabled]):not(.disabled).active,.show>.btn-success.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#006228!important}.btn-success:not([disabled]):not(.disabled):active:focus,.btn-success:not([disabled]):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.success-ic{color:#00c851!important}.success-ic:hover,.success-ic:focus{color:#00c851}table.table a.btn.btn-success{color:#fff}.btn-outline-success{border:2px solid #00c851!important;background-color:transparent!important;color:#00c851!important}.btn-outline-success:hover,.btn-outline-success:focus,.btn-outline-success:active,.btn-outline-success:active:focus,.btn-outline-success.active{border-color:#00c851!important;background-color:transparent!important;color:#00c851!important}.btn-outline-success:not([disabled]):not(.disabled):active,.btn-outline-success:not([disabled]):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#00c851!important}.btn-outline-success:not([disabled]):not(.disabled):active:focus,.btn-outline-success:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-info{background-color:#33b5e5!important;color:#fff}.btn-info:hover{background-color:#4abde8;color:#fff}.btn-info:focus,.btn-info.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-info:focus,.btn-info:active,.btn-info.active{background-color:#14799e}.btn-info.dropdown-toggle{background-color:#33b5e5!important}.btn-info.dropdown-toggle:hover,.btn-info.dropdown-toggle:focus{background-color:#4abde8!important}.btn-info:not([disabled]):not(.disabled):active,.btn-info:not([disabled]):not(.disabled).active,.show>.btn-info.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#14799e!important}.btn-info:not([disabled]):not(.disabled):active:focus,.btn-info:not([disabled]):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.info-ic{color:#33b5e5!important}.info-ic:hover,.info-ic:focus{color:#33b5e5}table.table a.btn.btn-info{color:#fff}.btn-outline-info{border:2px solid #33b5e5!important;background-color:transparent!important;color:#33b5e5!important}.btn-outline-info:hover,.btn-outline-info:focus,.btn-outline-info:active,.btn-outline-info:active:focus,.btn-outline-info.active{border-color:#33b5e5!important;background-color:transparent!important;color:#33b5e5!important}.btn-outline-info:not([disabled]):not(.disabled):active,.btn-outline-info:not([disabled]):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#33b5e5!important}.btn-outline-info:not([disabled]):not(.disabled):active:focus,.btn-outline-info:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-default{background-color:#2bbbad!important;color:#fff}.btn-default:hover{background-color:#30cfc0;color:#fff}.btn-default:focus,.btn-default.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-default:focus,.btn-default:active,.btn-default.active{background-color:#186860}.btn-default.dropdown-toggle{background-color:#2bbbad!important}.btn-default.dropdown-toggle:hover,.btn-default.dropdown-toggle:focus{background-color:#30cfc0!important}.btn-default:not([disabled]):not(.disabled):active,.btn-default:not([disabled]):not(.disabled).active,.show>.btn-default.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#186860!important}.btn-default:not([disabled]):not(.disabled):active:focus,.btn-default:not([disabled]):not(.disabled).active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.default-ic{color:#2bbbad!important}.default-ic:hover,.default-ic:focus{color:#2bbbad}table.table a.btn.btn-default{color:#fff}.btn-outline-default{border:2px solid #2bbbad!important;background-color:transparent!important;color:#2bbbad!important}.btn-outline-default:hover,.btn-outline-default:focus,.btn-outline-default:active,.btn-outline-default:active:focus,.btn-outline-default.active{border-color:#2bbbad!important;background-color:transparent!important;color:#2bbbad!important}.btn-outline-default:not([disabled]):not(.disabled):active,.btn-outline-default:not([disabled]):not(.disabled).active,.show>.btn-outline-default.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#2bbbad!important}.btn-outline-default:not([disabled]):not(.disabled):active:focus,.btn-outline-default:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-default.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-secondary{background-color:#a6c!important;color:#fff}.btn-secondary:hover{background-color:#b579d2;color:#fff}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-secondary:focus,.btn-secondary:active,.btn-secondary.active{background-color:#739}.btn-secondary.dropdown-toggle{background-color:#a6c!important}.btn-secondary.dropdown-toggle:hover,.btn-secondary.dropdown-toggle:focus{background-color:#b579d2!important}.btn-secondary:not([disabled]):not(.disabled):active,.btn-secondary:not([disabled]):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#739!important}.btn-secondary:not([disabled]):not(.disabled):active:focus,.btn-secondary:not([disabled]):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.secondary-ic{color:#a6c!important}.secondary-ic:hover,.secondary-ic:focus{color:#a6c}table.table a.btn.btn-secondary{color:#fff}.btn-outline-secondary{border:2px solid #aa66cc!important;background-color:transparent!important;color:#a6c!important}.btn-outline-secondary:hover,.btn-outline-secondary:focus,.btn-outline-secondary:active,.btn-outline-secondary:active:focus,.btn-outline-secondary.active{border-color:#a6c!important;background-color:transparent!important;color:#a6c!important}.btn-outline-secondary:not([disabled]):not(.disabled):active,.btn-outline-secondary:not([disabled]):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#a6c!important}.btn-outline-secondary:not([disabled]):not(.disabled):active:focus,.btn-outline-secondary:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-elegant{background-color:#2e2e2e!important;color:#fff}.btn-elegant:hover{background-color:#3b3b3b;color:#fff}.btn-elegant:focus,.btn-elegant.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-elegant:focus,.btn-elegant:active,.btn-elegant.active{background-color:#000}.btn-elegant.dropdown-toggle{background-color:#2e2e2e!important}.btn-elegant.dropdown-toggle:hover,.btn-elegant.dropdown-toggle:focus{background-color:#3b3b3b!important}.btn-elegant:not([disabled]):not(.disabled):active,.btn-elegant:not([disabled]):not(.disabled).active,.show>.btn-elegant.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#000!important}.btn-elegant:not([disabled]):not(.disabled):active:focus,.btn-elegant:not([disabled]):not(.disabled).active:focus,.show>.btn-elegant.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.elegant-ic{color:#2e2e2e!important}.elegant-ic:hover,.elegant-ic:focus{color:#2e2e2e}table.table a.btn.btn-elegant{color:#fff}.btn-outline-elegant{border:2px solid #2e2e2e!important;background-color:transparent!important;color:#2e2e2e!important}.btn-outline-elegant:hover,.btn-outline-elegant:focus,.btn-outline-elegant:active,.btn-outline-elegant:active:focus,.btn-outline-elegant.active{border-color:#2e2e2e!important;background-color:transparent!important;color:#2e2e2e!important}.btn-outline-elegant:not([disabled]):not(.disabled):active,.btn-outline-elegant:not([disabled]):not(.disabled).active,.show>.btn-outline-elegant.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#2e2e2e!important}.btn-outline-elegant:not([disabled]):not(.disabled):active:focus,.btn-outline-elegant:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-elegant.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-unique{background-color:#880e4f!important;color:#fff}.btn-unique:hover{background-color:#9f105c;color:#fff}.btn-unique:focus,.btn-unique.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-unique:focus,.btn-unique:active,.btn-unique.active{background-color:#2c0419}.btn-unique.dropdown-toggle{background-color:#880e4f!important}.btn-unique.dropdown-toggle:hover,.btn-unique.dropdown-toggle:focus{background-color:#9f105c!important}.btn-unique:not([disabled]):not(.disabled):active,.btn-unique:not([disabled]):not(.disabled).active,.show>.btn-unique.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#2c0419!important}.btn-unique:not([disabled]):not(.disabled):active:focus,.btn-unique:not([disabled]):not(.disabled).active:focus,.show>.btn-unique.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.unique-ic{color:#880e4f!important}.unique-ic:hover,.unique-ic:focus{color:#880e4f}table.table a.btn.btn-unique{color:#fff}.btn-outline-unique{border:2px solid #880e4f!important;background-color:transparent!important;color:#880e4f!important}.btn-outline-unique:hover,.btn-outline-unique:focus,.btn-outline-unique:active,.btn-outline-unique:active:focus,.btn-outline-unique.active{border-color:#880e4f!important;background-color:transparent!important;color:#880e4f!important}.btn-outline-unique:not([disabled]):not(.disabled):active,.btn-outline-unique:not([disabled]):not(.disabled).active,.show>.btn-outline-unique.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#880e4f!important}.btn-outline-unique:not([disabled]):not(.disabled):active:focus,.btn-outline-unique:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-unique.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark-green{background-color:#388e3c!important;color:#fff}.btn-dark-green:hover{background-color:#3fa044;color:#fff}.btn-dark-green:focus,.btn-dark-green.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark-green:focus,.btn-dark-green:active,.btn-dark-green.active{background-color:#1b451d}.btn-dark-green.dropdown-toggle{background-color:#388e3c!important}.btn-dark-green.dropdown-toggle:hover,.btn-dark-green.dropdown-toggle:focus{background-color:#3fa044!important}.btn-dark-green:not([disabled]):not(.disabled):active,.btn-dark-green:not([disabled]):not(.disabled).active,.show>.btn-dark-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#1b451d!important}.btn-dark-green:not([disabled]):not(.disabled):active:focus,.btn-dark-green:not([disabled]):not(.disabled).active:focus,.show>.btn-dark-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.dark-green-ic{color:#388e3c!important}.dark-green-ic:hover,.dark-green-ic:focus{color:#388e3c}table.table a.btn.btn-dark-green{color:#fff}.btn-outline-dark-green{border:2px solid #388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-dark-green:hover,.btn-outline-dark-green:focus,.btn-outline-dark-green:active,.btn-outline-dark-green:active:focus,.btn-outline-dark-green.active{border-color:#388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-dark-green:not([disabled]):not(.disabled):active,.btn-outline-dark-green:not([disabled]):not(.disabled).active,.show>.btn-outline-dark-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#388e3c!important}.btn-outline-dark-green:not([disabled]):not(.disabled):active:focus,.btn-outline-dark-green:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-dark-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-mdb-color{background-color:#59698d!important;color:#fff}.btn-mdb-color:hover{background-color:#63759d;color:#fff}.btn-mdb-color:focus,.btn-mdb-color.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-mdb-color:focus,.btn-mdb-color:active,.btn-mdb-color.active{background-color:#323a4e}.btn-mdb-color.dropdown-toggle{background-color:#59698d!important}.btn-mdb-color.dropdown-toggle:hover,.btn-mdb-color.dropdown-toggle:focus{background-color:#63759d!important}.btn-mdb-color:not([disabled]):not(.disabled):active,.btn-mdb-color:not([disabled]):not(.disabled).active,.show>.btn-mdb-color.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#323a4e!important}.btn-mdb-color:not([disabled]):not(.disabled):active:focus,.btn-mdb-color:not([disabled]):not(.disabled).active:focus,.show>.btn-mdb-color.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.mdb-color-ic{color:#59698d!important}.mdb-color-ic:hover,.mdb-color-ic:focus{color:#59698d}table.table a.btn.btn-mdb-color{color:#fff}.btn-outline-mdb-color{border:2px solid #59698d!important;background-color:transparent!important;color:#59698d!important}.btn-outline-mdb-color:hover,.btn-outline-mdb-color:focus,.btn-outline-mdb-color:active,.btn-outline-mdb-color:active:focus,.btn-outline-mdb-color.active{border-color:#59698d!important;background-color:transparent!important;color:#59698d!important}.btn-outline-mdb-color:not([disabled]):not(.disabled):active,.btn-outline-mdb-color:not([disabled]):not(.disabled).active,.show>.btn-outline-mdb-color.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#59698d!important}.btn-outline-mdb-color:not([disabled]):not(.disabled):active:focus,.btn-outline-mdb-color:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-mdb-color.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-red{background-color:#d32f2f!important;color:#fff}.btn-red:hover{background-color:#d74444;color:#fff}.btn-red:focus,.btn-red.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-red:focus,.btn-red:active,.btn-red.active{background-color:#811b1b}.btn-red.dropdown-toggle{background-color:#d32f2f!important}.btn-red.dropdown-toggle:hover,.btn-red.dropdown-toggle:focus{background-color:#d74444!important}.btn-red:not([disabled]):not(.disabled):active,.btn-red:not([disabled]):not(.disabled).active,.show>.btn-red.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#811b1b!important}.btn-red:not([disabled]):not(.disabled):active:focus,.btn-red:not([disabled]):not(.disabled).active:focus,.show>.btn-red.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.red-ic{color:#d32f2f!important}.red-ic:hover,.red-ic:focus{color:#d32f2f}table.table a.btn.btn-red{color:#fff}.btn-outline-red{border:2px solid #d32f2f!important;background-color:transparent!important;color:#d32f2f!important}.btn-outline-red:hover,.btn-outline-red:focus,.btn-outline-red:active,.btn-outline-red:active:focus,.btn-outline-red.active{border-color:#d32f2f!important;background-color:transparent!important;color:#d32f2f!important}.btn-outline-red:not([disabled]):not(.disabled):active,.btn-outline-red:not([disabled]):not(.disabled).active,.show>.btn-outline-red.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#d32f2f!important}.btn-outline-red:not([disabled]):not(.disabled):active:focus,.btn-outline-red:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-red.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-pink{background-color:#ec407a!important;color:#fff}.btn-pink:hover{background-color:#ee578a;color:#fff}.btn-pink:focus,.btn-pink.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-pink:focus,.btn-pink:active,.btn-pink.active{background-color:#b41249}.btn-pink.dropdown-toggle{background-color:#ec407a!important}.btn-pink.dropdown-toggle:hover,.btn-pink.dropdown-toggle:focus{background-color:#ee578a!important}.btn-pink:not([disabled]):not(.disabled):active,.btn-pink:not([disabled]):not(.disabled).active,.show>.btn-pink.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#b41249!important}.btn-pink:not([disabled]):not(.disabled):active:focus,.btn-pink:not([disabled]):not(.disabled).active:focus,.show>.btn-pink.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.pink-ic{color:#ec407a!important}.pink-ic:hover,.pink-ic:focus{color:#ec407a}table.table a.btn.btn-pink{color:#fff}.btn-outline-pink{border:2px solid #ec407a!important;background-color:transparent!important;color:#ec407a!important}.btn-outline-pink:hover,.btn-outline-pink:focus,.btn-outline-pink:active,.btn-outline-pink:active:focus,.btn-outline-pink.active{border-color:#ec407a!important;background-color:transparent!important;color:#ec407a!important}.btn-outline-pink:not([disabled]):not(.disabled):active,.btn-outline-pink:not([disabled]):not(.disabled).active,.show>.btn-outline-pink.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ec407a!important}.btn-outline-pink:not([disabled]):not(.disabled):active:focus,.btn-outline-pink:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-pink.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-purple{background-color:#8e24aa!important;color:#fff}.btn-purple:hover{background-color:#a028bf;color:#fff}.btn-purple:focus,.btn-purple.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-purple:focus,.btn-purple:active,.btn-purple.active{background-color:#481256}.btn-purple.dropdown-toggle{background-color:#8e24aa!important}.btn-purple.dropdown-toggle:hover,.btn-purple.dropdown-toggle:focus{background-color:#a028bf!important}.btn-purple:not([disabled]):not(.disabled):active,.btn-purple:not([disabled]):not(.disabled).active,.show>.btn-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#481256!important}.btn-purple:not([disabled]):not(.disabled):active:focus,.btn-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.purple-ic{color:#8e24aa!important}.purple-ic:hover,.purple-ic:focus{color:#8e24aa}table.table a.btn.btn-purple{color:#fff}.btn-outline-purple{border:2px solid #8e24aa!important;background-color:transparent!important;color:#8e24aa!important}.btn-outline-purple:hover,.btn-outline-purple:focus,.btn-outline-purple:active,.btn-outline-purple:active:focus,.btn-outline-purple.active{border-color:#8e24aa!important;background-color:transparent!important;color:#8e24aa!important}.btn-outline-purple:not([disabled]):not(.disabled):active,.btn-outline-purple:not([disabled]):not(.disabled).active,.show>.btn-outline-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#8e24aa!important}.btn-outline-purple:not([disabled]):not(.disabled):active:focus,.btn-outline-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-purple{background-color:#512da8!important;color:#fff}.btn-deep-purple:hover{background-color:#5b32bc;color:#fff}.btn-deep-purple:focus,.btn-deep-purple.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-purple:focus,.btn-deep-purple:active,.btn-deep-purple.active{background-color:#2a1758}.btn-deep-purple.dropdown-toggle{background-color:#512da8!important}.btn-deep-purple.dropdown-toggle:hover,.btn-deep-purple.dropdown-toggle:focus{background-color:#5b32bc!important}.btn-deep-purple:not([disabled]):not(.disabled):active,.btn-deep-purple:not([disabled]):not(.disabled).active,.show>.btn-deep-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#2a1758!important}.btn-deep-purple:not([disabled]):not(.disabled):active:focus,.btn-deep-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-deep-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.deep-purple-ic{color:#512da8!important}.deep-purple-ic:hover,.deep-purple-ic:focus{color:#512da8}table.table a.btn.btn-deep-purple{color:#fff}.btn-outline-deep-purple{border:2px solid #512da8!important;background-color:transparent!important;color:#512da8!important}.btn-outline-deep-purple:hover,.btn-outline-deep-purple:focus,.btn-outline-deep-purple:active,.btn-outline-deep-purple:active:focus,.btn-outline-deep-purple.active{border-color:#512da8!important;background-color:transparent!important;color:#512da8!important}.btn-outline-deep-purple:not([disabled]):not(.disabled):active,.btn-outline-deep-purple:not([disabled]):not(.disabled).active,.show>.btn-outline-deep-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#512da8!important}.btn-outline-deep-purple:not([disabled]):not(.disabled):active:focus,.btn-outline-deep-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-deep-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-indigo{background-color:#3f51b5!important;color:#fff}.btn-indigo:hover{background-color:#4d5ec1;color:#fff}.btn-indigo:focus,.btn-indigo.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-indigo:focus,.btn-indigo:active,.btn-indigo.active{background-color:#252f69}.btn-indigo.dropdown-toggle{background-color:#3f51b5!important}.btn-indigo.dropdown-toggle:hover,.btn-indigo.dropdown-toggle:focus{background-color:#4d5ec1!important}.btn-indigo:not([disabled]):not(.disabled):active,.btn-indigo:not([disabled]):not(.disabled).active,.show>.btn-indigo.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#252f69!important}.btn-indigo:not([disabled]):not(.disabled):active:focus,.btn-indigo:not([disabled]):not(.disabled).active:focus,.show>.btn-indigo.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.indigo-ic{color:#3f51b5!important}.indigo-ic:hover,.indigo-ic:focus{color:#3f51b5}table.table a.btn.btn-indigo{color:#fff}.btn-outline-indigo{border:2px solid #3f51b5!important;background-color:transparent!important;color:#3f51b5!important}.btn-outline-indigo:hover,.btn-outline-indigo:focus,.btn-outline-indigo:active,.btn-outline-indigo:active:focus,.btn-outline-indigo.active{border-color:#3f51b5!important;background-color:transparent!important;color:#3f51b5!important}.btn-outline-indigo:not([disabled]):not(.disabled):active,.btn-outline-indigo:not([disabled]):not(.disabled).active,.show>.btn-outline-indigo.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#3f51b5!important}.btn-outline-indigo:not([disabled]):not(.disabled):active:focus,.btn-outline-indigo:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-indigo.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue{background-color:#1976d2!important;color:#fff}.btn-blue:hover{background-color:#2083e4;color:#fff}.btn-blue:focus,.btn-blue.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue:focus,.btn-blue:active,.btn-blue.active{background-color:#0e4377}.btn-blue.dropdown-toggle{background-color:#1976d2!important}.btn-blue.dropdown-toggle:hover,.btn-blue.dropdown-toggle:focus{background-color:#2083e4!important}.btn-blue:not([disabled]):not(.disabled):active,.btn-blue:not([disabled]):not(.disabled).active,.show>.btn-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#0e4377!important}.btn-blue:not([disabled]):not(.disabled):active:focus,.btn-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.blue-ic{color:#1976d2!important}.blue-ic:hover,.blue-ic:focus{color:#1976d2}table.table a.btn.btn-blue{color:#fff}.btn-outline-blue{border:2px solid #1976d2!important;background-color:transparent!important;color:#1976d2!important}.btn-outline-blue:hover,.btn-outline-blue:focus,.btn-outline-blue:active,.btn-outline-blue:active:focus,.btn-outline-blue.active{border-color:#1976d2!important;background-color:transparent!important;color:#1976d2!important}.btn-outline-blue:not([disabled]):not(.disabled):active,.btn-outline-blue:not([disabled]):not(.disabled).active,.show>.btn-outline-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#1976d2!important}.btn-outline-blue:not([disabled]):not(.disabled):active:focus,.btn-outline-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-blue{background-color:#82b1ff!important;color:#fff}.btn-light-blue:hover{background-color:#9cc1ff;color:#fff}.btn-light-blue:focus,.btn-light-blue.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-blue:focus,.btn-light-blue:active,.btn-light-blue.active{background-color:#1c71ff}.btn-light-blue.dropdown-toggle{background-color:#82b1ff!important}.btn-light-blue.dropdown-toggle:hover,.btn-light-blue.dropdown-toggle:focus{background-color:#9cc1ff!important}.btn-light-blue:not([disabled]):not(.disabled):active,.btn-light-blue:not([disabled]):not(.disabled).active,.show>.btn-light-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#1c71ff!important}.btn-light-blue:not([disabled]):not(.disabled):active:focus,.btn-light-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-light-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.light-blue-ic{color:#82b1ff!important}.light-blue-ic:hover,.light-blue-ic:focus{color:#82b1ff}table.table a.btn.btn-light-blue{color:#fff}.btn-outline-light-blue{border:2px solid #82b1ff!important;background-color:transparent!important;color:#82b1ff!important}.btn-outline-light-blue:hover,.btn-outline-light-blue:focus,.btn-outline-light-blue:active,.btn-outline-light-blue:active:focus,.btn-outline-light-blue.active{border-color:#82b1ff!important;background-color:transparent!important;color:#82b1ff!important}.btn-outline-light-blue:not([disabled]):not(.disabled):active,.btn-outline-light-blue:not([disabled]):not(.disabled).active,.show>.btn-outline-light-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#82b1ff!important}.btn-outline-light-blue:not([disabled]):not(.disabled):active:focus,.btn-outline-light-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-light-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-cyan{background-color:#00bcd4!important;color:#fff}.btn-cyan:hover{background-color:#00d3ee;color:#fff}.btn-cyan:focus,.btn-cyan.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-cyan:focus,.btn-cyan:active,.btn-cyan.active{background-color:#00626e}.btn-cyan.dropdown-toggle{background-color:#00bcd4!important}.btn-cyan.dropdown-toggle:hover,.btn-cyan.dropdown-toggle:focus{background-color:#00d3ee!important}.btn-cyan:not([disabled]):not(.disabled):active,.btn-cyan:not([disabled]):not(.disabled).active,.show>.btn-cyan.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#00626e!important}.btn-cyan:not([disabled]):not(.disabled):active:focus,.btn-cyan:not([disabled]):not(.disabled).active:focus,.show>.btn-cyan.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.cyan-ic{color:#00bcd4!important}.cyan-ic:hover,.cyan-ic:focus{color:#00bcd4}table.table a.btn.btn-cyan{color:#fff}.btn-outline-cyan{border:2px solid #00bcd4!important;background-color:transparent!important;color:#00bcd4!important}.btn-outline-cyan:hover,.btn-outline-cyan:focus,.btn-outline-cyan:active,.btn-outline-cyan:active:focus,.btn-outline-cyan.active{border-color:#00bcd4!important;background-color:transparent!important;color:#00bcd4!important}.btn-outline-cyan:not([disabled]):not(.disabled):active,.btn-outline-cyan:not([disabled]):not(.disabled).active,.show>.btn-outline-cyan.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#00bcd4!important}.btn-outline-cyan:not([disabled]):not(.disabled):active:focus,.btn-outline-cyan:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-cyan.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-teal{background-color:#00796b!important;color:#fff}.btn-teal:hover{background-color:#009382;color:#fff}.btn-teal:focus,.btn-teal.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-teal:focus,.btn-teal:active,.btn-teal.active{background-color:#001311}.btn-teal.dropdown-toggle{background-color:#00796b!important}.btn-teal.dropdown-toggle:hover,.btn-teal.dropdown-toggle:focus{background-color:#009382!important}.btn-teal:not([disabled]):not(.disabled):active,.btn-teal:not([disabled]):not(.disabled).active,.show>.btn-teal.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#001311!important}.btn-teal:not([disabled]):not(.disabled):active:focus,.btn-teal:not([disabled]):not(.disabled).active:focus,.show>.btn-teal.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.teal-ic{color:#00796b!important}.teal-ic:hover,.teal-ic:focus{color:#00796b}table.table a.btn.btn-teal{color:#fff}.btn-outline-teal{border:2px solid #00796b!important;background-color:transparent!important;color:#00796b!important}.btn-outline-teal:hover,.btn-outline-teal:focus,.btn-outline-teal:active,.btn-outline-teal:active:focus,.btn-outline-teal.active{border-color:#00796b!important;background-color:transparent!important;color:#00796b!important}.btn-outline-teal:not([disabled]):not(.disabled):active,.btn-outline-teal:not([disabled]):not(.disabled).active,.show>.btn-outline-teal.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#00796b!important}.btn-outline-teal:not([disabled]):not(.disabled):active:focus,.btn-outline-teal:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-teal.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-green{background-color:#388e3c!important;color:#fff}.btn-green:hover{background-color:#3fa044;color:#fff}.btn-green:focus,.btn-green.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-green:focus,.btn-green:active,.btn-green.active{background-color:#1b451d}.btn-green.dropdown-toggle{background-color:#388e3c!important}.btn-green.dropdown-toggle:hover,.btn-green.dropdown-toggle:focus{background-color:#3fa044!important}.btn-green:not([disabled]):not(.disabled):active,.btn-green:not([disabled]):not(.disabled).active,.show>.btn-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#1b451d!important}.btn-green:not([disabled]):not(.disabled):active:focus,.btn-green:not([disabled]):not(.disabled).active:focus,.show>.btn-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.green-ic{color:#388e3c!important}.green-ic:hover,.green-ic:focus{color:#388e3c}table.table a.btn.btn-green{color:#fff}.btn-outline-green{border:2px solid #388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-green:hover,.btn-outline-green:focus,.btn-outline-green:active,.btn-outline-green:active:focus,.btn-outline-green.active{border-color:#388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-green:not([disabled]):not(.disabled):active,.btn-outline-green:not([disabled]):not(.disabled).active,.show>.btn-outline-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#388e3c!important}.btn-outline-green:not([disabled]):not(.disabled):active:focus,.btn-outline-green:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-green{background-color:#8bc34a!important;color:#fff}.btn-light-green:hover{background-color:#97c95d;color:#fff}.btn-light-green:focus,.btn-light-green.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-green:focus,.btn-light-green:active,.btn-light-green.active{background-color:#577d2a}.btn-light-green.dropdown-toggle{background-color:#8bc34a!important}.btn-light-green.dropdown-toggle:hover,.btn-light-green.dropdown-toggle:focus{background-color:#97c95d!important}.btn-light-green:not([disabled]):not(.disabled):active,.btn-light-green:not([disabled]):not(.disabled).active,.show>.btn-light-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#577d2a!important}.btn-light-green:not([disabled]):not(.disabled):active:focus,.btn-light-green:not([disabled]):not(.disabled).active:focus,.show>.btn-light-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.light-green-ic{color:#8bc34a!important}.light-green-ic:hover,.light-green-ic:focus{color:#8bc34a}table.table a.btn.btn-light-green{color:#fff}.btn-outline-light-green{border:2px solid #8bc34a!important;background-color:transparent!important;color:#8bc34a!important}.btn-outline-light-green:hover,.btn-outline-light-green:focus,.btn-outline-light-green:active,.btn-outline-light-green:active:focus,.btn-outline-light-green.active{border-color:#8bc34a!important;background-color:transparent!important;color:#8bc34a!important}.btn-outline-light-green:not([disabled]):not(.disabled):active,.btn-outline-light-green:not([disabled]):not(.disabled).active,.show>.btn-outline-light-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#8bc34a!important}.btn-outline-light-green:not([disabled]):not(.disabled):active:focus,.btn-outline-light-green:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-light-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-lime{background-color:#afb42b!important;color:#fff}.btn-lime:hover{background-color:#c3c930;color:#fff}.btn-lime:focus,.btn-lime.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-lime:focus,.btn-lime:active,.btn-lime.active{background-color:#5f6217}.btn-lime.dropdown-toggle{background-color:#afb42b!important}.btn-lime.dropdown-toggle:hover,.btn-lime.dropdown-toggle:focus{background-color:#c3c930!important}.btn-lime:not([disabled]):not(.disabled):active,.btn-lime:not([disabled]):not(.disabled).active,.show>.btn-lime.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#5f6217!important}.btn-lime:not([disabled]):not(.disabled):active:focus,.btn-lime:not([disabled]):not(.disabled).active:focus,.show>.btn-lime.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.lime-ic{color:#afb42b!important}.lime-ic:hover,.lime-ic:focus{color:#afb42b}table.table a.btn.btn-lime{color:#fff}.btn-outline-lime{border:2px solid #afb42b!important;background-color:transparent!important;color:#afb42b!important}.btn-outline-lime:hover,.btn-outline-lime:focus,.btn-outline-lime:active,.btn-outline-lime:active:focus,.btn-outline-lime.active{border-color:#afb42b!important;background-color:transparent!important;color:#afb42b!important}.btn-outline-lime:not([disabled]):not(.disabled):active,.btn-outline-lime:not([disabled]):not(.disabled).active,.show>.btn-outline-lime.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#afb42b!important}.btn-outline-lime:not([disabled]):not(.disabled):active:focus,.btn-outline-lime:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-lime.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-yellow{background-color:#fbc02d!important;color:#fff}.btn-yellow:hover{background-color:#fbc846;color:#fff}.btn-yellow:focus,.btn-yellow.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-yellow:focus,.btn-yellow:active,.btn-yellow.active{background-color:#be8904}.btn-yellow.dropdown-toggle{background-color:#fbc02d!important}.btn-yellow.dropdown-toggle:hover,.btn-yellow.dropdown-toggle:focus{background-color:#fbc846!important}.btn-yellow:not([disabled]):not(.disabled):active,.btn-yellow:not([disabled]):not(.disabled).active,.show>.btn-yellow.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#be8904!important}.btn-yellow:not([disabled]):not(.disabled):active:focus,.btn-yellow:not([disabled]):not(.disabled).active:focus,.show>.btn-yellow.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.yellow-ic{color:#fbc02d!important}.yellow-ic:hover,.yellow-ic:focus{color:#fbc02d}table.table a.btn.btn-yellow{color:#fff}.btn-outline-yellow{border:2px solid #fbc02d!important;background-color:transparent!important;color:#fbc02d!important}.btn-outline-yellow:hover,.btn-outline-yellow:focus,.btn-outline-yellow:active,.btn-outline-yellow:active:focus,.btn-outline-yellow.active{border-color:#fbc02d!important;background-color:transparent!important;color:#fbc02d!important}.btn-outline-yellow:not([disabled]):not(.disabled):active,.btn-outline-yellow:not([disabled]):not(.disabled).active,.show>.btn-outline-yellow.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#fbc02d!important}.btn-outline-yellow:not([disabled]):not(.disabled):active:focus,.btn-outline-yellow:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-yellow.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-amber{background-color:#ffa000!important;color:#fff}.btn-amber:hover{background-color:#ffaa1a;color:#fff}.btn-amber:focus,.btn-amber.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-amber:focus,.btn-amber:active,.btn-amber.active{background-color:#996000}.btn-amber.dropdown-toggle{background-color:#ffa000!important}.btn-amber.dropdown-toggle:hover,.btn-amber.dropdown-toggle:focus{background-color:#ffaa1a!important}.btn-amber:not([disabled]):not(.disabled):active,.btn-amber:not([disabled]):not(.disabled).active,.show>.btn-amber.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#996000!important}.btn-amber:not([disabled]):not(.disabled):active:focus,.btn-amber:not([disabled]):not(.disabled).active:focus,.show>.btn-amber.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.amber-ic{color:#ffa000!important}.amber-ic:hover,.amber-ic:focus{color:#ffa000}table.table a.btn.btn-amber{color:#fff}.btn-outline-amber{border:2px solid #ffa000!important;background-color:transparent!important;color:#ffa000!important}.btn-outline-amber:hover,.btn-outline-amber:focus,.btn-outline-amber:active,.btn-outline-amber:active:focus,.btn-outline-amber.active{border-color:#ffa000!important;background-color:transparent!important;color:#ffa000!important}.btn-outline-amber:not([disabled]):not(.disabled):active,.btn-outline-amber:not([disabled]):not(.disabled).active,.show>.btn-outline-amber.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ffa000!important}.btn-outline-amber:not([disabled]):not(.disabled):active:focus,.btn-outline-amber:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-amber.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-orange{background-color:#f57c00!important;color:#fff}.btn-orange:hover{background-color:#ff8910;color:#fff}.btn-orange:focus,.btn-orange.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-orange:focus,.btn-orange:active,.btn-orange.active{background-color:#8f4800}.btn-orange.dropdown-toggle{background-color:#f57c00!important}.btn-orange.dropdown-toggle:hover,.btn-orange.dropdown-toggle:focus{background-color:#ff8910!important}.btn-orange:not([disabled]):not(.disabled):active,.btn-orange:not([disabled]):not(.disabled).active,.show>.btn-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#8f4800!important}.btn-orange:not([disabled]):not(.disabled):active:focus,.btn-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.orange-ic{color:#f57c00!important}.orange-ic:hover,.orange-ic:focus{color:#f57c00}table.table a.btn.btn-orange{color:#fff}.btn-outline-orange{border:2px solid #f57c00!important;background-color:transparent!important;color:#f57c00!important}.btn-outline-orange:hover,.btn-outline-orange:focus,.btn-outline-orange:active,.btn-outline-orange:active:focus,.btn-outline-orange.active{border-color:#f57c00!important;background-color:transparent!important;color:#f57c00!important}.btn-outline-orange:not([disabled]):not(.disabled):active,.btn-outline-orange:not([disabled]):not(.disabled).active,.show>.btn-outline-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#f57c00!important}.btn-outline-orange:not([disabled]):not(.disabled):active:focus,.btn-outline-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-orange{background-color:#ff7043!important;color:#fff}.btn-deep-orange:hover{background-color:#ff835d;color:#fff}.btn-deep-orange:focus,.btn-deep-orange.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-orange:focus,.btn-deep-orange:active,.btn-deep-orange.active{background-color:#dc3500}.btn-deep-orange.dropdown-toggle{background-color:#ff7043!important}.btn-deep-orange.dropdown-toggle:hover,.btn-deep-orange.dropdown-toggle:focus{background-color:#ff835d!important}.btn-deep-orange:not([disabled]):not(.disabled):active,.btn-deep-orange:not([disabled]):not(.disabled).active,.show>.btn-deep-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#dc3500!important}.btn-deep-orange:not([disabled]):not(.disabled):active:focus,.btn-deep-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-deep-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.deep-orange-ic{color:#ff7043!important}.deep-orange-ic:hover,.deep-orange-ic:focus{color:#ff7043}table.table a.btn.btn-deep-orange{color:#fff}.btn-outline-deep-orange{border:2px solid #ff7043!important;background-color:transparent!important;color:#ff7043!important}.btn-outline-deep-orange:hover,.btn-outline-deep-orange:focus,.btn-outline-deep-orange:active,.btn-outline-deep-orange:active:focus,.btn-outline-deep-orange.active{border-color:#ff7043!important;background-color:transparent!important;color:#ff7043!important}.btn-outline-deep-orange:not([disabled]):not(.disabled):active,.btn-outline-deep-orange:not([disabled]):not(.disabled).active,.show>.btn-outline-deep-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ff7043!important}.btn-outline-deep-orange:not([disabled]):not(.disabled):active:focus,.btn-outline-deep-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-deep-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-brown{background-color:#795548!important;color:#fff}.btn-brown:hover{background-color:#896052;color:#fff}.btn-brown:focus,.btn-brown.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-brown:focus,.btn-brown:active,.btn-brown.active{background-color:#392822}.btn-brown.dropdown-toggle{background-color:#795548!important}.btn-brown.dropdown-toggle:hover,.btn-brown.dropdown-toggle:focus{background-color:#896052!important}.btn-brown:not([disabled]):not(.disabled):active,.btn-brown:not([disabled]):not(.disabled).active,.show>.btn-brown.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#392822!important}.btn-brown:not([disabled]):not(.disabled):active:focus,.btn-brown:not([disabled]):not(.disabled).active:focus,.show>.btn-brown.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.brown-ic{color:#795548!important}.brown-ic:hover,.brown-ic:focus{color:#795548}table.table a.btn.btn-brown{color:#fff}.btn-outline-brown{border:2px solid #795548!important;background-color:transparent!important;color:#795548!important}.btn-outline-brown:hover,.btn-outline-brown:focus,.btn-outline-brown:active,.btn-outline-brown:active:focus,.btn-outline-brown.active{border-color:#795548!important;background-color:transparent!important;color:#795548!important}.btn-outline-brown:not([disabled]):not(.disabled):active,.btn-outline-brown:not([disabled]):not(.disabled).active,.show>.btn-outline-brown.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#795548!important}.btn-outline-brown:not([disabled]):not(.disabled):active:focus,.btn-outline-brown:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-brown.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-grey{background-color:#616161!important;color:#fff}.btn-grey:hover{background-color:#6e6e6e;color:#fff}.btn-grey:focus,.btn-grey.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-grey:focus,.btn-grey:active,.btn-grey.active{background-color:#2e2e2e}.btn-grey.dropdown-toggle{background-color:#616161!important}.btn-grey.dropdown-toggle:hover,.btn-grey.dropdown-toggle:focus{background-color:#6e6e6e!important}.btn-grey:not([disabled]):not(.disabled):active,.btn-grey:not([disabled]):not(.disabled).active,.show>.btn-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#2e2e2e!important}.btn-grey:not([disabled]):not(.disabled):active:focus,.btn-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.grey-ic{color:#616161!important}.grey-ic:hover,.grey-ic:focus{color:#616161}table.table a.btn.btn-grey{color:#fff}.btn-outline-grey{border:2px solid #616161!important;background-color:transparent!important;color:#616161!important}.btn-outline-grey:hover,.btn-outline-grey:focus,.btn-outline-grey:active,.btn-outline-grey:active:focus,.btn-outline-grey.active{border-color:#616161!important;background-color:transparent!important;color:#616161!important}.btn-outline-grey:not([disabled]):not(.disabled):active,.btn-outline-grey:not([disabled]):not(.disabled).active,.show>.btn-outline-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#616161!important}.btn-outline-grey:not([disabled]):not(.disabled):active:focus,.btn-outline-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue-grey{background-color:#78909c!important;color:#fff}.btn-blue-grey:hover{background-color:#879ca7;color:#fff}.btn-blue-grey:focus,.btn-blue-grey.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue-grey:focus,.btn-blue-grey:active,.btn-blue-grey.active{background-color:#4a5b64}.btn-blue-grey.dropdown-toggle{background-color:#78909c!important}.btn-blue-grey.dropdown-toggle:hover,.btn-blue-grey.dropdown-toggle:focus{background-color:#879ca7!important}.btn-blue-grey:not([disabled]):not(.disabled):active,.btn-blue-grey:not([disabled]):not(.disabled).active,.show>.btn-blue-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#4a5b64!important}.btn-blue-grey:not([disabled]):not(.disabled):active:focus,.btn-blue-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-blue-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.blue-grey-ic{color:#78909c!important}.blue-grey-ic:hover,.blue-grey-ic:focus{color:#78909c}table.table a.btn.btn-blue-grey{color:#fff}.btn-outline-blue-grey{border:2px solid #78909c!important;background-color:transparent!important;color:#78909c!important}.btn-outline-blue-grey:hover,.btn-outline-blue-grey:focus,.btn-outline-blue-grey:active,.btn-outline-blue-grey:active:focus,.btn-outline-blue-grey.active{border-color:#78909c!important;background-color:transparent!important;color:#78909c!important}.btn-outline-blue-grey:not([disabled]):not(.disabled):active,.btn-outline-blue-grey:not([disabled]):not(.disabled).active,.show>.btn-outline-blue-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#78909c!important}.btn-outline-blue-grey:not([disabled]):not(.disabled):active:focus,.btn-outline-blue-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-blue-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark{background-color:#212121!important;color:#fff}.btn-dark:hover{background-color:#2e2e2e;color:#fff}.btn-dark:focus,.btn-dark.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark:focus,.btn-dark:active,.btn-dark.active{background-color:#000}.btn-dark.dropdown-toggle{background-color:#212121!important}.btn-dark.dropdown-toggle:hover,.btn-dark.dropdown-toggle:focus{background-color:#2e2e2e!important}.btn-dark:not([disabled]):not(.disabled):active,.btn-dark:not([disabled]):not(.disabled).active,.show>.btn-dark.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#000!important}.btn-dark:not([disabled]):not(.disabled):active:focus,.btn-dark:not([disabled]):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.dark-ic{color:#212121!important}.dark-ic:hover,.dark-ic:focus{color:#212121}table.table a.btn.btn-dark{color:#fff}.btn-outline-dark{border:2px solid #212121!important;background-color:transparent!important;color:#212121!important}.btn-outline-dark:hover,.btn-outline-dark:focus,.btn-outline-dark:active,.btn-outline-dark:active:focus,.btn-outline-dark.active{border-color:#212121!important;background-color:transparent!important;color:#212121!important}.btn-outline-dark:not([disabled]):not(.disabled):active,.btn-outline-dark:not([disabled]):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#212121!important}.btn-outline-dark:not([disabled]):not(.disabled):active:focus,.btn-outline-dark:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light{background-color:#e0e0e0!important;color:#000}.btn-light:hover{background-color:#ededed;color:#000}.btn-light:focus,.btn-light.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light:focus,.btn-light:active,.btn-light.active{background-color:#adadad}.btn-light.dropdown-toggle{background-color:#e0e0e0!important}.btn-light.dropdown-toggle:hover,.btn-light.dropdown-toggle:focus{background-color:#ededed!important}.btn-light:not([disabled]):not(.disabled):active,.btn-light:not([disabled]):not(.disabled).active,.show>.btn-light.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#adadad!important}.btn-light:not([disabled]):not(.disabled):active:focus,.btn-light:not([disabled]):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.light-ic{color:#e0e0e0!important}.light-ic:hover,.light-ic:focus{color:#e0e0e0}table.table a.btn.btn-light{color:#000}.btn-outline-light{border:2px solid #e0e0e0!important;background-color:transparent!important;color:#e0e0e0!important}.btn-outline-light:hover,.btn-outline-light:focus,.btn-outline-light:active,.btn-outline-light:active:focus,.btn-outline-light.active{border-color:#e0e0e0!important;background-color:transparent!important;color:#e0e0e0!important}.btn-outline-light:not([disabled]):not(.disabled):active,.btn-outline-light:not([disabled]):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#e0e0e0!important}.btn-outline-light:not([disabled]):not(.disabled):active:focus,.btn-outline-light:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-white{background-color:#fff!important;color:#000}.btn-white:hover{background-color:#fff;color:#000}.btn-white:focus,.btn-white.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-white:focus,.btn-white:active,.btn-white.active{background-color:#ccc}.btn-white.dropdown-toggle{background-color:#fff!important}.btn-white.dropdown-toggle:hover,.btn-white.dropdown-toggle:focus{background-color:#fff!important}.btn-white:not([disabled]):not(.disabled):active,.btn-white:not([disabled]):not(.disabled).active,.show>.btn-white.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#ccc!important}.btn-white:not([disabled]):not(.disabled):active:focus,.btn-white:not([disabled]):not(.disabled).active:focus,.show>.btn-white.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.white-ic{color:#fff!important}.white-ic:hover,.white-ic:focus{color:#fff}a.btn:not([href]):not([tabindex]),a.btn:not([href]):not([tabindex]):focus,a.btn:not([href]):not([tabindex]):hover{color:#000}table.table a.btn.btn-white{color:#000}.btn-outline-white{border:2px solid #fff!important;background-color:transparent!important;color:#fff!important}.btn-outline-white:hover,.btn-outline-white:focus,.btn-outline-white:active,.btn-outline-white:active:focus,.btn-outline-white.active{border-color:#fff!important;background-color:transparent!important;color:#fff!important}.btn-outline-white:not([disabled]):not(.disabled):active,.btn-outline-white:not([disabled]):not(.disabled).active,.show>.btn-outline-white.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#fff!important}.btn-outline-white:not([disabled]):not(.disabled):active:focus,.btn-outline-white:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-white.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-black{background-color:#000!important;color:#fff}.btn-black:hover{background-color:#0d0d0d;color:#fff}.btn-black:focus,.btn-black.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-black:focus,.btn-black:active,.btn-black.active{background-color:#000}.btn-black.dropdown-toggle{background-color:#000!important}.btn-black.dropdown-toggle:hover,.btn-black.dropdown-toggle:focus{background-color:#0d0d0d!important}.btn-black:not([disabled]):not(.disabled):active,.btn-black:not([disabled]):not(.disabled).active,.show>.btn-black.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#000!important}.btn-black:not([disabled]):not(.disabled):active:focus,.btn-black:not([disabled]):not(.disabled).active:focus,.show>.btn-black.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.black-ic{color:#000!important}.black-ic:hover,.black-ic:focus{color:#000}a.btn:not([href]):not([tabindex]),a.btn:not([href]):not([tabindex]):focus,a.btn:not([href]):not([tabindex]):hover{color:#fff}table.table a.btn.btn-black{color:#fff}.btn-outline-black{border:2px solid #000!important;background-color:transparent!important;color:#000!important}.btn-outline-black:hover,.btn-outline-black:focus,.btn-outline-black:active,.btn-outline-black:active:focus,.btn-outline-black.active{border-color:#000!important;background-color:transparent!important;color:#000!important}.btn-outline-black:not([disabled]):not(.disabled):active,.btn-outline-black:not([disabled]):not(.disabled).active,.show>.btn-outline-black.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#000!important}.btn-outline-black:not([disabled]):not(.disabled):active:focus,.btn-outline-black:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-black.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#fff}.btn.purple-gradient{transition:.5s ease;color:#fff}.btn.purple-gradient:hover,.btn.purple-gradient:focus,.btn.purple-gradient:active,.btn.purple-gradient:active:focus .btn.purple-gradient.active{background:linear-gradient(#ff88ce,#8f8bf7)}.btn.peach-gradient{transition:.5s ease;color:#fff}.btn.peach-gradient:hover,.btn.peach-gradient:focus,.btn.peach-gradient:active,.btn.peach-gradient:active:focus .btn.peach-gradient.active{background:linear-gradient(#ffdf89,#fc7b7b)}.btn.aqua-gradient{transition:.5s ease;color:#fff}.btn.aqua-gradient:hover,.btn.aqua-gradient:focus,.btn.aqua-gradient:active,.btn.aqua-gradient:active:focus .btn.aqua-gradient.active{background:linear-gradient(#3aa2ff,#1fffac)}.btn.blue-gradient{transition:.5s ease;color:#fff}.btn.blue-gradient:hover,.btn.blue-gradient:focus,.btn.blue-gradient:active,.btn.blue-gradient:active:focus .btn.blue-gradient.active{background:linear-gradient(#5ed1fc,#3647b3)}.btn mdb-icon{position:relative;font-size:.9rem}.btn mdb-icon.right{margin-left:.3rem}.btn mdb-icon.left{margin-right:.3rem}.btn.btn-lg{padding:1rem 2.4rem;font-size:.94rem}.btn.btn-lg mdb-icon{font-size:1rem}.btn.btn-md{padding:.7rem 1.6rem;font-size:.7rem}.btn.btn-md mdb-icon{font-size:.8rem}.btn.btn-sm{padding:.5rem 1.6rem;font-size:.64rem}.btn.btn-sm mdb-icon{font-size:.7rem}\n"], encapsulation: i0.ViewEncapsulation.None });
381i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbBtnDirective, decorators: [{
382 type: Component,
383 args: [{ selector: '[mdbBtn]', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, styles: [".btn{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;padding:.84rem 2.14rem;font-size:.81rem;transition:all .2s ease-in-out;margin:.375rem;border:0;border-radius:.125rem;cursor:pointer;text-transform:uppercase;white-space:normal;word-wrap:break-word;color:inherit}.btn:hover,.btn:active,.btn:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;outline:0}.btn:not([disabled]):not(.disabled):active,.btn:not([disabled]):not(.disabled).active{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn .fas,.btn .fab,.btn .far{position:relative;font-size:.9rem}.btn .fas.right,.btn .fab.right,.btn .far.right{margin-left:.3rem}.btn .fas.left,.btn .fab.left,.btn .far.left{margin-right:.3rem}.btn.btn-lg .fas,.btn.btn-lg .fab,.btn.btn-lg .far{font-size:1rem}.btn.btn-md .fas,.btn.btn-md .fab,.btn.btn-md .far{font-size:.8rem}.btn.btn-sm .fas,.btn.btn-sm .fab,.btn.btn-sm .far{font-size:.7rem}.btn.btn-tb{padding:.3rem 1rem}.btn.disabled:active,.btn.disabled:focus,.btn.disabled:hover,.btn:disabled:active,.btn:disabled:focus,.btn:disabled:hover{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f}.btn.btn-block{margin:inherit}.btn.btn-link{color:#000;box-shadow:none;background-color:transparent}.btn.btn-link:active,.btn.btn-link:focus,.btn.btn-link:hover{box-shadow:none!important;background-color:transparent}.btn[class*=btn-outline-]{padding-top:.7rem;padding-bottom:.7rem}.btn[class*=btn-outline-].btn-lg{padding-top:.88rem;padding-bottom:.88rem}.btn[class*=btn-outline-].btn-md{padding-top:.58rem;padding-bottom:.58rem}.btn[class*=btn-outline-].btn-sm{padding-top:.38rem;padding-bottom:.38rem}.btn-group .btn{margin:0}.btn .fa-lg,.btn-floating .fa-lg{font-size:1.33333em!important}.btn .fa-xs,.btn-floating .fa-xs{font-size:.75em!important}.btn .fa-sm,.btn-floating .fa-sm{font-size:.875em!important}.btn .fa-1x,.btn-floating .fa-1x{font-size:1em!important}.btn .fa-2x,.btn-floating .fa-2x{font-size:2em!important}.btn .fa-3x,.btn-floating .fa-3x{font-size:3em!important}.btn .fa-4x,.btn-floating .fa-4x{font-size:4em!important}.btn .fa-5x,.btn-floating .fa-5x{font-size:5em!important}.btn .fa-6x,.btn-floating .fa-6x{font-size:6em!important}.btn .fa-7x,.btn-floating .fa-7x{font-size:7em!important}.btn .fa-8x,.btn-floating .fa-8x{font-size:8em!important}.btn .fa-9x,.btn-floating .fa-9x{font-size:9em!important}.btn .fa-10x,.btn-floating .fa-10x{font-size:10em!important}.btn-primary{background-color:#4285f4!important;color:#fff}.btn-primary:hover{background-color:#5a95f5;color:#fff}.btn-primary:focus,.btn-primary.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-primary:focus,.btn-primary:active,.btn-primary.active{background-color:#0b51c5}.btn-primary.dropdown-toggle{background-color:#4285f4!important}.btn-primary.dropdown-toggle:hover,.btn-primary.dropdown-toggle:focus{background-color:#5a95f5!important}.btn-primary:not([disabled]):not(.disabled):active,.btn-primary:not([disabled]):not(.disabled).active,.show>.btn-primary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#0b51c5!important}.btn-primary:not([disabled]):not(.disabled):active:focus,.btn-primary:not([disabled]):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.primary-ic{color:#4285f4!important}.primary-ic:hover,.primary-ic:focus{color:#4285f4}table.table a.btn.btn-primary{color:#fff}.btn-outline-primary{border:2px solid #4285f4!important;background-color:transparent!important;color:#4285f4!important}.btn-outline-primary:hover,.btn-outline-primary:focus,.btn-outline-primary:active,.btn-outline-primary:active:focus,.btn-outline-primary.active{border-color:#4285f4!important;background-color:transparent!important;color:#4285f4!important}.btn-outline-primary:not([disabled]):not(.disabled):active,.btn-outline-primary:not([disabled]):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#4285f4!important}.btn-outline-primary:not([disabled]):not(.disabled):active:focus,.btn-outline-primary:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-danger{background-color:#ff3547!important;color:#fff}.btn-danger:hover{background-color:#ff4f5e;color:#fff}.btn-danger:focus,.btn-danger.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-danger:focus,.btn-danger:active,.btn-danger.active{background-color:#ce0012}.btn-danger.dropdown-toggle{background-color:#ff3547!important}.btn-danger.dropdown-toggle:hover,.btn-danger.dropdown-toggle:focus{background-color:#ff4f5e!important}.btn-danger:not([disabled]):not(.disabled):active,.btn-danger:not([disabled]):not(.disabled).active,.show>.btn-danger.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#ce0012!important}.btn-danger:not([disabled]):not(.disabled):active:focus,.btn-danger:not([disabled]):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.danger-ic{color:#ff3547!important}.danger-ic:hover,.danger-ic:focus{color:#ff3547}table.table a.btn.btn-danger{color:#fff}.btn-outline-danger{border:2px solid #ff3547!important;background-color:transparent!important;color:#ff3547!important}.btn-outline-danger:hover,.btn-outline-danger:focus,.btn-outline-danger:active,.btn-outline-danger:active:focus,.btn-outline-danger.active{border-color:#ff3547!important;background-color:transparent!important;color:#ff3547!important}.btn-outline-danger:not([disabled]):not(.disabled):active,.btn-outline-danger:not([disabled]):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ff3547!important}.btn-outline-danger:not([disabled]):not(.disabled):active:focus,.btn-outline-danger:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-warning{background-color:#fb3!important;color:#fff}.btn-warning:hover{background-color:#ffc44d;color:#fff}.btn-warning:focus,.btn-warning.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-warning:focus,.btn-warning:active,.btn-warning.active{background-color:#c80}.btn-warning.dropdown-toggle{background-color:#fb3!important}.btn-warning.dropdown-toggle:hover,.btn-warning.dropdown-toggle:focus{background-color:#ffc44d!important}.btn-warning:not([disabled]):not(.disabled):active,.btn-warning:not([disabled]):not(.disabled).active,.show>.btn-warning.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#c80!important}.btn-warning:not([disabled]):not(.disabled):active:focus,.btn-warning:not([disabled]):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.warning-ic{color:#fb3!important}.warning-ic:hover,.warning-ic:focus{color:#fb3}table.table a.btn.btn-warning{color:#fff}.btn-outline-warning{border:2px solid #ffbb33!important;background-color:transparent!important;color:#fb3!important}.btn-outline-warning:hover,.btn-outline-warning:focus,.btn-outline-warning:active,.btn-outline-warning:active:focus,.btn-outline-warning.active{border-color:#fb3!important;background-color:transparent!important;color:#fb3!important}.btn-outline-warning:not([disabled]):not(.disabled):active,.btn-outline-warning:not([disabled]):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#fb3!important}.btn-outline-warning:not([disabled]):not(.disabled):active:focus,.btn-outline-warning:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-success{background-color:#00c851!important;color:#fff}.btn-success:hover{background-color:#00e25b;color:#fff}.btn-success:focus,.btn-success.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-success:focus,.btn-success:active,.btn-success.active{background-color:#006228}.btn-success.dropdown-toggle{background-color:#00c851!important}.btn-success.dropdown-toggle:hover,.btn-success.dropdown-toggle:focus{background-color:#00e25b!important}.btn-success:not([disabled]):not(.disabled):active,.btn-success:not([disabled]):not(.disabled).active,.show>.btn-success.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#006228!important}.btn-success:not([disabled]):not(.disabled):active:focus,.btn-success:not([disabled]):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.success-ic{color:#00c851!important}.success-ic:hover,.success-ic:focus{color:#00c851}table.table a.btn.btn-success{color:#fff}.btn-outline-success{border:2px solid #00c851!important;background-color:transparent!important;color:#00c851!important}.btn-outline-success:hover,.btn-outline-success:focus,.btn-outline-success:active,.btn-outline-success:active:focus,.btn-outline-success.active{border-color:#00c851!important;background-color:transparent!important;color:#00c851!important}.btn-outline-success:not([disabled]):not(.disabled):active,.btn-outline-success:not([disabled]):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#00c851!important}.btn-outline-success:not([disabled]):not(.disabled):active:focus,.btn-outline-success:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-info{background-color:#33b5e5!important;color:#fff}.btn-info:hover{background-color:#4abde8;color:#fff}.btn-info:focus,.btn-info.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-info:focus,.btn-info:active,.btn-info.active{background-color:#14799e}.btn-info.dropdown-toggle{background-color:#33b5e5!important}.btn-info.dropdown-toggle:hover,.btn-info.dropdown-toggle:focus{background-color:#4abde8!important}.btn-info:not([disabled]):not(.disabled):active,.btn-info:not([disabled]):not(.disabled).active,.show>.btn-info.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#14799e!important}.btn-info:not([disabled]):not(.disabled):active:focus,.btn-info:not([disabled]):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.info-ic{color:#33b5e5!important}.info-ic:hover,.info-ic:focus{color:#33b5e5}table.table a.btn.btn-info{color:#fff}.btn-outline-info{border:2px solid #33b5e5!important;background-color:transparent!important;color:#33b5e5!important}.btn-outline-info:hover,.btn-outline-info:focus,.btn-outline-info:active,.btn-outline-info:active:focus,.btn-outline-info.active{border-color:#33b5e5!important;background-color:transparent!important;color:#33b5e5!important}.btn-outline-info:not([disabled]):not(.disabled):active,.btn-outline-info:not([disabled]):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#33b5e5!important}.btn-outline-info:not([disabled]):not(.disabled):active:focus,.btn-outline-info:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-default{background-color:#2bbbad!important;color:#fff}.btn-default:hover{background-color:#30cfc0;color:#fff}.btn-default:focus,.btn-default.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-default:focus,.btn-default:active,.btn-default.active{background-color:#186860}.btn-default.dropdown-toggle{background-color:#2bbbad!important}.btn-default.dropdown-toggle:hover,.btn-default.dropdown-toggle:focus{background-color:#30cfc0!important}.btn-default:not([disabled]):not(.disabled):active,.btn-default:not([disabled]):not(.disabled).active,.show>.btn-default.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#186860!important}.btn-default:not([disabled]):not(.disabled):active:focus,.btn-default:not([disabled]):not(.disabled).active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.default-ic{color:#2bbbad!important}.default-ic:hover,.default-ic:focus{color:#2bbbad}table.table a.btn.btn-default{color:#fff}.btn-outline-default{border:2px solid #2bbbad!important;background-color:transparent!important;color:#2bbbad!important}.btn-outline-default:hover,.btn-outline-default:focus,.btn-outline-default:active,.btn-outline-default:active:focus,.btn-outline-default.active{border-color:#2bbbad!important;background-color:transparent!important;color:#2bbbad!important}.btn-outline-default:not([disabled]):not(.disabled):active,.btn-outline-default:not([disabled]):not(.disabled).active,.show>.btn-outline-default.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#2bbbad!important}.btn-outline-default:not([disabled]):not(.disabled):active:focus,.btn-outline-default:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-default.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-secondary{background-color:#a6c!important;color:#fff}.btn-secondary:hover{background-color:#b579d2;color:#fff}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-secondary:focus,.btn-secondary:active,.btn-secondary.active{background-color:#739}.btn-secondary.dropdown-toggle{background-color:#a6c!important}.btn-secondary.dropdown-toggle:hover,.btn-secondary.dropdown-toggle:focus{background-color:#b579d2!important}.btn-secondary:not([disabled]):not(.disabled):active,.btn-secondary:not([disabled]):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#739!important}.btn-secondary:not([disabled]):not(.disabled):active:focus,.btn-secondary:not([disabled]):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.secondary-ic{color:#a6c!important}.secondary-ic:hover,.secondary-ic:focus{color:#a6c}table.table a.btn.btn-secondary{color:#fff}.btn-outline-secondary{border:2px solid #aa66cc!important;background-color:transparent!important;color:#a6c!important}.btn-outline-secondary:hover,.btn-outline-secondary:focus,.btn-outline-secondary:active,.btn-outline-secondary:active:focus,.btn-outline-secondary.active{border-color:#a6c!important;background-color:transparent!important;color:#a6c!important}.btn-outline-secondary:not([disabled]):not(.disabled):active,.btn-outline-secondary:not([disabled]):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#a6c!important}.btn-outline-secondary:not([disabled]):not(.disabled):active:focus,.btn-outline-secondary:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-elegant{background-color:#2e2e2e!important;color:#fff}.btn-elegant:hover{background-color:#3b3b3b;color:#fff}.btn-elegant:focus,.btn-elegant.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-elegant:focus,.btn-elegant:active,.btn-elegant.active{background-color:#000}.btn-elegant.dropdown-toggle{background-color:#2e2e2e!important}.btn-elegant.dropdown-toggle:hover,.btn-elegant.dropdown-toggle:focus{background-color:#3b3b3b!important}.btn-elegant:not([disabled]):not(.disabled):active,.btn-elegant:not([disabled]):not(.disabled).active,.show>.btn-elegant.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#000!important}.btn-elegant:not([disabled]):not(.disabled):active:focus,.btn-elegant:not([disabled]):not(.disabled).active:focus,.show>.btn-elegant.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.elegant-ic{color:#2e2e2e!important}.elegant-ic:hover,.elegant-ic:focus{color:#2e2e2e}table.table a.btn.btn-elegant{color:#fff}.btn-outline-elegant{border:2px solid #2e2e2e!important;background-color:transparent!important;color:#2e2e2e!important}.btn-outline-elegant:hover,.btn-outline-elegant:focus,.btn-outline-elegant:active,.btn-outline-elegant:active:focus,.btn-outline-elegant.active{border-color:#2e2e2e!important;background-color:transparent!important;color:#2e2e2e!important}.btn-outline-elegant:not([disabled]):not(.disabled):active,.btn-outline-elegant:not([disabled]):not(.disabled).active,.show>.btn-outline-elegant.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#2e2e2e!important}.btn-outline-elegant:not([disabled]):not(.disabled):active:focus,.btn-outline-elegant:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-elegant.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-unique{background-color:#880e4f!important;color:#fff}.btn-unique:hover{background-color:#9f105c;color:#fff}.btn-unique:focus,.btn-unique.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-unique:focus,.btn-unique:active,.btn-unique.active{background-color:#2c0419}.btn-unique.dropdown-toggle{background-color:#880e4f!important}.btn-unique.dropdown-toggle:hover,.btn-unique.dropdown-toggle:focus{background-color:#9f105c!important}.btn-unique:not([disabled]):not(.disabled):active,.btn-unique:not([disabled]):not(.disabled).active,.show>.btn-unique.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#2c0419!important}.btn-unique:not([disabled]):not(.disabled):active:focus,.btn-unique:not([disabled]):not(.disabled).active:focus,.show>.btn-unique.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.unique-ic{color:#880e4f!important}.unique-ic:hover,.unique-ic:focus{color:#880e4f}table.table a.btn.btn-unique{color:#fff}.btn-outline-unique{border:2px solid #880e4f!important;background-color:transparent!important;color:#880e4f!important}.btn-outline-unique:hover,.btn-outline-unique:focus,.btn-outline-unique:active,.btn-outline-unique:active:focus,.btn-outline-unique.active{border-color:#880e4f!important;background-color:transparent!important;color:#880e4f!important}.btn-outline-unique:not([disabled]):not(.disabled):active,.btn-outline-unique:not([disabled]):not(.disabled).active,.show>.btn-outline-unique.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#880e4f!important}.btn-outline-unique:not([disabled]):not(.disabled):active:focus,.btn-outline-unique:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-unique.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark-green{background-color:#388e3c!important;color:#fff}.btn-dark-green:hover{background-color:#3fa044;color:#fff}.btn-dark-green:focus,.btn-dark-green.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark-green:focus,.btn-dark-green:active,.btn-dark-green.active{background-color:#1b451d}.btn-dark-green.dropdown-toggle{background-color:#388e3c!important}.btn-dark-green.dropdown-toggle:hover,.btn-dark-green.dropdown-toggle:focus{background-color:#3fa044!important}.btn-dark-green:not([disabled]):not(.disabled):active,.btn-dark-green:not([disabled]):not(.disabled).active,.show>.btn-dark-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#1b451d!important}.btn-dark-green:not([disabled]):not(.disabled):active:focus,.btn-dark-green:not([disabled]):not(.disabled).active:focus,.show>.btn-dark-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.dark-green-ic{color:#388e3c!important}.dark-green-ic:hover,.dark-green-ic:focus{color:#388e3c}table.table a.btn.btn-dark-green{color:#fff}.btn-outline-dark-green{border:2px solid #388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-dark-green:hover,.btn-outline-dark-green:focus,.btn-outline-dark-green:active,.btn-outline-dark-green:active:focus,.btn-outline-dark-green.active{border-color:#388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-dark-green:not([disabled]):not(.disabled):active,.btn-outline-dark-green:not([disabled]):not(.disabled).active,.show>.btn-outline-dark-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#388e3c!important}.btn-outline-dark-green:not([disabled]):not(.disabled):active:focus,.btn-outline-dark-green:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-dark-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-mdb-color{background-color:#59698d!important;color:#fff}.btn-mdb-color:hover{background-color:#63759d;color:#fff}.btn-mdb-color:focus,.btn-mdb-color.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-mdb-color:focus,.btn-mdb-color:active,.btn-mdb-color.active{background-color:#323a4e}.btn-mdb-color.dropdown-toggle{background-color:#59698d!important}.btn-mdb-color.dropdown-toggle:hover,.btn-mdb-color.dropdown-toggle:focus{background-color:#63759d!important}.btn-mdb-color:not([disabled]):not(.disabled):active,.btn-mdb-color:not([disabled]):not(.disabled).active,.show>.btn-mdb-color.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#323a4e!important}.btn-mdb-color:not([disabled]):not(.disabled):active:focus,.btn-mdb-color:not([disabled]):not(.disabled).active:focus,.show>.btn-mdb-color.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.mdb-color-ic{color:#59698d!important}.mdb-color-ic:hover,.mdb-color-ic:focus{color:#59698d}table.table a.btn.btn-mdb-color{color:#fff}.btn-outline-mdb-color{border:2px solid #59698d!important;background-color:transparent!important;color:#59698d!important}.btn-outline-mdb-color:hover,.btn-outline-mdb-color:focus,.btn-outline-mdb-color:active,.btn-outline-mdb-color:active:focus,.btn-outline-mdb-color.active{border-color:#59698d!important;background-color:transparent!important;color:#59698d!important}.btn-outline-mdb-color:not([disabled]):not(.disabled):active,.btn-outline-mdb-color:not([disabled]):not(.disabled).active,.show>.btn-outline-mdb-color.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#59698d!important}.btn-outline-mdb-color:not([disabled]):not(.disabled):active:focus,.btn-outline-mdb-color:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-mdb-color.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-red{background-color:#d32f2f!important;color:#fff}.btn-red:hover{background-color:#d74444;color:#fff}.btn-red:focus,.btn-red.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-red:focus,.btn-red:active,.btn-red.active{background-color:#811b1b}.btn-red.dropdown-toggle{background-color:#d32f2f!important}.btn-red.dropdown-toggle:hover,.btn-red.dropdown-toggle:focus{background-color:#d74444!important}.btn-red:not([disabled]):not(.disabled):active,.btn-red:not([disabled]):not(.disabled).active,.show>.btn-red.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#811b1b!important}.btn-red:not([disabled]):not(.disabled):active:focus,.btn-red:not([disabled]):not(.disabled).active:focus,.show>.btn-red.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.red-ic{color:#d32f2f!important}.red-ic:hover,.red-ic:focus{color:#d32f2f}table.table a.btn.btn-red{color:#fff}.btn-outline-red{border:2px solid #d32f2f!important;background-color:transparent!important;color:#d32f2f!important}.btn-outline-red:hover,.btn-outline-red:focus,.btn-outline-red:active,.btn-outline-red:active:focus,.btn-outline-red.active{border-color:#d32f2f!important;background-color:transparent!important;color:#d32f2f!important}.btn-outline-red:not([disabled]):not(.disabled):active,.btn-outline-red:not([disabled]):not(.disabled).active,.show>.btn-outline-red.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#d32f2f!important}.btn-outline-red:not([disabled]):not(.disabled):active:focus,.btn-outline-red:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-red.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-pink{background-color:#ec407a!important;color:#fff}.btn-pink:hover{background-color:#ee578a;color:#fff}.btn-pink:focus,.btn-pink.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-pink:focus,.btn-pink:active,.btn-pink.active{background-color:#b41249}.btn-pink.dropdown-toggle{background-color:#ec407a!important}.btn-pink.dropdown-toggle:hover,.btn-pink.dropdown-toggle:focus{background-color:#ee578a!important}.btn-pink:not([disabled]):not(.disabled):active,.btn-pink:not([disabled]):not(.disabled).active,.show>.btn-pink.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#b41249!important}.btn-pink:not([disabled]):not(.disabled):active:focus,.btn-pink:not([disabled]):not(.disabled).active:focus,.show>.btn-pink.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.pink-ic{color:#ec407a!important}.pink-ic:hover,.pink-ic:focus{color:#ec407a}table.table a.btn.btn-pink{color:#fff}.btn-outline-pink{border:2px solid #ec407a!important;background-color:transparent!important;color:#ec407a!important}.btn-outline-pink:hover,.btn-outline-pink:focus,.btn-outline-pink:active,.btn-outline-pink:active:focus,.btn-outline-pink.active{border-color:#ec407a!important;background-color:transparent!important;color:#ec407a!important}.btn-outline-pink:not([disabled]):not(.disabled):active,.btn-outline-pink:not([disabled]):not(.disabled).active,.show>.btn-outline-pink.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ec407a!important}.btn-outline-pink:not([disabled]):not(.disabled):active:focus,.btn-outline-pink:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-pink.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-purple{background-color:#8e24aa!important;color:#fff}.btn-purple:hover{background-color:#a028bf;color:#fff}.btn-purple:focus,.btn-purple.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-purple:focus,.btn-purple:active,.btn-purple.active{background-color:#481256}.btn-purple.dropdown-toggle{background-color:#8e24aa!important}.btn-purple.dropdown-toggle:hover,.btn-purple.dropdown-toggle:focus{background-color:#a028bf!important}.btn-purple:not([disabled]):not(.disabled):active,.btn-purple:not([disabled]):not(.disabled).active,.show>.btn-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#481256!important}.btn-purple:not([disabled]):not(.disabled):active:focus,.btn-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.purple-ic{color:#8e24aa!important}.purple-ic:hover,.purple-ic:focus{color:#8e24aa}table.table a.btn.btn-purple{color:#fff}.btn-outline-purple{border:2px solid #8e24aa!important;background-color:transparent!important;color:#8e24aa!important}.btn-outline-purple:hover,.btn-outline-purple:focus,.btn-outline-purple:active,.btn-outline-purple:active:focus,.btn-outline-purple.active{border-color:#8e24aa!important;background-color:transparent!important;color:#8e24aa!important}.btn-outline-purple:not([disabled]):not(.disabled):active,.btn-outline-purple:not([disabled]):not(.disabled).active,.show>.btn-outline-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#8e24aa!important}.btn-outline-purple:not([disabled]):not(.disabled):active:focus,.btn-outline-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-purple{background-color:#512da8!important;color:#fff}.btn-deep-purple:hover{background-color:#5b32bc;color:#fff}.btn-deep-purple:focus,.btn-deep-purple.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-purple:focus,.btn-deep-purple:active,.btn-deep-purple.active{background-color:#2a1758}.btn-deep-purple.dropdown-toggle{background-color:#512da8!important}.btn-deep-purple.dropdown-toggle:hover,.btn-deep-purple.dropdown-toggle:focus{background-color:#5b32bc!important}.btn-deep-purple:not([disabled]):not(.disabled):active,.btn-deep-purple:not([disabled]):not(.disabled).active,.show>.btn-deep-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#2a1758!important}.btn-deep-purple:not([disabled]):not(.disabled):active:focus,.btn-deep-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-deep-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.deep-purple-ic{color:#512da8!important}.deep-purple-ic:hover,.deep-purple-ic:focus{color:#512da8}table.table a.btn.btn-deep-purple{color:#fff}.btn-outline-deep-purple{border:2px solid #512da8!important;background-color:transparent!important;color:#512da8!important}.btn-outline-deep-purple:hover,.btn-outline-deep-purple:focus,.btn-outline-deep-purple:active,.btn-outline-deep-purple:active:focus,.btn-outline-deep-purple.active{border-color:#512da8!important;background-color:transparent!important;color:#512da8!important}.btn-outline-deep-purple:not([disabled]):not(.disabled):active,.btn-outline-deep-purple:not([disabled]):not(.disabled).active,.show>.btn-outline-deep-purple.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#512da8!important}.btn-outline-deep-purple:not([disabled]):not(.disabled):active:focus,.btn-outline-deep-purple:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-deep-purple.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-indigo{background-color:#3f51b5!important;color:#fff}.btn-indigo:hover{background-color:#4d5ec1;color:#fff}.btn-indigo:focus,.btn-indigo.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-indigo:focus,.btn-indigo:active,.btn-indigo.active{background-color:#252f69}.btn-indigo.dropdown-toggle{background-color:#3f51b5!important}.btn-indigo.dropdown-toggle:hover,.btn-indigo.dropdown-toggle:focus{background-color:#4d5ec1!important}.btn-indigo:not([disabled]):not(.disabled):active,.btn-indigo:not([disabled]):not(.disabled).active,.show>.btn-indigo.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#252f69!important}.btn-indigo:not([disabled]):not(.disabled):active:focus,.btn-indigo:not([disabled]):not(.disabled).active:focus,.show>.btn-indigo.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.indigo-ic{color:#3f51b5!important}.indigo-ic:hover,.indigo-ic:focus{color:#3f51b5}table.table a.btn.btn-indigo{color:#fff}.btn-outline-indigo{border:2px solid #3f51b5!important;background-color:transparent!important;color:#3f51b5!important}.btn-outline-indigo:hover,.btn-outline-indigo:focus,.btn-outline-indigo:active,.btn-outline-indigo:active:focus,.btn-outline-indigo.active{border-color:#3f51b5!important;background-color:transparent!important;color:#3f51b5!important}.btn-outline-indigo:not([disabled]):not(.disabled):active,.btn-outline-indigo:not([disabled]):not(.disabled).active,.show>.btn-outline-indigo.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#3f51b5!important}.btn-outline-indigo:not([disabled]):not(.disabled):active:focus,.btn-outline-indigo:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-indigo.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue{background-color:#1976d2!important;color:#fff}.btn-blue:hover{background-color:#2083e4;color:#fff}.btn-blue:focus,.btn-blue.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue:focus,.btn-blue:active,.btn-blue.active{background-color:#0e4377}.btn-blue.dropdown-toggle{background-color:#1976d2!important}.btn-blue.dropdown-toggle:hover,.btn-blue.dropdown-toggle:focus{background-color:#2083e4!important}.btn-blue:not([disabled]):not(.disabled):active,.btn-blue:not([disabled]):not(.disabled).active,.show>.btn-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#0e4377!important}.btn-blue:not([disabled]):not(.disabled):active:focus,.btn-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.blue-ic{color:#1976d2!important}.blue-ic:hover,.blue-ic:focus{color:#1976d2}table.table a.btn.btn-blue{color:#fff}.btn-outline-blue{border:2px solid #1976d2!important;background-color:transparent!important;color:#1976d2!important}.btn-outline-blue:hover,.btn-outline-blue:focus,.btn-outline-blue:active,.btn-outline-blue:active:focus,.btn-outline-blue.active{border-color:#1976d2!important;background-color:transparent!important;color:#1976d2!important}.btn-outline-blue:not([disabled]):not(.disabled):active,.btn-outline-blue:not([disabled]):not(.disabled).active,.show>.btn-outline-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#1976d2!important}.btn-outline-blue:not([disabled]):not(.disabled):active:focus,.btn-outline-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-blue{background-color:#82b1ff!important;color:#fff}.btn-light-blue:hover{background-color:#9cc1ff;color:#fff}.btn-light-blue:focus,.btn-light-blue.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-blue:focus,.btn-light-blue:active,.btn-light-blue.active{background-color:#1c71ff}.btn-light-blue.dropdown-toggle{background-color:#82b1ff!important}.btn-light-blue.dropdown-toggle:hover,.btn-light-blue.dropdown-toggle:focus{background-color:#9cc1ff!important}.btn-light-blue:not([disabled]):not(.disabled):active,.btn-light-blue:not([disabled]):not(.disabled).active,.show>.btn-light-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#1c71ff!important}.btn-light-blue:not([disabled]):not(.disabled):active:focus,.btn-light-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-light-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.light-blue-ic{color:#82b1ff!important}.light-blue-ic:hover,.light-blue-ic:focus{color:#82b1ff}table.table a.btn.btn-light-blue{color:#fff}.btn-outline-light-blue{border:2px solid #82b1ff!important;background-color:transparent!important;color:#82b1ff!important}.btn-outline-light-blue:hover,.btn-outline-light-blue:focus,.btn-outline-light-blue:active,.btn-outline-light-blue:active:focus,.btn-outline-light-blue.active{border-color:#82b1ff!important;background-color:transparent!important;color:#82b1ff!important}.btn-outline-light-blue:not([disabled]):not(.disabled):active,.btn-outline-light-blue:not([disabled]):not(.disabled).active,.show>.btn-outline-light-blue.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#82b1ff!important}.btn-outline-light-blue:not([disabled]):not(.disabled):active:focus,.btn-outline-light-blue:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-light-blue.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-cyan{background-color:#00bcd4!important;color:#fff}.btn-cyan:hover{background-color:#00d3ee;color:#fff}.btn-cyan:focus,.btn-cyan.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-cyan:focus,.btn-cyan:active,.btn-cyan.active{background-color:#00626e}.btn-cyan.dropdown-toggle{background-color:#00bcd4!important}.btn-cyan.dropdown-toggle:hover,.btn-cyan.dropdown-toggle:focus{background-color:#00d3ee!important}.btn-cyan:not([disabled]):not(.disabled):active,.btn-cyan:not([disabled]):not(.disabled).active,.show>.btn-cyan.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#00626e!important}.btn-cyan:not([disabled]):not(.disabled):active:focus,.btn-cyan:not([disabled]):not(.disabled).active:focus,.show>.btn-cyan.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.cyan-ic{color:#00bcd4!important}.cyan-ic:hover,.cyan-ic:focus{color:#00bcd4}table.table a.btn.btn-cyan{color:#fff}.btn-outline-cyan{border:2px solid #00bcd4!important;background-color:transparent!important;color:#00bcd4!important}.btn-outline-cyan:hover,.btn-outline-cyan:focus,.btn-outline-cyan:active,.btn-outline-cyan:active:focus,.btn-outline-cyan.active{border-color:#00bcd4!important;background-color:transparent!important;color:#00bcd4!important}.btn-outline-cyan:not([disabled]):not(.disabled):active,.btn-outline-cyan:not([disabled]):not(.disabled).active,.show>.btn-outline-cyan.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#00bcd4!important}.btn-outline-cyan:not([disabled]):not(.disabled):active:focus,.btn-outline-cyan:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-cyan.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-teal{background-color:#00796b!important;color:#fff}.btn-teal:hover{background-color:#009382;color:#fff}.btn-teal:focus,.btn-teal.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-teal:focus,.btn-teal:active,.btn-teal.active{background-color:#001311}.btn-teal.dropdown-toggle{background-color:#00796b!important}.btn-teal.dropdown-toggle:hover,.btn-teal.dropdown-toggle:focus{background-color:#009382!important}.btn-teal:not([disabled]):not(.disabled):active,.btn-teal:not([disabled]):not(.disabled).active,.show>.btn-teal.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#001311!important}.btn-teal:not([disabled]):not(.disabled):active:focus,.btn-teal:not([disabled]):not(.disabled).active:focus,.show>.btn-teal.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.teal-ic{color:#00796b!important}.teal-ic:hover,.teal-ic:focus{color:#00796b}table.table a.btn.btn-teal{color:#fff}.btn-outline-teal{border:2px solid #00796b!important;background-color:transparent!important;color:#00796b!important}.btn-outline-teal:hover,.btn-outline-teal:focus,.btn-outline-teal:active,.btn-outline-teal:active:focus,.btn-outline-teal.active{border-color:#00796b!important;background-color:transparent!important;color:#00796b!important}.btn-outline-teal:not([disabled]):not(.disabled):active,.btn-outline-teal:not([disabled]):not(.disabled).active,.show>.btn-outline-teal.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#00796b!important}.btn-outline-teal:not([disabled]):not(.disabled):active:focus,.btn-outline-teal:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-teal.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-green{background-color:#388e3c!important;color:#fff}.btn-green:hover{background-color:#3fa044;color:#fff}.btn-green:focus,.btn-green.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-green:focus,.btn-green:active,.btn-green.active{background-color:#1b451d}.btn-green.dropdown-toggle{background-color:#388e3c!important}.btn-green.dropdown-toggle:hover,.btn-green.dropdown-toggle:focus{background-color:#3fa044!important}.btn-green:not([disabled]):not(.disabled):active,.btn-green:not([disabled]):not(.disabled).active,.show>.btn-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#1b451d!important}.btn-green:not([disabled]):not(.disabled):active:focus,.btn-green:not([disabled]):not(.disabled).active:focus,.show>.btn-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.green-ic{color:#388e3c!important}.green-ic:hover,.green-ic:focus{color:#388e3c}table.table a.btn.btn-green{color:#fff}.btn-outline-green{border:2px solid #388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-green:hover,.btn-outline-green:focus,.btn-outline-green:active,.btn-outline-green:active:focus,.btn-outline-green.active{border-color:#388e3c!important;background-color:transparent!important;color:#388e3c!important}.btn-outline-green:not([disabled]):not(.disabled):active,.btn-outline-green:not([disabled]):not(.disabled).active,.show>.btn-outline-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#388e3c!important}.btn-outline-green:not([disabled]):not(.disabled):active:focus,.btn-outline-green:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-green{background-color:#8bc34a!important;color:#fff}.btn-light-green:hover{background-color:#97c95d;color:#fff}.btn-light-green:focus,.btn-light-green.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light-green:focus,.btn-light-green:active,.btn-light-green.active{background-color:#577d2a}.btn-light-green.dropdown-toggle{background-color:#8bc34a!important}.btn-light-green.dropdown-toggle:hover,.btn-light-green.dropdown-toggle:focus{background-color:#97c95d!important}.btn-light-green:not([disabled]):not(.disabled):active,.btn-light-green:not([disabled]):not(.disabled).active,.show>.btn-light-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#577d2a!important}.btn-light-green:not([disabled]):not(.disabled):active:focus,.btn-light-green:not([disabled]):not(.disabled).active:focus,.show>.btn-light-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.light-green-ic{color:#8bc34a!important}.light-green-ic:hover,.light-green-ic:focus{color:#8bc34a}table.table a.btn.btn-light-green{color:#fff}.btn-outline-light-green{border:2px solid #8bc34a!important;background-color:transparent!important;color:#8bc34a!important}.btn-outline-light-green:hover,.btn-outline-light-green:focus,.btn-outline-light-green:active,.btn-outline-light-green:active:focus,.btn-outline-light-green.active{border-color:#8bc34a!important;background-color:transparent!important;color:#8bc34a!important}.btn-outline-light-green:not([disabled]):not(.disabled):active,.btn-outline-light-green:not([disabled]):not(.disabled).active,.show>.btn-outline-light-green.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#8bc34a!important}.btn-outline-light-green:not([disabled]):not(.disabled):active:focus,.btn-outline-light-green:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-light-green.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-lime{background-color:#afb42b!important;color:#fff}.btn-lime:hover{background-color:#c3c930;color:#fff}.btn-lime:focus,.btn-lime.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-lime:focus,.btn-lime:active,.btn-lime.active{background-color:#5f6217}.btn-lime.dropdown-toggle{background-color:#afb42b!important}.btn-lime.dropdown-toggle:hover,.btn-lime.dropdown-toggle:focus{background-color:#c3c930!important}.btn-lime:not([disabled]):not(.disabled):active,.btn-lime:not([disabled]):not(.disabled).active,.show>.btn-lime.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#5f6217!important}.btn-lime:not([disabled]):not(.disabled):active:focus,.btn-lime:not([disabled]):not(.disabled).active:focus,.show>.btn-lime.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.lime-ic{color:#afb42b!important}.lime-ic:hover,.lime-ic:focus{color:#afb42b}table.table a.btn.btn-lime{color:#fff}.btn-outline-lime{border:2px solid #afb42b!important;background-color:transparent!important;color:#afb42b!important}.btn-outline-lime:hover,.btn-outline-lime:focus,.btn-outline-lime:active,.btn-outline-lime:active:focus,.btn-outline-lime.active{border-color:#afb42b!important;background-color:transparent!important;color:#afb42b!important}.btn-outline-lime:not([disabled]):not(.disabled):active,.btn-outline-lime:not([disabled]):not(.disabled).active,.show>.btn-outline-lime.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#afb42b!important}.btn-outline-lime:not([disabled]):not(.disabled):active:focus,.btn-outline-lime:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-lime.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-yellow{background-color:#fbc02d!important;color:#fff}.btn-yellow:hover{background-color:#fbc846;color:#fff}.btn-yellow:focus,.btn-yellow.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-yellow:focus,.btn-yellow:active,.btn-yellow.active{background-color:#be8904}.btn-yellow.dropdown-toggle{background-color:#fbc02d!important}.btn-yellow.dropdown-toggle:hover,.btn-yellow.dropdown-toggle:focus{background-color:#fbc846!important}.btn-yellow:not([disabled]):not(.disabled):active,.btn-yellow:not([disabled]):not(.disabled).active,.show>.btn-yellow.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#be8904!important}.btn-yellow:not([disabled]):not(.disabled):active:focus,.btn-yellow:not([disabled]):not(.disabled).active:focus,.show>.btn-yellow.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.yellow-ic{color:#fbc02d!important}.yellow-ic:hover,.yellow-ic:focus{color:#fbc02d}table.table a.btn.btn-yellow{color:#fff}.btn-outline-yellow{border:2px solid #fbc02d!important;background-color:transparent!important;color:#fbc02d!important}.btn-outline-yellow:hover,.btn-outline-yellow:focus,.btn-outline-yellow:active,.btn-outline-yellow:active:focus,.btn-outline-yellow.active{border-color:#fbc02d!important;background-color:transparent!important;color:#fbc02d!important}.btn-outline-yellow:not([disabled]):not(.disabled):active,.btn-outline-yellow:not([disabled]):not(.disabled).active,.show>.btn-outline-yellow.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#fbc02d!important}.btn-outline-yellow:not([disabled]):not(.disabled):active:focus,.btn-outline-yellow:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-yellow.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-amber{background-color:#ffa000!important;color:#fff}.btn-amber:hover{background-color:#ffaa1a;color:#fff}.btn-amber:focus,.btn-amber.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-amber:focus,.btn-amber:active,.btn-amber.active{background-color:#996000}.btn-amber.dropdown-toggle{background-color:#ffa000!important}.btn-amber.dropdown-toggle:hover,.btn-amber.dropdown-toggle:focus{background-color:#ffaa1a!important}.btn-amber:not([disabled]):not(.disabled):active,.btn-amber:not([disabled]):not(.disabled).active,.show>.btn-amber.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#996000!important}.btn-amber:not([disabled]):not(.disabled):active:focus,.btn-amber:not([disabled]):not(.disabled).active:focus,.show>.btn-amber.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.amber-ic{color:#ffa000!important}.amber-ic:hover,.amber-ic:focus{color:#ffa000}table.table a.btn.btn-amber{color:#fff}.btn-outline-amber{border:2px solid #ffa000!important;background-color:transparent!important;color:#ffa000!important}.btn-outline-amber:hover,.btn-outline-amber:focus,.btn-outline-amber:active,.btn-outline-amber:active:focus,.btn-outline-amber.active{border-color:#ffa000!important;background-color:transparent!important;color:#ffa000!important}.btn-outline-amber:not([disabled]):not(.disabled):active,.btn-outline-amber:not([disabled]):not(.disabled).active,.show>.btn-outline-amber.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ffa000!important}.btn-outline-amber:not([disabled]):not(.disabled):active:focus,.btn-outline-amber:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-amber.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-orange{background-color:#f57c00!important;color:#fff}.btn-orange:hover{background-color:#ff8910;color:#fff}.btn-orange:focus,.btn-orange.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-orange:focus,.btn-orange:active,.btn-orange.active{background-color:#8f4800}.btn-orange.dropdown-toggle{background-color:#f57c00!important}.btn-orange.dropdown-toggle:hover,.btn-orange.dropdown-toggle:focus{background-color:#ff8910!important}.btn-orange:not([disabled]):not(.disabled):active,.btn-orange:not([disabled]):not(.disabled).active,.show>.btn-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#8f4800!important}.btn-orange:not([disabled]):not(.disabled):active:focus,.btn-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.orange-ic{color:#f57c00!important}.orange-ic:hover,.orange-ic:focus{color:#f57c00}table.table a.btn.btn-orange{color:#fff}.btn-outline-orange{border:2px solid #f57c00!important;background-color:transparent!important;color:#f57c00!important}.btn-outline-orange:hover,.btn-outline-orange:focus,.btn-outline-orange:active,.btn-outline-orange:active:focus,.btn-outline-orange.active{border-color:#f57c00!important;background-color:transparent!important;color:#f57c00!important}.btn-outline-orange:not([disabled]):not(.disabled):active,.btn-outline-orange:not([disabled]):not(.disabled).active,.show>.btn-outline-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#f57c00!important}.btn-outline-orange:not([disabled]):not(.disabled):active:focus,.btn-outline-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-orange{background-color:#ff7043!important;color:#fff}.btn-deep-orange:hover{background-color:#ff835d;color:#fff}.btn-deep-orange:focus,.btn-deep-orange.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-deep-orange:focus,.btn-deep-orange:active,.btn-deep-orange.active{background-color:#dc3500}.btn-deep-orange.dropdown-toggle{background-color:#ff7043!important}.btn-deep-orange.dropdown-toggle:hover,.btn-deep-orange.dropdown-toggle:focus{background-color:#ff835d!important}.btn-deep-orange:not([disabled]):not(.disabled):active,.btn-deep-orange:not([disabled]):not(.disabled).active,.show>.btn-deep-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#dc3500!important}.btn-deep-orange:not([disabled]):not(.disabled):active:focus,.btn-deep-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-deep-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.deep-orange-ic{color:#ff7043!important}.deep-orange-ic:hover,.deep-orange-ic:focus{color:#ff7043}table.table a.btn.btn-deep-orange{color:#fff}.btn-outline-deep-orange{border:2px solid #ff7043!important;background-color:transparent!important;color:#ff7043!important}.btn-outline-deep-orange:hover,.btn-outline-deep-orange:focus,.btn-outline-deep-orange:active,.btn-outline-deep-orange:active:focus,.btn-outline-deep-orange.active{border-color:#ff7043!important;background-color:transparent!important;color:#ff7043!important}.btn-outline-deep-orange:not([disabled]):not(.disabled):active,.btn-outline-deep-orange:not([disabled]):not(.disabled).active,.show>.btn-outline-deep-orange.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#ff7043!important}.btn-outline-deep-orange:not([disabled]):not(.disabled):active:focus,.btn-outline-deep-orange:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-deep-orange.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-brown{background-color:#795548!important;color:#fff}.btn-brown:hover{background-color:#896052;color:#fff}.btn-brown:focus,.btn-brown.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-brown:focus,.btn-brown:active,.btn-brown.active{background-color:#392822}.btn-brown.dropdown-toggle{background-color:#795548!important}.btn-brown.dropdown-toggle:hover,.btn-brown.dropdown-toggle:focus{background-color:#896052!important}.btn-brown:not([disabled]):not(.disabled):active,.btn-brown:not([disabled]):not(.disabled).active,.show>.btn-brown.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#392822!important}.btn-brown:not([disabled]):not(.disabled):active:focus,.btn-brown:not([disabled]):not(.disabled).active:focus,.show>.btn-brown.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.brown-ic{color:#795548!important}.brown-ic:hover,.brown-ic:focus{color:#795548}table.table a.btn.btn-brown{color:#fff}.btn-outline-brown{border:2px solid #795548!important;background-color:transparent!important;color:#795548!important}.btn-outline-brown:hover,.btn-outline-brown:focus,.btn-outline-brown:active,.btn-outline-brown:active:focus,.btn-outline-brown.active{border-color:#795548!important;background-color:transparent!important;color:#795548!important}.btn-outline-brown:not([disabled]):not(.disabled):active,.btn-outline-brown:not([disabled]):not(.disabled).active,.show>.btn-outline-brown.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#795548!important}.btn-outline-brown:not([disabled]):not(.disabled):active:focus,.btn-outline-brown:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-brown.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-grey{background-color:#616161!important;color:#fff}.btn-grey:hover{background-color:#6e6e6e;color:#fff}.btn-grey:focus,.btn-grey.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-grey:focus,.btn-grey:active,.btn-grey.active{background-color:#2e2e2e}.btn-grey.dropdown-toggle{background-color:#616161!important}.btn-grey.dropdown-toggle:hover,.btn-grey.dropdown-toggle:focus{background-color:#6e6e6e!important}.btn-grey:not([disabled]):not(.disabled):active,.btn-grey:not([disabled]):not(.disabled).active,.show>.btn-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#2e2e2e!important}.btn-grey:not([disabled]):not(.disabled):active:focus,.btn-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.grey-ic{color:#616161!important}.grey-ic:hover,.grey-ic:focus{color:#616161}table.table a.btn.btn-grey{color:#fff}.btn-outline-grey{border:2px solid #616161!important;background-color:transparent!important;color:#616161!important}.btn-outline-grey:hover,.btn-outline-grey:focus,.btn-outline-grey:active,.btn-outline-grey:active:focus,.btn-outline-grey.active{border-color:#616161!important;background-color:transparent!important;color:#616161!important}.btn-outline-grey:not([disabled]):not(.disabled):active,.btn-outline-grey:not([disabled]):not(.disabled).active,.show>.btn-outline-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#616161!important}.btn-outline-grey:not([disabled]):not(.disabled):active:focus,.btn-outline-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue-grey{background-color:#78909c!important;color:#fff}.btn-blue-grey:hover{background-color:#879ca7;color:#fff}.btn-blue-grey:focus,.btn-blue-grey.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-blue-grey:focus,.btn-blue-grey:active,.btn-blue-grey.active{background-color:#4a5b64}.btn-blue-grey.dropdown-toggle{background-color:#78909c!important}.btn-blue-grey.dropdown-toggle:hover,.btn-blue-grey.dropdown-toggle:focus{background-color:#879ca7!important}.btn-blue-grey:not([disabled]):not(.disabled):active,.btn-blue-grey:not([disabled]):not(.disabled).active,.show>.btn-blue-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#4a5b64!important}.btn-blue-grey:not([disabled]):not(.disabled):active:focus,.btn-blue-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-blue-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.blue-grey-ic{color:#78909c!important}.blue-grey-ic:hover,.blue-grey-ic:focus{color:#78909c}table.table a.btn.btn-blue-grey{color:#fff}.btn-outline-blue-grey{border:2px solid #78909c!important;background-color:transparent!important;color:#78909c!important}.btn-outline-blue-grey:hover,.btn-outline-blue-grey:focus,.btn-outline-blue-grey:active,.btn-outline-blue-grey:active:focus,.btn-outline-blue-grey.active{border-color:#78909c!important;background-color:transparent!important;color:#78909c!important}.btn-outline-blue-grey:not([disabled]):not(.disabled):active,.btn-outline-blue-grey:not([disabled]):not(.disabled).active,.show>.btn-outline-blue-grey.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#78909c!important}.btn-outline-blue-grey:not([disabled]):not(.disabled):active:focus,.btn-outline-blue-grey:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-blue-grey.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark{background-color:#212121!important;color:#fff}.btn-dark:hover{background-color:#2e2e2e;color:#fff}.btn-dark:focus,.btn-dark.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-dark:focus,.btn-dark:active,.btn-dark.active{background-color:#000}.btn-dark.dropdown-toggle{background-color:#212121!important}.btn-dark.dropdown-toggle:hover,.btn-dark.dropdown-toggle:focus{background-color:#2e2e2e!important}.btn-dark:not([disabled]):not(.disabled):active,.btn-dark:not([disabled]):not(.disabled).active,.show>.btn-dark.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#000!important}.btn-dark:not([disabled]):not(.disabled):active:focus,.btn-dark:not([disabled]):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.dark-ic{color:#212121!important}.dark-ic:hover,.dark-ic:focus{color:#212121}table.table a.btn.btn-dark{color:#fff}.btn-outline-dark{border:2px solid #212121!important;background-color:transparent!important;color:#212121!important}.btn-outline-dark:hover,.btn-outline-dark:focus,.btn-outline-dark:active,.btn-outline-dark:active:focus,.btn-outline-dark.active{border-color:#212121!important;background-color:transparent!important;color:#212121!important}.btn-outline-dark:not([disabled]):not(.disabled):active,.btn-outline-dark:not([disabled]):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#212121!important}.btn-outline-dark:not([disabled]):not(.disabled):active:focus,.btn-outline-dark:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light{background-color:#e0e0e0!important;color:#000}.btn-light:hover{background-color:#ededed;color:#000}.btn-light:focus,.btn-light.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-light:focus,.btn-light:active,.btn-light.active{background-color:#adadad}.btn-light.dropdown-toggle{background-color:#e0e0e0!important}.btn-light.dropdown-toggle:hover,.btn-light.dropdown-toggle:focus{background-color:#ededed!important}.btn-light:not([disabled]):not(.disabled):active,.btn-light:not([disabled]):not(.disabled).active,.show>.btn-light.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#adadad!important}.btn-light:not([disabled]):not(.disabled):active:focus,.btn-light:not([disabled]):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.light-ic{color:#e0e0e0!important}.light-ic:hover,.light-ic:focus{color:#e0e0e0}table.table a.btn.btn-light{color:#000}.btn-outline-light{border:2px solid #e0e0e0!important;background-color:transparent!important;color:#e0e0e0!important}.btn-outline-light:hover,.btn-outline-light:focus,.btn-outline-light:active,.btn-outline-light:active:focus,.btn-outline-light.active{border-color:#e0e0e0!important;background-color:transparent!important;color:#e0e0e0!important}.btn-outline-light:not([disabled]):not(.disabled):active,.btn-outline-light:not([disabled]):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#e0e0e0!important}.btn-outline-light:not([disabled]):not(.disabled):active:focus,.btn-outline-light:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-white{background-color:#fff!important;color:#000}.btn-white:hover{background-color:#fff;color:#000}.btn-white:focus,.btn-white.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-white:focus,.btn-white:active,.btn-white.active{background-color:#ccc}.btn-white.dropdown-toggle{background-color:#fff!important}.btn-white.dropdown-toggle:hover,.btn-white.dropdown-toggle:focus{background-color:#fff!important}.btn-white:not([disabled]):not(.disabled):active,.btn-white:not([disabled]):not(.disabled).active,.show>.btn-white.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#ccc!important}.btn-white:not([disabled]):not(.disabled):active:focus,.btn-white:not([disabled]):not(.disabled).active:focus,.show>.btn-white.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.white-ic{color:#fff!important}.white-ic:hover,.white-ic:focus{color:#fff}a.btn:not([href]):not([tabindex]),a.btn:not([href]):not([tabindex]):focus,a.btn:not([href]):not([tabindex]):hover{color:#000}table.table a.btn.btn-white{color:#000}.btn-outline-white{border:2px solid #fff!important;background-color:transparent!important;color:#fff!important}.btn-outline-white:hover,.btn-outline-white:focus,.btn-outline-white:active,.btn-outline-white:active:focus,.btn-outline-white.active{border-color:#fff!important;background-color:transparent!important;color:#fff!important}.btn-outline-white:not([disabled]):not(.disabled):active,.btn-outline-white:not([disabled]):not(.disabled).active,.show>.btn-outline-white.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#fff!important}.btn-outline-white:not([disabled]):not(.disabled):active:focus,.btn-outline-white:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-white.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-black{background-color:#000!important;color:#fff}.btn-black:hover{background-color:#0d0d0d;color:#fff}.btn-black:focus,.btn-black.focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-black:focus,.btn-black:active,.btn-black.active{background-color:#000}.btn-black.dropdown-toggle{background-color:#000!important}.btn-black.dropdown-toggle:hover,.btn-black.dropdown-toggle:focus{background-color:#0d0d0d!important}.btn-black:not([disabled]):not(.disabled):active,.btn-black:not([disabled]):not(.disabled).active,.show>.btn-black.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:#000!important}.btn-black:not([disabled]):not(.disabled):active:focus,.btn-black:not([disabled]):not(.disabled).active:focus,.show>.btn-black.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.black-ic{color:#000!important}.black-ic:hover,.black-ic:focus{color:#000}a.btn:not([href]):not([tabindex]),a.btn:not([href]):not([tabindex]):focus,a.btn:not([href]):not([tabindex]):hover{color:#fff}table.table a.btn.btn-black{color:#fff}.btn-outline-black{border:2px solid #000!important;background-color:transparent!important;color:#000!important}.btn-outline-black:hover,.btn-outline-black:focus,.btn-outline-black:active,.btn-outline-black:active:focus,.btn-outline-black.active{border-color:#000!important;background-color:transparent!important;color:#000!important}.btn-outline-black:not([disabled]):not(.disabled):active,.btn-outline-black:not([disabled]):not(.disabled).active,.show>.btn-outline-black.dropdown-toggle{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;background-color:transparent!important;border-color:#000!important}.btn-outline-black:not([disabled]):not(.disabled):active:focus,.btn-outline-black:not([disabled]):not(.disabled).active:focus,.show>.btn-outline-black.dropdown-toggle:focus{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#fff}.btn.purple-gradient{transition:.5s ease;color:#fff}.btn.purple-gradient:hover,.btn.purple-gradient:focus,.btn.purple-gradient:active,.btn.purple-gradient:active:focus .btn.purple-gradient.active{background:linear-gradient(#ff88ce,#8f8bf7)}.btn.peach-gradient{transition:.5s ease;color:#fff}.btn.peach-gradient:hover,.btn.peach-gradient:focus,.btn.peach-gradient:active,.btn.peach-gradient:active:focus .btn.peach-gradient.active{background:linear-gradient(#ffdf89,#fc7b7b)}.btn.aqua-gradient{transition:.5s ease;color:#fff}.btn.aqua-gradient:hover,.btn.aqua-gradient:focus,.btn.aqua-gradient:active,.btn.aqua-gradient:active:focus .btn.aqua-gradient.active{background:linear-gradient(#3aa2ff,#1fffac)}.btn.blue-gradient{transition:.5s ease;color:#fff}.btn.blue-gradient:hover,.btn.blue-gradient:focus,.btn.blue-gradient:active,.btn.blue-gradient:active:focus .btn.blue-gradient.active{background:linear-gradient(#5ed1fc,#3647b3)}.btn mdb-icon{position:relative;font-size:.9rem}.btn mdb-icon.right{margin-left:.3rem}.btn mdb-icon.left{margin-right:.3rem}.btn.btn-lg{padding:1rem 2.4rem;font-size:.94rem}.btn.btn-lg mdb-icon{font-size:1rem}.btn.btn-md{padding:.7rem 1.6rem;font-size:.7rem}.btn.btn-md mdb-icon{font-size:.8rem}.btn.btn-sm{padding:.5rem 1.6rem;font-size:.64rem}.btn.btn-sm mdb-icon{font-size:.7rem}\n"] }]
384 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { color: [{
385 type: Input
386 }], rounded: [{
387 type: Input
388 }], gradient: [{
389 type: Input
390 }], outline: [{
391 type: Input
392 }], flat: [{
393 type: Input
394 }], size: [{
395 type: Input
396 }], block: [{
397 type: Input
398 }], floating: [{
399 type: Input
400 }] } });
401
402const CHECKBOX_CONTROL_VALUE_ACCESSOR = {
403 provide: NG_VALUE_ACCESSOR,
404 // eslint-disable-next-line @typescript-eslint/no-use-before-define
405 useExisting: forwardRef(() => ButtonCheckboxDirective),
406 multi: true,
407};
408/**
409 * Add checkbox functionality to any element
410 */
411class ButtonCheckboxDirective {
412 constructor() {
413 /** Truthy value, will be set to ngModel */
414 this.btnCheckboxTrue = true;
415 /** Falsy value, will be set to ngModel */
416 this.btnCheckboxFalse = false;
417 this.state = false;
418 this.onChange = Function.prototype;
419 this.onTouched = Function.prototype;
420 }
421 // view -> model
422 onClick() {
423 if (this.isDisabled) {
424 return;
425 }
426 this.toggle(!this.state);
427 this.onChange(this.value);
428 }
429 ngOnInit() {
430 this.toggle(this.trueValue === this.value);
431 }
432 get trueValue() {
433 return typeof this.btnCheckboxTrue !== 'undefined' ? this.btnCheckboxTrue : true;
434 }
435 get falseValue() {
436 return typeof this.btnCheckboxFalse !== 'undefined' ? this.btnCheckboxFalse : false;
437 }
438 toggle(state) {
439 this.state = state;
440 this.value = this.state ? this.trueValue : this.falseValue;
441 }
442 // ControlValueAccessor
443 // model -> view
444 writeValue(value) {
445 this.state = this.trueValue === value;
446 this.value = value ? this.trueValue : this.falseValue;
447 }
448 setDisabledState(isDisabled) {
449 this.isDisabled = isDisabled;
450 }
451 registerOnChange(fn) {
452 this.onChange = fn;
453 }
454 registerOnTouched(fn) {
455 this.onTouched = fn;
456 }
457}
458ButtonCheckboxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonCheckboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
459ButtonCheckboxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ButtonCheckboxDirective, selector: "[mdbCheckbox]", inputs: { btnCheckboxTrue: "btnCheckboxTrue", btnCheckboxFalse: "btnCheckboxFalse" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.state" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0 });
460i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonCheckboxDirective, decorators: [{
461 type: Directive,
462 args: [{ selector: '[mdbCheckbox]', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR] }]
463 }], propDecorators: { btnCheckboxTrue: [{
464 type: Input
465 }], btnCheckboxFalse: [{
466 type: Input
467 }], state: [{
468 type: HostBinding,
469 args: ['class.active']
470 }], onClick: [{
471 type: HostListener,
472 args: ['click']
473 }] } });
474
475const RADIO_CONTROL_VALUE_ACCESSOR = {
476 provide: NG_VALUE_ACCESSOR,
477 // eslint-disable-next-line @typescript-eslint/no-use-before-define
478 useExisting: forwardRef(() => ButtonRadioDirective),
479 multi: true,
480};
481/**
482 * Create radio buttons or groups of buttons.
483 * A value of a selected button is bound to a variable specified via ngModel.
484 */
485class ButtonRadioDirective {
486 constructor(el, renderer) {
487 this.el = el;
488 this.renderer = renderer;
489 this.onChange = Function.prototype;
490 this.onTouched = Function.prototype;
491 this.radioElementsArray = [];
492 this._uncheckable = false;
493 this.disabled = false;
494 }
495 /** If `true` — radio button can be unchecked */
496 get uncheckable() {
497 return this._uncheckable;
498 }
499 set uncheckable(value) {
500 this._uncheckable = coerceBooleanProperty(value);
501 }
502 get isActive() {
503 return this.mdbRadio === this.value;
504 }
505 onClick(event) {
506 if (this.disabled) {
507 return;
508 }
509 try {
510 this.el.nativeElement.parentElement.childNodes.forEach((element) => {
511 this.radioElementsArray.push(element);
512 });
513 this.radioElementsArray.forEach((element) => {
514 this.renderer.removeClass(element, 'active');
515 });
516 this.renderer.addClass(event.target, 'active');
517 }
518 catch (error) { }
519 if (this.el.nativeElement.attributes.disabled) {
520 return;
521 }
522 if (this.uncheckable && this.mdbRadio === this.value) {
523 this.value = undefined;
524 }
525 else {
526 this.value = this.mdbRadio;
527 }
528 this.onTouched();
529 this.onChange(this.value);
530 }
531 ngOnInit() {
532 this.uncheckable = typeof this.uncheckable !== 'undefined';
533 }
534 onBlur() {
535 this.onTouched();
536 }
537 // ControlValueAccessor
538 // model -> view
539 writeValue(value) {
540 this.value = value;
541 }
542 registerOnChange(fn) {
543 this.onChange = fn;
544 }
545 registerOnTouched(fn) {
546 this.onTouched = fn;
547 }
548}
549ButtonRadioDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonRadioDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
550ButtonRadioDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ButtonRadioDirective, selector: "[mdbRadio]", inputs: { mdbRadio: "mdbRadio", uncheckable: "uncheckable", value: "value", disabled: "disabled" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.disabled": "this.disabled", "class.active": "this.isActive" } }, providers: [RADIO_CONTROL_VALUE_ACCESSOR], ngImport: i0 });
551i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonRadioDirective, decorators: [{
552 type: Directive,
553 args: [{ selector: '[mdbRadio]', providers: [RADIO_CONTROL_VALUE_ACCESSOR] }]
554 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { mdbRadio: [{
555 type: Input
556 }], uncheckable: [{
557 type: Input
558 }], value: [{
559 type: Input
560 }], disabled: [{
561 type: HostBinding,
562 args: ['class.disabled']
563 }, {
564 type: Input
565 }], isActive: [{
566 type: HostBinding,
567 args: ['class.active']
568 }], onClick: [{
569 type: HostListener,
570 args: ['click', ['$event']]
571 }] } });
572
573class FixedButtonCaptionDirective {
574 constructor(renderer, el) {
575 this.renderer = renderer;
576 this.el = el;
577 }
578 ngOnInit() {
579 this.createCaptionElement();
580 }
581 createCaptionElement() {
582 const paragraph = this.renderer.createElement('p');
583 const text = this.renderer.createText(this.caption);
584 this.renderer.appendChild(paragraph, text);
585 this.renderer.appendChild(this.el.nativeElement, paragraph);
586 this.paragraphEl = paragraph;
587 }
588 showCaption() {
589 this.renderer.addClass(this.paragraphEl, 'fixed-button-caption');
590 this.renderer.setStyle(this.paragraphEl, 'position', 'absolute');
591 this.renderer.setStyle(this.paragraphEl, 'right', `60px`);
592 this.renderer.setStyle(this.paragraphEl, 'top', '10px');
593 this.renderer.setStyle(this.el.nativeElement, 'overflow', 'visible');
594 }
595}
596FixedButtonCaptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FixedButtonCaptionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
597FixedButtonCaptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: FixedButtonCaptionDirective, selector: "[mdbFixedCaption]", inputs: { caption: ["mdbFixedCaption", "caption"], collapseButtonActivator: ["collapseButton", "collapseButtonActivator"] }, ngImport: i0 });
598i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FixedButtonCaptionDirective, decorators: [{
599 type: Directive,
600 args: [{ selector: '[mdbFixedCaption]' }]
601 }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { caption: [{
602 type: Input,
603 args: ['mdbFixedCaption']
604 }], collapseButtonActivator: [{
605 type: Input,
606 args: ['collapseButton']
607 }] } });
608
609class ButtonsModule {
610 static forRoot() {
611 return { ngModule: ButtonsModule, providers: [] };
612 }
613}
614ButtonsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
615ButtonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonsModule, declarations: [ButtonCheckboxDirective,
616 ButtonRadioDirective,
617 MdbBtnDirective,
618 FixedButtonCaptionDirective], exports: [ButtonCheckboxDirective,
619 ButtonRadioDirective,
620 MdbBtnDirective,
621 FixedButtonCaptionDirective] });
622ButtonsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonsModule });
623i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonsModule, decorators: [{
624 type: NgModule,
625 args: [{
626 declarations: [
627 ButtonCheckboxDirective,
628 ButtonRadioDirective,
629 MdbBtnDirective,
630 FixedButtonCaptionDirective,
631 ],
632 exports: [
633 ButtonCheckboxDirective,
634 ButtonRadioDirective,
635 MdbBtnDirective,
636 FixedButtonCaptionDirective,
637 ],
638 }]
639 }] });
640
641class MdbCardFooterComponent {
642 constructor(_el, _r) {
643 this._el = _el;
644 this._r = _r;
645 }
646 ngOnInit() {
647 this._r.addClass(this._el.nativeElement, 'card-footer');
648 }
649}
650MdbCardFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardFooterComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
651MdbCardFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbCardFooterComponent, selector: "mdb-card-footer", ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
652i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardFooterComponent, decorators: [{
653 type: Component,
654 args: [{ selector: 'mdb-card-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
655 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
656
657class MdbCardTitleComponent {
658 constructor(_el, _r) {
659 this._el = _el;
660 this._r = _r;
661 }
662 ngOnInit() {
663 this._r.addClass(this._el.nativeElement, 'card-title');
664 }
665}
666MdbCardTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardTitleComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
667MdbCardTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbCardTitleComponent, selector: "mdb-card-title", ngImport: i0, template: "<ng-content></ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
668i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardTitleComponent, decorators: [{
669 type: Component,
670 args: [{ selector: 'mdb-card-title', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>" }]
671 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
672
673class MdbCardTextComponent {
674}
675MdbCardTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
676MdbCardTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbCardTextComponent, selector: "mdb-card-text", inputs: { class: "class" }, ngImport: i0, template: "<p class=\"card-text {{class}} \">\n <ng-content></ng-content>\n</p>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
677i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardTextComponent, decorators: [{
678 type: Component,
679 args: [{ selector: 'mdb-card-text', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p class=\"card-text {{class}} \">\n <ng-content></ng-content>\n</p>" }]
680 }], propDecorators: { class: [{
681 type: Input
682 }] } });
683
684class MdbCardBodyComponent {
685 constructor(_el, _r) {
686 this._el = _el;
687 this._r = _r;
688 }
689 set cascade(value) {
690 const cascade = coerceBooleanProperty(value);
691 if (cascade) {
692 this._r.addClass(this._el.nativeElement, 'card-body-cascade');
693 }
694 }
695 ngOnInit() {
696 this._r.addClass(this._el.nativeElement, 'card-body');
697 if (this.class) {
698 this.class.split(' ').forEach((element) => {
699 this._r.addClass(this._el.nativeElement, element);
700 });
701 }
702 }
703}
704MdbCardBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
705MdbCardBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbCardBodyComponent, selector: "mdb-card-body", inputs: { class: "class", cascade: "cascade" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
706i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardBodyComponent, decorators: [{
707 type: Component,
708 args: [{ selector: 'mdb-card-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
709 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { class: [{
710 type: Input
711 }], cascade: [{
712 type: Input
713 }] } });
714
715class MdbCardComponent {
716 constructor(_el, _r) {
717 this._el = _el;
718 this._r = _r;
719 this._cascade = false;
720 this._wider = false;
721 }
722 get cascade() {
723 return this._cascade;
724 }
725 set cascade(value) {
726 this._cascade = coerceBooleanProperty(value);
727 }
728 get wider() {
729 return this._wider;
730 }
731 set wider(value) {
732 this._wider = coerceBooleanProperty(value);
733 }
734 set narrower(value) {
735 const narrower = coerceBooleanProperty(value);
736 if (narrower) {
737 this._r.addClass(this._el.nativeElement, 'narrower');
738 }
739 else if (!narrower && this._el.nativeElement.classList.contains('narrower')) {
740 this._r.removeClass(this._el.nativeElement, 'narrower');
741 }
742 }
743 set reverse(value) {
744 const reverse = coerceBooleanProperty(value);
745 if (reverse) {
746 this._r.addClass(this._el.nativeElement, 'reverse');
747 }
748 else if (!reverse && this._el.nativeElement.classList.contains('reserse')) {
749 this._r.removeClass(this._el.nativeElement, 'reverse');
750 }
751 }
752 set dark(value) {
753 const dark = coerceBooleanProperty(value);
754 if (dark) {
755 this._r.addClass(this._el.nativeElement, 'card-dark');
756 }
757 else if (!dark && this._el.nativeElement.classList.contains('card-dark')) {
758 this._r.removeClass(this._el.nativeElement, 'card-dark');
759 }
760 }
761 set bgColor(color) {
762 if (color) {
763 this._r.addClass(this._el.nativeElement, color);
764 }
765 }
766 set borderColor(color) {
767 if (color) {
768 this._r.addClass(this._el.nativeElement, color);
769 }
770 }
771 ngOnInit() {
772 this._r.addClass(this._el.nativeElement, 'card');
773 if (this.cascade) {
774 this._r.addClass(this._el.nativeElement, 'card-cascade');
775 }
776 if (this.wider) {
777 this._r.addClass(this._el.nativeElement, 'wider');
778 }
779 if (this.narrower) {
780 this._r.addClass(this._el.nativeElement, 'narrower');
781 }
782 if (this.class) {
783 this.class.split(' ').forEach((element) => {
784 this._r.addClass(this._el.nativeElement, element);
785 });
786 }
787 }
788}
789MdbCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
790MdbCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbCardComponent, selector: "mdb-card", inputs: { class: "class", cascade: "cascade", wider: "wider", imageBackground: "imageBackground", narrower: "narrower", reverse: "reverse", dark: "dark", bgColor: "bgColor", borderColor: "borderColor" }, viewQueries: [{ propertyName: "card", first: true, predicate: ["card"], descendants: true, static: true }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".card{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border:0;font-weight:400}.card[class*=border]{border:1px solid #9e9e9e;box-shadow:none}.card .card-body h1,.card .card-body h2,.card .card-body h3,.card .card-body h4,.card .card-body h5,.card .card-body h6{font-weight:400}.card .card-body .card-title a,.card .card-body .card-title a:hover{transition:.2s ease-in-out}.card .card-body .card-text{color:#747373;font-size:.9rem;font-weight:400}.card .md-form label{font-weight:300}.card-text:last-child{margin-bottom:1rem!important}mdb-card-img img.img-fluid{width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
791i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardComponent, decorators: [{
792 type: Component,
793 args: [{ selector: 'mdb-card', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: [".card{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border:0;font-weight:400}.card[class*=border]{border:1px solid #9e9e9e;box-shadow:none}.card .card-body h1,.card .card-body h2,.card .card-body h3,.card .card-body h4,.card .card-body h5,.card .card-body h6{font-weight:400}.card .card-body .card-title a,.card .card-body .card-title a:hover{transition:.2s ease-in-out}.card .card-body .card-text{color:#747373;font-size:.9rem;font-weight:400}.card .md-form label{font-weight:300}.card-text:last-child{margin-bottom:1rem!important}mdb-card-img img.img-fluid{width:100%}\n"] }]
794 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { class: [{
795 type: Input
796 }], cascade: [{
797 type: Input
798 }], wider: [{
799 type: Input
800 }], imageBackground: [{
801 type: Input
802 }], card: [{
803 type: ViewChild,
804 args: ['card', { static: true }]
805 }], narrower: [{
806 type: Input
807 }], reverse: [{
808 type: Input
809 }], dark: [{
810 type: Input
811 }], bgColor: [{
812 type: Input
813 }], borderColor: [{
814 type: Input
815 }] } });
816
817class MdbCardImageComponent {
818}
819MdbCardImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
820MdbCardImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbCardImageComponent, selector: "mdb-card-img", inputs: { src: "src", alt: "alt" }, ngImport: i0, template: "<img class=\"img-fluid\" [src]=\"src\" [alt]=\"alt\">", changeDetection: i0.ChangeDetectionStrategy.OnPush });
821i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardImageComponent, decorators: [{
822 type: Component,
823 args: [{ selector: 'mdb-card-img', changeDetection: ChangeDetectionStrategy.OnPush, template: "<img class=\"img-fluid\" [src]=\"src\" [alt]=\"alt\">" }]
824 }], propDecorators: { src: [{
825 type: Input
826 }], alt: [{
827 type: Input
828 }] } });
829
830class MdbCardHeaderComponent {
831 constructor(_el, _r) {
832 this._el = _el;
833 this._r = _r;
834 }
835 ngOnInit() {
836 this._r.addClass(this._el.nativeElement, 'card-header');
837 if (this.class) {
838 this.class.split(' ').forEach((element) => {
839 this._r.addClass(this._el.nativeElement, element);
840 });
841 }
842 }
843}
844MdbCardHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardHeaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
845MdbCardHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbCardHeaderComponent, selector: "mdb-card-header", inputs: { class: "class" }, ngImport: i0, template: "<ng-content></ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
846i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbCardHeaderComponent, decorators: [{
847 type: Component,
848 args: [{ selector: 'mdb-card-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>" }]
849 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { class: [{
850 type: Input
851 }] } });
852
853class CardsModule {
854 static forRoot() {
855 return { ngModule: CardsModule, providers: [] };
856 }
857}
858CardsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
859CardsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardsModule, declarations: [MdbCardComponent,
860 MdbCardBodyComponent,
861 MdbCardImageComponent,
862 MdbCardTextComponent,
863 MdbCardTitleComponent,
864 MdbCardFooterComponent,
865 MdbCardHeaderComponent], imports: [CommonModule], exports: [MdbCardComponent,
866 MdbCardBodyComponent,
867 MdbCardImageComponent,
868 MdbCardTextComponent,
869 MdbCardTitleComponent,
870 MdbCardFooterComponent,
871 MdbCardHeaderComponent] });
872CardsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardsModule, imports: [[CommonModule]] });
873i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardsModule, decorators: [{
874 type: NgModule,
875 args: [{
876 imports: [CommonModule],
877 declarations: [
878 MdbCardComponent,
879 MdbCardBodyComponent,
880 MdbCardImageComponent,
881 MdbCardTextComponent,
882 MdbCardTitleComponent,
883 MdbCardFooterComponent,
884 MdbCardHeaderComponent,
885 ],
886 exports: [
887 MdbCardComponent,
888 MdbCardBodyComponent,
889 MdbCardImageComponent,
890 MdbCardTextComponent,
891 MdbCardTitleComponent,
892 MdbCardFooterComponent,
893 MdbCardHeaderComponent,
894 ],
895 }]
896 }] });
897
898/* eslint-disable */
899/**
900 * @license
901 * Copyright Google Inc. All Rights Reserved.
902 *
903 * Use of this source code is governed by an MIT-style license that can be
904 * found in the LICENSE file at https://angular.io/license
905 */
906/**
907 * JS version of browser APIs. This library can only run in the browser.
908 */
909var win$1 = typeof window !== 'undefined' && window || {};
910var document$2 = win$1.document;
911var location$1 = win$1.location;
912var gc$1 = win$1['gc'] ? () => win$1['gc']() : () => null;
913var performance$1 = win$1['performance'] ? win$1['performance'] : null;
914const Event$1 = win$1['Event'];
915const MouseEvent$1 = win$1['MouseEvent'];
916const KeyboardEvent$1 = win$1['KeyboardEvent'];
917const EventTarget$1 = win$1['EventTarget'];
918const History$1 = win$1['History'];
919const Location$1 = win$1['Location'];
920const EventListener$1 = win$1['EventListener'];
921const navigator$1 = win$1['navigator'];
922
923function isBs3$1() {
924 return win$1.__theme === 'bs4';
925}
926
927class SlideComponent {
928 constructor(el) {
929 this.animated = false;
930 this.directionNext = false;
931 this.directionLeft = false;
932 this.directionPrev = false;
933 this.directionRight = false;
934 /** Wraps element by appropriate CSS classes */
935 this.el = null;
936 this.el = el;
937 }
938}
939SlideComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: SlideComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
940SlideComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: SlideComponent, selector: "mdb-slide, mdb-carousel-item", inputs: { active: "active" }, host: { properties: { "class.active": "this.active", "class.animated": "this.animated", "class.carousel-item-next": "this.directionNext", "class.carousel-item-left": "this.directionLeft", "class.carousel-item-prev": "this.directionPrev", "class.carousel-item-right": "this.directionRight", "class.carousel-item": "this.el" } }, ngImport: i0, template: `
941 <ng-content></ng-content>
942 `, isInline: true });
943i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: SlideComponent, decorators: [{
944 type: Component,
945 args: [{
946 selector: 'mdb-slide, mdb-carousel-item',
947 template: `
948 <ng-content></ng-content>
949 `,
950 }]
951 }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { active: [{
952 type: HostBinding,
953 args: ['class.active']
954 }, {
955 type: Input
956 }], animated: [{
957 type: HostBinding,
958 args: ['class.animated']
959 }], directionNext: [{
960 type: HostBinding,
961 args: ['class.carousel-item-next']
962 }], directionLeft: [{
963 type: HostBinding,
964 args: ['class.carousel-item-left']
965 }], directionPrev: [{
966 type: HostBinding,
967 args: ['class.carousel-item-prev']
968 }], directionRight: [{
969 type: HostBinding,
970 args: ['class.carousel-item-right']
971 }], el: [{
972 type: HostBinding,
973 args: ['class.carousel-item']
974 }] } });
975
976/**
977 * @license
978 * Copyright Google LLC All Rights Reserved.
979 *
980 * Use of this source code is governed by an MIT-style license that can be
981 * found in the LICENSE file at https://angular.io/license
982 */
983const MAC_ENTER = 3;
984const BACKSPACE = 8;
985const TAB = 9;
986const NUM_CENTER = 12;
987const ENTER = 13;
988const SHIFT = 16;
989const CONTROL = 17;
990const ALT = 18;
991const PAUSE = 19;
992const CAPS_LOCK = 20;
993const ESCAPE = 27;
994const SPACE = 32;
995const PAGE_UP = 33;
996const PAGE_DOWN = 34;
997const END = 35;
998const HOME = 36;
999const LEFT_ARROW = 37;
1000const UP_ARROW = 38;
1001const RIGHT_ARROW = 39;
1002const DOWN_ARROW = 40;
1003const PLUS_SIGN = 43;
1004const PRINT_SCREEN = 44;
1005const INSERT = 45;
1006const DELETE = 46;
1007const ZERO = 48;
1008const ONE = 49;
1009const TWO = 50;
1010const THREE = 51;
1011const FOUR = 52;
1012const FIVE = 53;
1013const SIX = 54;
1014const SEVEN = 55;
1015const EIGHT = 56;
1016const NINE = 57;
1017const FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186
1018const FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187
1019const QUESTION_MARK = 63;
1020const AT_SIGN = 64;
1021const A = 65;
1022const B = 66;
1023const C = 67;
1024const D = 68;
1025const E = 69;
1026const F = 70;
1027const G = 71;
1028const H = 72;
1029const I = 73;
1030const J = 74;
1031const K = 75;
1032const L = 76;
1033const M = 77;
1034const N = 78;
1035const O = 79;
1036const P = 80;
1037const Q = 81;
1038const R = 82;
1039const S = 83;
1040const T = 84;
1041const U = 85;
1042const V = 86;
1043const W = 87;
1044const X = 88;
1045const Y = 89;
1046const Z = 90;
1047const META = 91; // WIN_KEY_LEFT
1048const MAC_WK_CMD_LEFT = 91;
1049const MAC_WK_CMD_RIGHT = 93;
1050const CONTEXT_MENU = 93;
1051const NUMPAD_ZERO = 96;
1052const NUMPAD_ONE = 97;
1053const NUMPAD_TWO = 98;
1054const NUMPAD_THREE = 99;
1055const NUMPAD_FOUR = 100;
1056const NUMPAD_FIVE = 101;
1057const NUMPAD_SIX = 102;
1058const NUMPAD_SEVEN = 103;
1059const NUMPAD_EIGHT = 104;
1060const NUMPAD_NINE = 105;
1061const NUMPAD_MULTIPLY = 106;
1062const NUMPAD_PLUS = 107;
1063const NUMPAD_MINUS = 109;
1064const NUMPAD_PERIOD = 110;
1065const NUMPAD_DIVIDE = 111;
1066const F1 = 112;
1067const F2 = 113;
1068const F3 = 114;
1069const F4 = 115;
1070const F5 = 116;
1071const F6 = 117;
1072const F7 = 118;
1073const F8 = 119;
1074const F9 = 120;
1075const F10 = 121;
1076const F11 = 122;
1077const F12 = 123;
1078const NUM_LOCK = 144;
1079const SCROLL_LOCK = 145;
1080const FIRST_MEDIA = 166;
1081const FF_MINUS = 173;
1082const MUTE = 173; // Firefox (Gecko) fires 181 for MUTE
1083const VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN
1084const VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP
1085const FF_MUTE = 181;
1086const FF_VOLUME_DOWN = 182;
1087const LAST_MEDIA = 183;
1088const FF_VOLUME_UP = 183;
1089const SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON
1090const EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS
1091const COMMA = 188;
1092const DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS
1093const SLASH = 191;
1094const APOSTROPHE = 192;
1095const TILDE = 192;
1096const OPEN_SQUARE_BRACKET = 219;
1097const BACKSLASH = 220;
1098const CLOSE_SQUARE_BRACKET = 221;
1099const SINGLE_QUOTE = 222;
1100const MAC_META = 224;
1101
1102class CarouselConfig {
1103 constructor() {
1104 /** Default interval of auto changing of slides */
1105 this.interval = 5000;
1106 /** Is loop of auto changing of slides can be paused */
1107 this.noPause = false;
1108 /** Is slides can wrap from the last to the first slide */
1109 this.noWrap = false;
1110 this.keyboard = false;
1111 }
1112}
1113CarouselConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1114CarouselConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselConfig });
1115i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselConfig, decorators: [{
1116 type: Injectable
1117 }] });
1118
1119var Direction$1;
1120(function (Direction) {
1121 Direction[Direction["UNKNOWN"] = 0] = "UNKNOWN";
1122 Direction[Direction["NEXT"] = 1] = "NEXT";
1123 Direction[Direction["PREV"] = 2] = "PREV";
1124})(Direction$1 || (Direction$1 = {}));
1125/**
1126 * Base element to create carousel
1127 */
1128class CarouselComponent {
1129 constructor(config, el, platformId, cdRef, renderer) {
1130 this.el = el;
1131 this.cdRef = cdRef;
1132 this.renderer = renderer;
1133 this.SWIPE_ACTION = { LEFT: 'swipeleft', RIGHT: 'swiperight' };
1134 this._destroy$ = new Subject();
1135 this.destroyed = false;
1136 this.animationEnd = true;
1137 this.isBrowser = false;
1138 this._noWrap = false;
1139 this._noPause = false;
1140 this._isControls = true;
1141 this._keyboard = false;
1142 this.class = '';
1143 this.type = '';
1144 this.animation = '';
1145 this._allowSwipe = true;
1146 this.activeSlideChange = new EventEmitter(false);
1147 this.isBrowser = isPlatformBrowser(platformId);
1148 Object.assign(this, config);
1149 }
1150 get slides() {
1151 return this._slidesList.toArray();
1152 }
1153 get noWrap() {
1154 return this._noWrap;
1155 }
1156 set noWrap(value) {
1157 this._noWrap = coerceBooleanProperty(value);
1158 }
1159 get noPause() {
1160 return this._noPause;
1161 }
1162 set noPause(value) {
1163 this._noPause = coerceBooleanProperty(value);
1164 }
1165 get isControls() {
1166 return this._isControls;
1167 }
1168 set isControls(value) {
1169 this._isControls = coerceBooleanProperty(value);
1170 }
1171 get keyboard() {
1172 return this._keyboard;
1173 }
1174 set keyboard(value) {
1175 this._keyboard = coerceBooleanProperty(value);
1176 }
1177 get activeSlideIndex() {
1178 return this._activeSlideIndex;
1179 }
1180 set activeSlideIndex(value) {
1181 this._activeSlideIndex = coerceNumberProperty(value);
1182 }
1183 get allowSwipe() {
1184 return this._allowSwipe;
1185 }
1186 set allowSwipe(value) {
1187 this._allowSwipe = coerceBooleanProperty(value);
1188 }
1189 set activeSlide(value) {
1190 const index = coerceNumberProperty(value);
1191 if (this._slidesList && index !== this._currentActiveSlide) {
1192 this._select(index);
1193 }
1194 }
1195 get activeSlide() {
1196 return this._currentActiveSlide;
1197 }
1198 checkNavigation() {
1199 if (this.type === 'carousel-multi-item') {
1200 return false;
1201 }
1202 return true;
1203 }
1204 checkDots() {
1205 if (this.type === 'carousel-thumbnails') {
1206 return false;
1207 }
1208 return true;
1209 }
1210 getImg(slide) {
1211 return slide.el.nativeElement.querySelector('img').src;
1212 }
1213 get interval() {
1214 return this._interval;
1215 }
1216 set interval(value) {
1217 this._interval = coerceNumberProperty(value);
1218 this.restartTimer();
1219 }
1220 get isBs4() {
1221 return !isBs3$1();
1222 }
1223 ngOnDestroy() {
1224 this.destroyed = true;
1225 this._destroy$.next();
1226 this._destroy$.complete();
1227 }
1228 ngAfterViewInit() {
1229 this.play();
1230 this._slidesList.changes
1231 .pipe(takeUntil(this._destroy$))
1232 .subscribe((slidesList) => {
1233 this._slidesList = slidesList;
1234 setTimeout(() => {
1235 this._select(0);
1236 }, 0);
1237 });
1238 if (this.activeSlideIndex) {
1239 setTimeout(() => {
1240 this._select(this.activeSlideIndex);
1241 this.activeSlideChange.emit({ relatedTarget: this.activeSlide });
1242 }, 0);
1243 }
1244 else {
1245 setTimeout(() => {
1246 this._select(0);
1247 }, 0);
1248 }
1249 if (this.isControls) {
1250 this.carouselIndicators = this.el.nativeElement.querySelectorAll('.carousel-indicators > li');
1251 if (this.carouselIndicators.length && this.activeSlideIndex) {
1252 this.renderer.addClass(this.carouselIndicators[this.activeSlideIndex], 'active');
1253 }
1254 else if (this.carouselIndicators.length) {
1255 this.renderer.addClass(this.carouselIndicators[0], 'active');
1256 }
1257 }
1258 }
1259 swipe(action = this.SWIPE_ACTION.RIGHT) {
1260 if (this.allowSwipe) {
1261 if (action === this.SWIPE_ACTION.RIGHT) {
1262 this.previousSlide();
1263 this.cdRef.markForCheck();
1264 }
1265 if (action === this.SWIPE_ACTION.LEFT) {
1266 this.nextSlide();
1267 this.cdRef.markForCheck();
1268 }
1269 }
1270 }
1271 nextSlide(force = false) {
1272 this.restartTimer();
1273 // Start next slide, pause actual slide
1274 const videoList = this.el.nativeElement.getElementsByTagName('video');
1275 const direction = Direction$1.NEXT;
1276 const indexEl = this.findNextSlideIndex(direction, force);
1277 if (videoList.length > 0) {
1278 // Check for video carousel
1279 for (let i = 0; i < videoList.length; i++) {
1280 if (i === indexEl) {
1281 videoList[i].play();
1282 }
1283 else {
1284 videoList[i].pause();
1285 }
1286 }
1287 }
1288 if (this.animation === 'slide') {
1289 this.pause();
1290 this.slideAnimation(this.findNextSlideIndex(Direction$1.NEXT, force), Direction$1.NEXT);
1291 this.cdRef.markForCheck();
1292 }
1293 else if (this.animation === 'fade') {
1294 this.pause();
1295 this.fadeAnimation(this.findNextSlideIndex(Direction$1.NEXT, force), Direction$1.NEXT);
1296 this.cdRef.markForCheck();
1297 }
1298 else {
1299 this.activeSlide = this.findNextSlideIndex(Direction$1.NEXT, force);
1300 this.cdRef.markForCheck();
1301 }
1302 if (!this.animation) {
1303 this.activeSlideChange.emit({ direction: 'Next', relatedTarget: this.activeSlide });
1304 }
1305 }
1306 previousSlide(force = false) {
1307 this.restartTimer();
1308 // Start previous slide, pause actual slide
1309 const videoList = this.el.nativeElement.getElementsByTagName('video');
1310 const direction = Direction$1.PREV;
1311 const indexel = this.findNextSlideIndex(direction, force);
1312 if (videoList.length > 0) {
1313 // Check for video carousel
1314 for (let i = 0; i < videoList.length; i++) {
1315 if (i === indexel) {
1316 videoList[i].play();
1317 }
1318 else {
1319 videoList[i].pause();
1320 }
1321 }
1322 }
1323 if (this.animation === 'slide') {
1324 this.pause();
1325 this.slideAnimation(this.findNextSlideIndex(direction, force), direction);
1326 this.cdRef.markForCheck();
1327 }
1328 else if (this.animation === 'fade') {
1329 this.pause();
1330 this.fadeAnimation(this.findNextSlideIndex(Direction$1.PREV, force), Direction$1.PREV);
1331 this.cdRef.markForCheck();
1332 }
1333 else {
1334 this.activeSlide = this.findNextSlideIndex(Direction$1.PREV, force);
1335 this.cdRef.markForCheck();
1336 }
1337 if (!this.animation) {
1338 this.activeSlideChange.emit({ direction: 'Prev', relatedTarget: this.activeSlide });
1339 }
1340 }
1341 fadeAnimation(goToIndex, direction) {
1342 const goToSlide = this.slides[goToIndex];
1343 if (this.animationEnd) {
1344 this.animationEnd = false;
1345 goToSlide.directionNext = true;
1346 if (this.isBrowser) {
1347 setTimeout(() => {
1348 const previous = this.slides[this._currentActiveSlide].el.nativeElement;
1349 this.renderer.setStyle(previous, 'display', 'none');
1350 this.renderer.setStyle(previous, 'transition', 'all 600ms');
1351 this.renderer.setStyle(goToSlide.el.nativeElement, 'display', 'block');
1352 this.renderer.setStyle(goToSlide.el.nativeElement, 'transition', 'all 600ms');
1353 goToSlide.directionNext = false;
1354 this.animationEnd = true;
1355 this.activeSlide = goToIndex;
1356 if (direction === 1) {
1357 this.activeSlideChange.emit({ direction: 'Next', relatedTarget: this.activeSlide });
1358 }
1359 else if (direction === 2) {
1360 this.activeSlideChange.emit({ direction: 'Prev', relatedTarget: this.activeSlide });
1361 }
1362 else {
1363 this.activeSlideChange.emit({
1364 direction: goToIndex < this.activeSlide ? 'Prev' : 'Next',
1365 relatedTarget: this.activeSlide,
1366 });
1367 }
1368 this.play();
1369 this.cdRef.markForCheck();
1370 }, 0);
1371 }
1372 }
1373 }
1374 slideAnimation(goToIndex, direction) {
1375 const currentSlide = this.slides[this._currentActiveSlide];
1376 const goToSlide = this.slides[goToIndex];
1377 if (this.animationEnd) {
1378 if (direction === Direction$1.NEXT) {
1379 this.animationEnd = false;
1380 goToSlide.directionNext = true;
1381 if (this.isBrowser) {
1382 setTimeout(() => {
1383 goToSlide.directionLeft = true;
1384 currentSlide.directionLeft = true;
1385 this.cdRef.markForCheck();
1386 }, 100);
1387 }
1388 }
1389 if (direction === Direction$1.PREV) {
1390 this.animationEnd = false;
1391 goToSlide.directionPrev = true;
1392 if (this.isBrowser) {
1393 setTimeout(() => {
1394 goToSlide.directionRight = true;
1395 currentSlide.directionRight = true;
1396 this.cdRef.markForCheck();
1397 }, 100);
1398 }
1399 }
1400 if (this.isBrowser) {
1401 setTimeout(() => {
1402 goToSlide.directionLeft = false;
1403 goToSlide.directionNext = false;
1404 currentSlide.directionLeft = false;
1405 currentSlide.directionNext = false;
1406 goToSlide.directionRight = false;
1407 goToSlide.directionPrev = false;
1408 currentSlide.directionRight = false;
1409 currentSlide.directionPrev = false;
1410 this.animationEnd = true;
1411 this.activeSlide = goToIndex;
1412 let directionName;
1413 if (direction === Direction$1.NEXT) {
1414 directionName = 'Next';
1415 }
1416 else if (direction === Direction$1.PREV) {
1417 directionName = 'Prev';
1418 }
1419 this.activeSlideChange.emit({
1420 direction: directionName,
1421 relatedTarget: this.activeSlide,
1422 });
1423 this.play();
1424 this.cdRef.markForCheck();
1425 }, 700);
1426 }
1427 }
1428 }
1429 selectSlide(index) {
1430 this.pause();
1431 if (this.animation === 'slide') {
1432 if (this.activeSlide < index) {
1433 this.slideAnimation(index, Direction$1.NEXT);
1434 }
1435 else if (this.activeSlide > index) {
1436 this.slideAnimation(index, Direction$1.PREV);
1437 }
1438 }
1439 else if (this.animation === 'fade') {
1440 if (index !== this.activeSlide) {
1441 this.fadeAnimation(index);
1442 }
1443 }
1444 else if (!this.animation) {
1445 setTimeout(() => {
1446 const direction = index < this.activeSlide ? 'Prev' : 'Next';
1447 this._select(index);
1448 this.activeSlideChange.emit({
1449 direction,
1450 relatedTarget: this.activeSlide,
1451 });
1452 }, 0);
1453 }
1454 this.play();
1455 }
1456 play() {
1457 if (!this.isPlaying) {
1458 this.isPlaying = true;
1459 this.restartTimer();
1460 this.cdRef.markForCheck();
1461 }
1462 }
1463 pause() {
1464 if (!this.noPause) {
1465 this.isPlaying = false;
1466 this.resetTimer();
1467 this.cdRef.markForCheck();
1468 }
1469 }
1470 getCurrentSlideIndex() {
1471 return this.slides.findIndex((slide) => slide.active);
1472 }
1473 isLast(index) {
1474 return index + 1 >= this.slides.length;
1475 }
1476 findNextSlideIndex(direction, force) {
1477 let nextSlideIndex = 0;
1478 if (!force && this.isLast(this.activeSlide) && direction !== Direction$1.PREV && this.noWrap) {
1479 return void 0;
1480 }
1481 switch (direction) {
1482 case Direction$1.NEXT:
1483 nextSlideIndex = !this.isLast(this._currentActiveSlide)
1484 ? this._currentActiveSlide + 1
1485 : !force && this.noWrap
1486 ? this._currentActiveSlide
1487 : 0;
1488 break;
1489 case Direction$1.PREV:
1490 nextSlideIndex =
1491 this._currentActiveSlide > 0
1492 ? this._currentActiveSlide - 1
1493 : !force && this.noWrap
1494 ? this._currentActiveSlide
1495 : this.slides.length - 1;
1496 break;
1497 default:
1498 throw new Error('Unknown direction');
1499 }
1500 return nextSlideIndex;
1501 }
1502 _select(index) {
1503 if (isNaN(index)) {
1504 this.pause();
1505 return;
1506 }
1507 const currentSlide = this.slides[this._currentActiveSlide];
1508 if (currentSlide) {
1509 currentSlide.active = false;
1510 }
1511 const nextSlide = this.slides[index];
1512 if (nextSlide) {
1513 this._currentActiveSlide = index;
1514 nextSlide.active = true;
1515 this.activeSlide = index;
1516 }
1517 this.cdRef.markForCheck();
1518 }
1519 restartTimer() {
1520 this.resetTimer();
1521 if (this.isBrowser) {
1522 const interval = +this.interval;
1523 if (!isNaN(interval) && interval > 0) {
1524 this.currentInterval = setInterval(() => {
1525 const nInterval = +this.interval;
1526 if (this.isPlaying && !isNaN(this.interval) && nInterval > 0 && this.slides.length) {
1527 this.nextSlide();
1528 }
1529 else {
1530 this.pause();
1531 }
1532 }, interval);
1533 }
1534 }
1535 }
1536 resetTimer() {
1537 if (this.isBrowser) {
1538 if (this.currentInterval) {
1539 clearInterval(this.currentInterval);
1540 this.currentInterval = void 0;
1541 }
1542 }
1543 }
1544 hasClass(el, className) {
1545 if (el.classList) {
1546 return el.classList.contains(className);
1547 }
1548 else {
1549 return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'));
1550 }
1551 }
1552 classAdd(el, className) {
1553 if (el.classList) {
1554 el.classList.add(className);
1555 }
1556 else if (!this.hasClass(el, className)) {
1557 el.className += ' ' + className;
1558 }
1559 }
1560 removeClass(el, className) {
1561 if (el.classList) {
1562 el.classList.remove(className);
1563 }
1564 else if (this.hasClass(el, className)) {
1565 const reg = new RegExp('(\\s|^)' + className + '(\\s|$)');
1566 el.className = el.className.replace(reg, ' ');
1567 }
1568 }
1569 keyboardControl(event) {
1570 if (this.keyboard) {
1571 if (event.keyCode === RIGHT_ARROW) {
1572 this.nextSlide();
1573 }
1574 if (event.keyCode === LEFT_ARROW) {
1575 this.previousSlide();
1576 }
1577 }
1578 }
1579 focus() {
1580 this.el.nativeElement.focus();
1581 }
1582}
1583CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselComponent, deps: [{ token: CarouselConfig }, { token: i0.ElementRef }, { token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1584CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: CarouselComponent, selector: "mdb-carousel", inputs: { noWrap: "noWrap", noPause: "noPause", isControls: "isControls", keyboard: "keyboard", class: "class", type: "type", animation: "animation", activeSlideIndex: "activeSlideIndex", allowSwipe: "allowSwipe", activeSlide: "activeSlide", interval: "interval" }, outputs: { activeSlideChange: "activeSlideChange" }, host: { listeners: { "mouseleave": "play()", "mouseenter": "pause()", "keyup": "keyboardControl($event)", "click": "focus()" } }, queries: [{ propertyName: "_slidesList", predicate: SlideComponent }], ngImport: i0, template: "<div\n tabindex=\"0\"\n (swipeleft)=\"swipe($event.type)\"\n (swiperight)=\"swipe($event.type)\"\n (mouseenter)=\"pause()\"\n (mouseleave)=\"play()\"\n (mouseup)=\"play()\"\n class=\"carousel {{ class }} {{ type }}\"\n>\n <div class=\"controls-top\" *ngIf=\"slides.length > 1 && !checkNavigation() && isControls\">\n <a\n mdbBtn\n floating=\"true\"\n [class.disabled]=\"activeSlide === 0 && noWrap\"\n (click)=\"previousSlide()\"\n ><i class=\"fas fa-chevron-left\"></i\n ></a>\n <a mdbBtn floating=\"true\" (click)=\"nextSlide()\" [class.disabled]=\"isLast(activeSlide) && noWrap\"\n ><i class=\"fas fa-chevron-right\"></i\n ></a>\n </div>\n <ol class=\"carousel-indicators\" *ngIf=\"slides.length > 1 && checkDots() && isControls\">\n <li\n *ngFor=\"let slidez of slides; let i = index\"\n [class.active]=\"slidez.active === true\"\n (click)=\"selectSlide(i)\"\n ></li>\n </ol>\n <div class=\"carousel-inner\"><ng-content></ng-content></div>\n <ol class=\"carousel-indicators\" *ngIf=\"slides.length > 1 && !checkDots() && isControls\">\n <li\n *ngFor=\"let slidez of slides; let i = index\"\n [class.active]=\"slidez.active === true\"\n (click)=\"selectSlide(i)\"\n >\n <img class=\"d-block w-100 img-fluid\" src=\"{{ getImg(slidez) }}\" />\n </li>\n </ol>\n <a\n class=\"carousel-control-prev\"\n [class.disabled]=\"activeSlide === 0 && noWrap\"\n (click)=\"previousSlide()\"\n *ngIf=\"slides.length > 1 && checkNavigation() && isControls\"\n >\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Previous</span>\n </a>\n <a\n class=\"carousel-control-next\"\n (click)=\"nextSlide()\"\n [class.disabled]=\"isLast(activeSlide) && noWrap\"\n *ngIf=\"slides.length > 1 && checkNavigation() && isControls\"\n >\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Next</span>\n </a>\n</div>\n", styles: [".carousel .carousel-control-prev-icon,.carousel .carousel-control-next-icon{width:2.25rem;height:2.25rem}.carousel .carousel-indicators li{width:.625rem;height:.625rem;border-radius:50%;cursor:pointer}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{opacity:1}.carousel-fade .carousel-item-left.active,.carousel-fade .carousel-item-right.active{opacity:0}.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-left.active,.carousel-fade .carousel-item-prev.active{transform:translate(0)}@supports (transform-style: preserve-3d){.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-left.active,.carousel-fade .carousel-item-prev.active{transform:translateZ(0)}}.carousel-item.active,.carousel-item-next,.carousel-item-prev,.carousel-control-prev,.carousel-control-next{display:flex;overflow:hidden}.carousel,.carousel-multi-item,.carousel-thumbnails{outline:none}.carousel-fade .carousel-inner .carousel-item{opacity:0;transition-property:opacity}.carousel-fade .carousel-inner .active{opacity:1;transition:all .6s}.carousel-fade .carousel-inner>.carousel-item.active,.carousel-fade .carousel-inner>.carousel-item.next.left,.carousel-fade .carousel-inner>.carousel-item.prev.right{opacity:1;transition:all .6s;transform:translateZ(0)}\n"], components: [{ type: MdbBtnDirective, selector: "[mdbBtn]", inputs: ["color", "rounded", "gradient", "outline", "flat", "size", "block", "floating"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1585i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselComponent, decorators: [{
1586 type: Component,
1587 args: [{ selector: 'mdb-carousel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n tabindex=\"0\"\n (swipeleft)=\"swipe($event.type)\"\n (swiperight)=\"swipe($event.type)\"\n (mouseenter)=\"pause()\"\n (mouseleave)=\"play()\"\n (mouseup)=\"play()\"\n class=\"carousel {{ class }} {{ type }}\"\n>\n <div class=\"controls-top\" *ngIf=\"slides.length > 1 && !checkNavigation() && isControls\">\n <a\n mdbBtn\n floating=\"true\"\n [class.disabled]=\"activeSlide === 0 && noWrap\"\n (click)=\"previousSlide()\"\n ><i class=\"fas fa-chevron-left\"></i\n ></a>\n <a mdbBtn floating=\"true\" (click)=\"nextSlide()\" [class.disabled]=\"isLast(activeSlide) && noWrap\"\n ><i class=\"fas fa-chevron-right\"></i\n ></a>\n </div>\n <ol class=\"carousel-indicators\" *ngIf=\"slides.length > 1 && checkDots() && isControls\">\n <li\n *ngFor=\"let slidez of slides; let i = index\"\n [class.active]=\"slidez.active === true\"\n (click)=\"selectSlide(i)\"\n ></li>\n </ol>\n <div class=\"carousel-inner\"><ng-content></ng-content></div>\n <ol class=\"carousel-indicators\" *ngIf=\"slides.length > 1 && !checkDots() && isControls\">\n <li\n *ngFor=\"let slidez of slides; let i = index\"\n [class.active]=\"slidez.active === true\"\n (click)=\"selectSlide(i)\"\n >\n <img class=\"d-block w-100 img-fluid\" src=\"{{ getImg(slidez) }}\" />\n </li>\n </ol>\n <a\n class=\"carousel-control-prev\"\n [class.disabled]=\"activeSlide === 0 && noWrap\"\n (click)=\"previousSlide()\"\n *ngIf=\"slides.length > 1 && checkNavigation() && isControls\"\n >\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Previous</span>\n </a>\n <a\n class=\"carousel-control-next\"\n (click)=\"nextSlide()\"\n [class.disabled]=\"isLast(activeSlide) && noWrap\"\n *ngIf=\"slides.length > 1 && checkNavigation() && isControls\"\n >\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Next</span>\n </a>\n</div>\n", styles: [".carousel .carousel-control-prev-icon,.carousel .carousel-control-next-icon{width:2.25rem;height:2.25rem}.carousel .carousel-indicators li{width:.625rem;height:.625rem;border-radius:50%;cursor:pointer}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{opacity:1}.carousel-fade .carousel-item-left.active,.carousel-fade .carousel-item-right.active{opacity:0}.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-left.active,.carousel-fade .carousel-item-prev.active{transform:translate(0)}@supports (transform-style: preserve-3d){.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-left.active,.carousel-fade .carousel-item-prev.active{transform:translateZ(0)}}.carousel-item.active,.carousel-item-next,.carousel-item-prev,.carousel-control-prev,.carousel-control-next{display:flex;overflow:hidden}.carousel,.carousel-multi-item,.carousel-thumbnails{outline:none}.carousel-fade .carousel-inner .carousel-item{opacity:0;transition-property:opacity}.carousel-fade .carousel-inner .active{opacity:1;transition:all .6s}.carousel-fade .carousel-inner>.carousel-item.active,.carousel-fade .carousel-inner>.carousel-item.next.left,.carousel-fade .carousel-inner>.carousel-item.prev.right{opacity:1;transition:all .6s;transform:translateZ(0)}\n"] }]
1588 }], ctorParameters: function () { return [{ type: CarouselConfig }, { type: i0.ElementRef }, { type: undefined, decorators: [{
1589 type: Inject,
1590 args: [PLATFORM_ID]
1591 }] }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { _slidesList: [{
1592 type: ContentChildren,
1593 args: [SlideComponent]
1594 }], noWrap: [{
1595 type: Input
1596 }], noPause: [{
1597 type: Input
1598 }], isControls: [{
1599 type: Input
1600 }], keyboard: [{
1601 type: Input
1602 }], class: [{
1603 type: Input
1604 }], type: [{
1605 type: Input
1606 }], animation: [{
1607 type: Input
1608 }], activeSlideIndex: [{
1609 type: Input
1610 }], allowSwipe: [{
1611 type: Input
1612 }], activeSlideChange: [{
1613 type: Output
1614 }], activeSlide: [{
1615 type: Input
1616 }], interval: [{
1617 type: Input
1618 }], play: [{
1619 type: HostListener,
1620 args: ['mouseleave']
1621 }], pause: [{
1622 type: HostListener,
1623 args: ['mouseenter']
1624 }], keyboardControl: [{
1625 type: HostListener,
1626 args: ['keyup', ['$event']]
1627 }], focus: [{
1628 type: HostListener,
1629 args: ['click']
1630 }] } });
1631
1632class CarouselModule {
1633 static forRoot() {
1634 return { ngModule: CarouselModule, providers: [] };
1635 }
1636}
1637CarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1638CarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselModule, declarations: [SlideComponent, CarouselComponent], imports: [CommonModule, ButtonsModule], exports: [SlideComponent, CarouselComponent] });
1639CarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselModule, providers: [CarouselConfig], imports: [[CommonModule, ButtonsModule]] });
1640i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CarouselModule, decorators: [{
1641 type: NgModule,
1642 args: [{
1643 imports: [CommonModule, ButtonsModule],
1644 declarations: [SlideComponent, CarouselComponent],
1645 exports: [SlideComponent, CarouselComponent],
1646 providers: [CarouselConfig],
1647 }]
1648 }] });
1649
1650class BaseChartDirective {
1651 constructor(element, platformId) {
1652 this.element = element;
1653 this.labels = [];
1654 this.options = { legend: { display: false } };
1655 this._legend = false;
1656 this.chartClick = new EventEmitter();
1657 this.chartHover = new EventEmitter();
1658 this.initFlag = false;
1659 this.isBrowser = false;
1660 this.isBrowser = isPlatformBrowser(platformId);
1661 }
1662 get legend() {
1663 return this._legend;
1664 }
1665 set legend(value) {
1666 this._legend = coerceBooleanProperty(value);
1667 }
1668 ngOnInit() {
1669 if (this.isBrowser) {
1670 this.ctx = this.element.nativeElement.getContext('2d');
1671 this.cvs = this.element.nativeElement;
1672 this.initFlag = true;
1673 if (this.data || this.datasets) {
1674 this.refresh();
1675 }
1676 }
1677 }
1678 ngOnChanges(changes) {
1679 if (this.initFlag) {
1680 // Check if the changes are in the data or datasets
1681 if ((changes.hasOwnProperty('data') || changes.hasOwnProperty('datasets')) &&
1682 !changes.hasOwnProperty('labels')) {
1683 if (changes['data']) {
1684 this.updateChartData(changes['data'].currentValue);
1685 }
1686 else {
1687 this.updateChartData(changes['datasets'].currentValue);
1688 }
1689 this.chart.update();
1690 }
1691 else {
1692 // otherwise rebuild the chart
1693 this.refresh();
1694 }
1695 }
1696 }
1697 ngOnDestroy() {
1698 if (this.chart) {
1699 this.chart.destroy();
1700 this.chart = void 0;
1701 }
1702 }
1703 getChartBuilder(ctx) {
1704 const datasets = this.getDatasets();
1705 const options = Object.assign({}, this.options);
1706 if (this.legend === false) {
1707 options.legend = { display: false };
1708 }
1709 // hock for onHover and onClick events
1710 options.hover = options.hover || {};
1711 if (!options.hover.onHover) {
1712 options.hover.onHover = (event, active) => {
1713 if (active && active.length) {
1714 this.chartHover.emit({ event, active });
1715 }
1716 };
1717 }
1718 if (!options.onClick) {
1719 options.onClick = (event, active) => {
1720 this.chartClick.emit({ event, active });
1721 };
1722 }
1723 const opts = {
1724 type: this.chartType,
1725 data: {
1726 labels: this.labels,
1727 datasets: datasets,
1728 },
1729 options: options,
1730 };
1731 return new Chart(ctx, opts);
1732 }
1733 // feature(chart): added getPointDataAtEvent which will return clicked chart's point data
1734 getPointDataAtEvent(event) {
1735 if (event.active.length > 0) {
1736 const datasetIndex = event.active[0]._datasetIndex;
1737 const dataIndex = event.active[0]._index;
1738 const dataObject = this.datasets[datasetIndex].data[dataIndex];
1739 return dataObject;
1740 }
1741 }
1742 updateChartData(newDataValues) {
1743 if (Array.isArray(newDataValues[0].data)) {
1744 this.chart.data.datasets.forEach((dataset, i) => {
1745 dataset.data = newDataValues[i].data;
1746 if (newDataValues[i].label) {
1747 dataset.label = newDataValues[i].label;
1748 }
1749 });
1750 }
1751 else {
1752 this.chart.data.datasets[0].data = newDataValues;
1753 }
1754 }
1755 getDatasets() {
1756 let datasets = void 0;
1757 // in case if datasets is not provided, but data is present
1758 if (!this.datasets || (!this.datasets.length && this.data && this.data.length)) {
1759 if (Array.isArray(this.data[0])) {
1760 datasets = this.data.map((data, index) => {
1761 return { data, label: this.labels[index] || `Label ${index}` };
1762 });
1763 }
1764 else {
1765 datasets = [{ data: this.data, label: `Label 0` }];
1766 }
1767 }
1768 if ((this.datasets && this.datasets.length) || (datasets && datasets.length)) {
1769 datasets = (this.datasets || datasets).map((elm, index) => {
1770 const newElm = Object.assign({}, elm);
1771 if (this.colors && this.colors.length) {
1772 Object.assign(newElm, this.colors[index]);
1773 }
1774 else {
1775 Object.assign(newElm, getColors(this.chartType, index, newElm.data.length));
1776 }
1777 return newElm;
1778 });
1779 }
1780 if (!datasets) {
1781 throw new Error(`ng-charts configuration error,
1782 data or datasets field are required to render char ${this.chartType}`);
1783 }
1784 return datasets;
1785 }
1786 refresh() {
1787 this.ngOnDestroy();
1788 this.chart = this.getChartBuilder(this.ctx);
1789 }
1790}
1791BaseChartDirective.defaultColors = [
1792 [255, 99, 132],
1793 [54, 162, 235],
1794 [255, 206, 86],
1795 [231, 233, 237],
1796 [75, 192, 192],
1797 [151, 187, 205],
1798 [220, 220, 220],
1799 [247, 70, 74],
1800 [70, 191, 189],
1801 [253, 180, 92],
1802 [148, 159, 177],
1803 [77, 83, 96],
1804];
1805BaseChartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BaseChartDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
1806BaseChartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: BaseChartDirective, selector: "canvas[mdbChart]", inputs: { data: "data", datasets: "datasets", labels: "labels", options: "options", chartType: "chartType", colors: "colors", legend: "legend" }, outputs: { chartClick: "chartClick", chartHover: "chartHover" }, exportAs: ["mdb-base-chart"], usesOnChanges: true, ngImport: i0 });
1807i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BaseChartDirective, decorators: [{
1808 type: Directive,
1809 args: [{ selector: 'canvas[mdbChart]', exportAs: 'mdb-base-chart' }]
1810 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
1811 type: Inject,
1812 args: [PLATFORM_ID]
1813 }] }]; }, propDecorators: { data: [{
1814 type: Input
1815 }], datasets: [{
1816 type: Input
1817 }], labels: [{
1818 type: Input
1819 }], options: [{
1820 type: Input
1821 }], chartType: [{
1822 type: Input
1823 }], colors: [{
1824 type: Input
1825 }], legend: [{
1826 type: Input
1827 }], chartClick: [{
1828 type: Output
1829 }], chartHover: [{
1830 type: Output
1831 }] } });
1832function rgba(colour, alpha) {
1833 return 'rgba(' + colour.concat(alpha).join(',') + ')';
1834}
1835function getRandomInt(min, max) {
1836 return Math.floor(Math.random() * (max - min + 1)) + min;
1837}
1838function formatLineColor(colors) {
1839 return {
1840 backgroundColor: rgba(colors, 0.4),
1841 borderColor: rgba(colors, 1),
1842 pointBackgroundColor: rgba(colors, 1),
1843 pointBorderColor: '#fff',
1844 pointHoverBackgroundColor: '#fff',
1845 pointHoverBorderColor: rgba(colors, 0.8),
1846 };
1847}
1848function formatBarColor(colors) {
1849 return {
1850 backgroundColor: rgba(colors, 0.6),
1851 borderColor: rgba(colors, 1),
1852 hoverBackgroundColor: rgba(colors, 0.8),
1853 hoverBorderColor: rgba(colors, 1),
1854 };
1855}
1856function formatPieColors(colors) {
1857 return {
1858 backgroundColor: colors.map((color) => rgba(color, 0.6)),
1859 borderColor: colors.map(() => '#fff'),
1860 pointBackgroundColor: colors.map((color) => rgba(color, 1)),
1861 pointBorderColor: colors.map(() => '#fff'),
1862 pointHoverBackgroundColor: colors.map((color) => rgba(color, 1)),
1863 pointHoverBorderColor: colors.map((color) => rgba(color, 1)),
1864 };
1865}
1866function formatPolarAreaColors(colors) {
1867 return {
1868 backgroundColor: colors.map((color) => rgba(color, 0.6)),
1869 borderColor: colors.map((color) => rgba(color, 1)),
1870 hoverBackgroundColor: colors.map((color) => rgba(color, 0.8)),
1871 hoverBorderColor: colors.map((color) => rgba(color, 1)),
1872 };
1873}
1874function getRandomColor() {
1875 return [getRandomInt(0, 255), getRandomInt(0, 255), getRandomInt(0, 255)];
1876}
1877/**
1878 * Generate colors for line|bar charts
1879 */
1880function generateColor(index) {
1881 return BaseChartDirective.defaultColors[index] || getRandomColor();
1882}
1883/**
1884 * Generate colors for pie|doughnut charts
1885 */
1886function generateColors(count) {
1887 const colorsArr = new Array(count);
1888 for (let i = 0; i < count; i++) {
1889 colorsArr[i] = BaseChartDirective.defaultColors[i] || getRandomColor();
1890 }
1891 return colorsArr;
1892}
1893/**
1894 * Generate colors by chart type
1895 */
1896function getColors(chartType, index, count) {
1897 if (chartType === 'pie' || chartType === 'doughnut') {
1898 return formatPieColors(generateColors(count));
1899 }
1900 if (chartType === 'polarArea') {
1901 return formatPolarAreaColors(generateColors(count));
1902 }
1903 if (chartType === 'line' || chartType === 'radar') {
1904 return formatLineColor(generateColor(index));
1905 }
1906 if (chartType === 'bar' || chartType === 'horizontalBar') {
1907 return formatBarColor(generateColor(index));
1908 }
1909 return generateColor(index);
1910}
1911
1912class ChartsModule {
1913}
1914ChartsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ChartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1915ChartsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ChartsModule, declarations: [BaseChartDirective], exports: [BaseChartDirective] });
1916ChartsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ChartsModule });
1917i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ChartsModule, decorators: [{
1918 type: NgModule,
1919 args: [{
1920 declarations: [BaseChartDirective],
1921 exports: [BaseChartDirective],
1922 }]
1923 }] });
1924
1925const CHECKBOX_VALUE_ACCESSOR = {
1926 provide: NG_VALUE_ACCESSOR,
1927 // eslint-disable-next-line @typescript-eslint/no-use-before-define
1928 useExisting: forwardRef(() => CheckboxComponent),
1929 multi: true,
1930};
1931let defaultIdNumber$2 = 0;
1932class MdbCheckboxChange {
1933}
1934class CheckboxComponent {
1935 constructor(_cdRef) {
1936 this._cdRef = _cdRef;
1937 this.defaultId = `mdb-checkbox-${++defaultIdNumber$2}`;
1938 this.checkboxId = this.defaultId;
1939 this._required = false;
1940 this._checked = false;
1941 this._filledIn = false;
1942 this._indeterminate = false;
1943 this._disabled = false;
1944 this._rounded = false;
1945 this.checkboxPosition = 'left';
1946 this._default = false;
1947 this._inline = false;
1948 // eslint-disable-next-line @angular-eslint/no-output-native
1949 this.change = new EventEmitter();
1950 this.checkboxClicked = new Subject();
1951 // Control Value Accessor Methods
1952 this.onChange = (_) => { };
1953 this.onTouched = () => { };
1954 }
1955 get required() {
1956 return this._required;
1957 }
1958 set required(value) {
1959 this._required = coerceBooleanProperty(value);
1960 }
1961 get checked() {
1962 return this._checked;
1963 }
1964 set checked(value) {
1965 this._checked = coerceBooleanProperty(value);
1966 }
1967 get filledIn() {
1968 return this._filledIn;
1969 }
1970 set filledIn(value) {
1971 this._filledIn = coerceBooleanProperty(value);
1972 }
1973 get indeterminate() {
1974 return this._indeterminate;
1975 }
1976 set indeterminate(value) {
1977 this._indeterminate = coerceBooleanProperty(value);
1978 }
1979 get disabled() {
1980 return this._disabled;
1981 }
1982 set disabled(value) {
1983 this._disabled = coerceBooleanProperty(value);
1984 }
1985 get rounded() {
1986 return this._rounded;
1987 }
1988 set rounded(value) {
1989 this._rounded = coerceBooleanProperty(value);
1990 }
1991 get default() {
1992 return this._default;
1993 }
1994 set default(value) {
1995 this._default = coerceBooleanProperty(value);
1996 }
1997 get inline() {
1998 return this._inline;
1999 }
2000 set inline(value) {
2001 this._inline = coerceBooleanProperty(value);
2002 }
2003 get tabIndex() {
2004 return this._tabIndex;
2005 }
2006 set tabIndex(value) {
2007 this._tabIndex = coerceNumberProperty(value);
2008 }
2009 onLabelClick(event) {
2010 event.stopPropagation();
2011 this.checkboxClicked.next(true);
2012 }
2013 onDocumentClick() {
2014 this.checkboxClicked.next(false);
2015 }
2016 ngOnInit() {
2017 if (this.indeterminate && !this.filledIn && !this.rounded) {
2018 this.inputEl.indeterminate = true;
2019 }
2020 }
2021 ngOnChanges(changes) {
2022 if (changes.hasOwnProperty('checked')) {
2023 this.checked = changes.checked.currentValue;
2024 }
2025 }
2026 get changeEvent() {
2027 const newChangeEvent = new MdbCheckboxChange();
2028 newChangeEvent.element = this;
2029 newChangeEvent.checked = this.checked;
2030 return newChangeEvent;
2031 }
2032 toggle() {
2033 if (this.disabled) {
2034 return;
2035 }
2036 this.checked = !this.checked;
2037 this.indeterminate = false;
2038 this.onChange(this.checked);
2039 this._cdRef.markForCheck();
2040 }
2041 onCheckboxClick(event) {
2042 event.stopPropagation();
2043 this.toggle();
2044 }
2045 onCheckboxChange(event) {
2046 event.stopPropagation();
2047 timer(0).subscribe(() => this.change.emit(this.changeEvent));
2048 }
2049 onBlur() {
2050 this.checkboxClicked.pipe(take(1)).subscribe((val) => {
2051 if (!val) {
2052 this.onTouched();
2053 }
2054 });
2055 }
2056 writeValue(value) {
2057 this.value = value;
2058 this.checked = !!value;
2059 this._cdRef.markForCheck();
2060 }
2061 registerOnChange(fn) {
2062 this.onChange = fn;
2063 }
2064 registerOnTouched(fn) {
2065 this.onTouched = fn;
2066 }
2067 setDisabledState(isDisabled) {
2068 this.disabled = isDisabled;
2069 }
2070}
2071CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2072CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: CheckboxComponent, selector: "mdb-checkbox", inputs: { class: "class", checkboxId: "checkboxId", required: "required", name: "name", value: "value", checked: "checked", filledIn: "filledIn", indeterminate: "indeterminate", disabled: "disabled", rounded: "rounded", checkboxPosition: "checkboxPosition", default: "default", inline: "inline", tabIndex: "tabIndex" }, outputs: { change: "change" }, host: { listeners: { "click": "onLabelClick($event)", "document:click": "onDocumentClick()" } }, providers: [CHECKBOX_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'custom-control custom-checkbox': default,\n 'form-check': !default,\n 'custom-control-inline': inline,\n 'form-check-inline': inline && !default }\">\n <input\n #input\n type=\"checkbox\"\n class=\"custom-control-input\"\n [ngClass]=\"{\n 'filled-in': filledIn || rounded,\n 'custom-control-input': default,\n 'form-check-input': !default }\"\n [id]=\"checkboxId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [indeterminate]=\"indeterminate\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onBlur()\"\n (click)=\"onCheckboxClick($event)\"\n (change)=\"onCheckboxChange($event)\">\n <label\n [ngClass]=\"{\n 'custom-control-label': default,\n 'form-check-label': !default,\n 'label-before': checkboxPosition === 'right',\n 'checkbox-rounded': rounded,\n 'disabled': disabled }\"\n [attr.for]=\"checkboxId\">\n <ng-content></ng-content>\n </label>\n</div>\n", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2073i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckboxComponent, decorators: [{
2074 type: Component,
2075 args: [{ selector: 'mdb-checkbox', providers: [CHECKBOX_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"{\n 'custom-control custom-checkbox': default,\n 'form-check': !default,\n 'custom-control-inline': inline,\n 'form-check-inline': inline && !default }\">\n <input\n #input\n type=\"checkbox\"\n class=\"custom-control-input\"\n [ngClass]=\"{\n 'filled-in': filledIn || rounded,\n 'custom-control-input': default,\n 'form-check-input': !default }\"\n [id]=\"checkboxId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [indeterminate]=\"indeterminate\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onBlur()\"\n (click)=\"onCheckboxClick($event)\"\n (change)=\"onCheckboxChange($event)\">\n <label\n [ngClass]=\"{\n 'custom-control-label': default,\n 'form-check-label': !default,\n 'label-before': checkboxPosition === 'right',\n 'checkbox-rounded': rounded,\n 'disabled': disabled }\"\n [attr.for]=\"checkboxId\">\n <ng-content></ng-content>\n </label>\n</div>\n" }]
2076 }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { inputEl: [{
2077 type: ViewChild,
2078 args: ['input', { static: true }]
2079 }], class: [{
2080 type: Input
2081 }], checkboxId: [{
2082 type: Input
2083 }], required: [{
2084 type: Input
2085 }], name: [{
2086 type: Input
2087 }], value: [{
2088 type: Input
2089 }], checked: [{
2090 type: Input
2091 }], filledIn: [{
2092 type: Input
2093 }], indeterminate: [{
2094 type: Input
2095 }], disabled: [{
2096 type: Input
2097 }], rounded: [{
2098 type: Input
2099 }], checkboxPosition: [{
2100 type: Input
2101 }], default: [{
2102 type: Input
2103 }], inline: [{
2104 type: Input
2105 }], tabIndex: [{
2106 type: Input
2107 }], change: [{
2108 type: Output
2109 }], onLabelClick: [{
2110 type: HostListener,
2111 args: ['click', ['$event']]
2112 }], onDocumentClick: [{
2113 type: HostListener,
2114 args: ['document:click']
2115 }] } });
2116
2117class CheckboxModule {
2118}
2119CheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2120CheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckboxModule, declarations: [CheckboxComponent], imports: [CommonModule, FormsModule], exports: [CheckboxComponent] });
2121CheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckboxModule, imports: [[CommonModule, FormsModule]] });
2122i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckboxModule, decorators: [{
2123 type: NgModule,
2124 args: [{
2125 declarations: [CheckboxComponent],
2126 exports: [CheckboxComponent],
2127 imports: [CommonModule, FormsModule],
2128 }]
2129 }] });
2130
2131class CollapseComponent {
2132 constructor(_cdRef) {
2133 this._cdRef = _cdRef;
2134 this._isCollapsed = true;
2135 this.showBsCollapse = new EventEmitter();
2136 this.shownBsCollapse = new EventEmitter();
2137 this.hideBsCollapse = new EventEmitter();
2138 this.hiddenBsCollapse = new EventEmitter();
2139 this.collapsed = new EventEmitter();
2140 this.expanded = new EventEmitter();
2141 this.overflow = 'hidden';
2142 }
2143 get isCollapsed() {
2144 return this._isCollapsed;
2145 }
2146 set isCollapsed(value) {
2147 this._isCollapsed = coerceBooleanProperty(value);
2148 }
2149 onExpandBodyDone(event) {
2150 setTimeout(() => {
2151 if (event.toState === 'expanded') {
2152 this.isCollapsed = false;
2153 this.shownBsCollapse.emit(this);
2154 this.expanded.emit(this);
2155 this.overflow = 'visible';
2156 this.showCaptions();
2157 }
2158 else {
2159 this.isCollapsed = true;
2160 this.hiddenBsCollapse.emit(this);
2161 this.collapsed.emit(this);
2162 }
2163 }, 0);
2164 }
2165 showCaptions() {
2166 this.captions.forEach((caption) => caption.showCaption());
2167 }
2168 toggle() {
2169 this.isCollapsed ? this.show() : this.hide();
2170 }
2171 show() {
2172 this.expandAnimationState = 'expanded';
2173 this.showBsCollapse.emit(this);
2174 this._cdRef.markForCheck();
2175 }
2176 hide() {
2177 this.overflow = 'hidden';
2178 this.expandAnimationState = 'collapsed';
2179 this.hideBsCollapse.emit(this);
2180 this._cdRef.markForCheck();
2181 }
2182 initializeCollapseState() {
2183 this.isCollapsed ? this.hide() : this.show();
2184 }
2185 ngOnInit() {
2186 this.initializeCollapseState();
2187 }
2188}
2189CollapseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CollapseComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2190CollapseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: CollapseComponent, selector: "[mdbCollapse]", inputs: { isCollapsed: "isCollapsed" }, outputs: { showBsCollapse: "showBsCollapse", shownBsCollapse: "shownBsCollapse", hideBsCollapse: "hideBsCollapse", hiddenBsCollapse: "hiddenBsCollapse", collapsed: "collapsed", expanded: "expanded" }, host: { listeners: { "@expandBody.done": "onExpandBodyDone($event)" }, properties: { "@expandBody": "this.expandAnimationState", "style.overflow": "this.overflow" } }, queries: [{ propertyName: "captions", predicate: FixedButtonCaptionDirective }], exportAs: ["bs-collapse"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, animations: [
2191 trigger('expandBody', [
2192 state('collapsed', style({ height: '0px' })),
2193 state('expanded', style({ height: '*' })),
2194 transition('expanded <=> collapsed', animate('500ms ease')),
2195 ]),
2196 ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2197i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CollapseComponent, decorators: [{
2198 type: Component,
2199 args: [{
2200 // eslint-disable-next-line @angular-eslint/component-selector
2201 selector: '[mdbCollapse]',
2202 exportAs: 'bs-collapse',
2203 template: '<ng-content></ng-content>',
2204 animations: [
2205 trigger('expandBody', [
2206 state('collapsed', style({ height: '0px' })),
2207 state('expanded', style({ height: '*' })),
2208 transition('expanded <=> collapsed', animate('500ms ease')),
2209 ]),
2210 ],
2211 changeDetection: ChangeDetectionStrategy.OnPush,
2212 }]
2213 }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { captions: [{
2214 type: ContentChildren,
2215 args: [FixedButtonCaptionDirective]
2216 }], isCollapsed: [{
2217 type: Input
2218 }], showBsCollapse: [{
2219 type: Output
2220 }], shownBsCollapse: [{
2221 type: Output
2222 }], hideBsCollapse: [{
2223 type: Output
2224 }], hiddenBsCollapse: [{
2225 type: Output
2226 }], collapsed: [{
2227 type: Output
2228 }], expanded: [{
2229 type: Output
2230 }], expandAnimationState: [{
2231 type: HostBinding,
2232 args: ['@expandBody']
2233 }], overflow: [{
2234 type: HostBinding,
2235 args: ['style.overflow']
2236 }], onExpandBodyDone: [{
2237 type: HostListener,
2238 args: ['@expandBody.done', ['$event']]
2239 }] } });
2240
2241class CollapseModule {
2242 static forRoot() {
2243 return { ngModule: CollapseModule, providers: [] };
2244 }
2245}
2246CollapseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2247CollapseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CollapseModule, declarations: [CollapseComponent], exports: [CollapseComponent] });
2248CollapseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CollapseModule });
2249i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CollapseModule, decorators: [{
2250 type: NgModule,
2251 args: [{
2252 declarations: [CollapseComponent],
2253 exports: [CollapseComponent],
2254 }]
2255 }] });
2256
2257class BsDropdownState {
2258 constructor() {
2259 this.direction = 'down';
2260 this.isOpenChange = new EventEmitter();
2261 this.isDisabledChange = new EventEmitter();
2262 this.toggleClick = new EventEmitter();
2263 this.dropdownMenu = new Promise((resolve) => {
2264 this.resolveDropdownMenu = resolve;
2265 });
2266 }
2267}
2268BsDropdownState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2269BsDropdownState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownState });
2270i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownState, decorators: [{
2271 type: Injectable
2272 }], ctorParameters: function () { return []; } });
2273
2274/**
2275 * @copyright Valor Software
2276 * @copyright Angular ng-bootstrap team
2277 */
2278class Trigger$1 {
2279 constructor(open, close) {
2280 this.open = open;
2281 this.close = close || open;
2282 }
2283 isManual() {
2284 return this.open === 'manual' || this.close === 'manual';
2285 }
2286}
2287
2288const DEFAULT_ALIASES = {
2289 hover: ['mouseover', 'mouseout'],
2290 focus: ['focusin', 'focusout']
2291};
2292/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2293function parseTriggers(triggers, aliases = DEFAULT_ALIASES) {
2294 const trimmedTriggers = (triggers || '').trim();
2295 if (trimmedTriggers.length === 0) {
2296 return [];
2297 }
2298 const parsedTriggers = trimmedTriggers
2299 .split(/\s+/)
2300 .map((trigger) => trigger.split(':'))
2301 .map((triggerPair) => {
2302 const alias = aliases[triggerPair[0]] || triggerPair;
2303 return new Trigger$1(alias[0], alias[1]);
2304 });
2305 const manualTriggers = parsedTriggers.filter((triggerPair) => triggerPair.isManual());
2306 if (manualTriggers.length > 1) {
2307 throw new Error('Triggers parse error: only one manual trigger is allowed');
2308 }
2309 if (manualTriggers.length === 1 && parsedTriggers.length > 1) {
2310 throw new Error('Triggers parse error: manual trigger can\'t be mixed with other triggers');
2311 }
2312 return parsedTriggers;
2313}
2314function listenToTriggers(renderer,
2315/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2316target, triggers, showFn, hideFn, toggleFn) {
2317 const parsedTriggers = parseTriggers(triggers);
2318 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2319 const listeners = [];
2320 if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {
2321 return Function.prototype;
2322 }
2323 parsedTriggers.forEach((trigger) => {
2324 if (trigger.open === trigger.close) {
2325 listeners.push(renderer.listen(target, trigger.open, toggleFn));
2326 return;
2327 }
2328 listeners.push(renderer.listen(target, trigger.open, showFn), renderer.listen(target, trigger.close, hideFn));
2329 });
2330 return () => {
2331 listeners.forEach((unsubscribeFn) => unsubscribeFn());
2332 };
2333}
2334function listenToTriggersV2(renderer, options) {
2335 const parsedTriggers = parseTriggers(options.triggers);
2336 const target = options.target;
2337 // do nothing
2338 if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {
2339 return Function.prototype;
2340 }
2341 // all listeners
2342 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2343 const listeners = [];
2344 // lazy listeners registration
2345 const _registerHide = [];
2346 const registerHide = () => {
2347 // add hide listeners to unregister array
2348 _registerHide.forEach((fn) => listeners.push(fn()));
2349 // register hide events only once
2350 _registerHide.length = 0;
2351 };
2352 // register open\close\toggle listeners
2353 parsedTriggers.forEach((trigger) => {
2354 const useToggle = trigger.open === trigger.close;
2355 const showFn = useToggle ? options.toggle : options.show;
2356 if (!useToggle) {
2357 _registerHide.push(() => renderer.listen(target, trigger.close, options.hide));
2358 }
2359 listeners.push(renderer.listen(target, trigger.open, () => showFn(registerHide)));
2360 });
2361 return () => {
2362 listeners.forEach((unsubscribeFn) => unsubscribeFn());
2363 };
2364}
2365function registerOutsideClick(renderer, options) {
2366 if (!options.outsideClick) {
2367 return Function.prototype;
2368 }
2369 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2370 return renderer.listen('document', 'click', (event) => {
2371 if (options.target && options.target.contains(event.target)) {
2372 return undefined;
2373 }
2374 if (options.targets &&
2375 options.targets.some(target => target.contains(event.target))) {
2376 return undefined;
2377 }
2378 options.hide();
2379 });
2380}
2381function registerEscClick(renderer, options) {
2382 if (!options.outsideEsc) {
2383 return Function.prototype;
2384 }
2385 return renderer.listen('document', 'keyup.esc', (event) => {
2386 if (options.target && options.target.contains(event.target)) {
2387 return undefined;
2388 }
2389 if (options.targets &&
2390 options.targets.some(target => target.contains(event.target))) {
2391 return undefined;
2392 }
2393 options.hide();
2394 });
2395}
2396
2397/**
2398 * @license
2399 * Copyright Google Inc. All Rights Reserved.
2400 *
2401 * Use of this source code is governed by an MIT-style license that can be
2402 * found in the LICENSE file at https://angular.io/license
2403 */
2404/**
2405 * JS version of browser APIs. This library can only run in the browser.
2406 */
2407const win = (typeof window !== 'undefined' && window) || {};
2408const document$1 = win.document;
2409const location = win.location;
2410const gc = win.gc ? () => win.gc() : () => null;
2411const performance = win.performance ? win.performance : null;
2412const Event = win.Event;
2413const MouseEvent = win.MouseEvent;
2414const KeyboardEvent = win.KeyboardEvent;
2415const EventTarget = win.EventTarget;
2416const History = win.History;
2417const Location = win.Location;
2418const EventListener = win.EventListener;
2419
2420let guessedVersion;
2421function _guessBsVersion() {
2422 if (typeof document === 'undefined') {
2423 return null;
2424 }
2425 const spanEl = document.createElement('span');
2426 spanEl.innerText = 'test bs version';
2427 document.body.appendChild(spanEl);
2428 spanEl.classList.add('d-none');
2429 const rect = spanEl.getBoundingClientRect();
2430 document.body.removeChild(spanEl);
2431 if (!rect) {
2432 return 'bs3';
2433 }
2434 return rect.top === 0 ? 'bs4' : 'bs3';
2435}
2436function setTheme(theme) {
2437 guessedVersion = theme;
2438}
2439// todo: in ngx-bootstrap, bs4 will became a default one
2440function isBs3() {
2441 if (typeof win === 'undefined') {
2442 return true;
2443 }
2444 if (typeof win.__theme === 'undefined') {
2445 if (guessedVersion) {
2446 return guessedVersion === 'bs3';
2447 }
2448 guessedVersion = _guessBsVersion();
2449 return guessedVersion === 'bs3';
2450 }
2451 return win.__theme !== 'bs4';
2452}
2453
2454class LinkedList$1 {
2455 constructor() {
2456 this.length = 0;
2457 this.asArray = [];
2458 // Array methods overriding END
2459 }
2460 get(position) {
2461 if (this.length === 0 || position < 0 || position >= this.length) {
2462 return void 0;
2463 }
2464 let current = this.head;
2465 for (let index = 0; index < position; index++) {
2466 current = current.next;
2467 }
2468 return current.value;
2469 }
2470 add(value, position = this.length) {
2471 if (position < 0 || position > this.length) {
2472 throw new Error('Position is out of the list');
2473 }
2474 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2475 const node = {
2476 value,
2477 next: undefined,
2478 previous: undefined
2479 };
2480 if (this.length === 0) {
2481 this.head = node;
2482 this.tail = node;
2483 this.current = node;
2484 }
2485 else {
2486 if (position === 0) {
2487 // first node
2488 node.next = this.head;
2489 this.head.previous = node;
2490 this.head = node;
2491 }
2492 else if (position === this.length) {
2493 // last node
2494 this.tail.next = node;
2495 node.previous = this.tail;
2496 this.tail = node;
2497 }
2498 else {
2499 // node in middle
2500 const currentPreviousNode = this.getNode(position - 1);
2501 const currentNextNode = currentPreviousNode.next;
2502 currentPreviousNode.next = node;
2503 currentNextNode.previous = node;
2504 node.previous = currentPreviousNode;
2505 node.next = currentNextNode;
2506 }
2507 }
2508 this.length++;
2509 this.createInternalArrayRepresentation();
2510 }
2511 remove(position = 0) {
2512 if (this.length === 0 || position < 0 || position >= this.length) {
2513 throw new Error('Position is out of the list');
2514 }
2515 if (position === 0) {
2516 // first node
2517 this.head = this.head.next;
2518 if (this.head) {
2519 // there is no second node
2520 this.head.previous = undefined;
2521 }
2522 else {
2523 // there is no second node
2524 this.tail = undefined;
2525 }
2526 }
2527 else if (position === this.length - 1) {
2528 // last node
2529 this.tail = this.tail.previous;
2530 this.tail.next = undefined;
2531 }
2532 else {
2533 // middle node
2534 const removedNode = this.getNode(position);
2535 removedNode.next.previous = removedNode.previous;
2536 removedNode.previous.next = removedNode.next;
2537 }
2538 this.length--;
2539 this.createInternalArrayRepresentation();
2540 }
2541 set(position, value) {
2542 if (this.length === 0 || position < 0 || position >= this.length) {
2543 throw new Error('Position is out of the list');
2544 }
2545 const node = this.getNode(position);
2546 node.value = value;
2547 this.createInternalArrayRepresentation();
2548 }
2549 toArray() {
2550 return this.asArray;
2551 }
2552 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2553 findAll(fn) {
2554 let current = this.head;
2555 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2556 const result = [];
2557 for (let index = 0; index < this.length; index++) {
2558 if (fn(current.value, index)) {
2559 result.push({ index, value: current.value });
2560 }
2561 current = current.next;
2562 }
2563 return result;
2564 }
2565 // Array methods overriding start
2566 push(...args) {
2567 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2568 args.forEach((arg) => {
2569 this.add(arg);
2570 });
2571 return this.length;
2572 }
2573 pop() {
2574 if (this.length === 0) {
2575 return undefined;
2576 }
2577 const last = this.tail;
2578 this.remove(this.length - 1);
2579 return last.value;
2580 }
2581 unshift(...args) {
2582 args.reverse();
2583 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2584 args.forEach((arg) => {
2585 this.add(arg, 0);
2586 });
2587 return this.length;
2588 }
2589 shift() {
2590 if (this.length === 0) {
2591 return undefined;
2592 }
2593 const lastItem = this.head.value;
2594 this.remove();
2595 return lastItem;
2596 }
2597 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2598 forEach(fn) {
2599 let current = this.head;
2600 for (let index = 0; index < this.length; index++) {
2601 fn(current.value, index);
2602 current = current.next;
2603 }
2604 }
2605 indexOf(value) {
2606 let current = this.head;
2607 let position = 0;
2608 for (let index = 0; index < this.length; index++) {
2609 if (current.value === value) {
2610 position = index;
2611 break;
2612 }
2613 current = current.next;
2614 }
2615 return position;
2616 }
2617 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2618 some(fn) {
2619 let current = this.head;
2620 let result = false;
2621 while (current && !result) {
2622 if (fn(current.value)) {
2623 result = true;
2624 break;
2625 }
2626 current = current.next;
2627 }
2628 return result;
2629 }
2630 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2631 every(fn) {
2632 let current = this.head;
2633 let result = true;
2634 while (current && result) {
2635 if (!fn(current.value)) {
2636 result = false;
2637 }
2638 current = current.next;
2639 }
2640 return result;
2641 }
2642 toString() {
2643 return '[Linked List]';
2644 }
2645 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2646 find(fn) {
2647 let current = this.head;
2648 let result;
2649 for (let index = 0; index < this.length; index++) {
2650 if (fn(current.value, index)) {
2651 result = current.value;
2652 break;
2653 }
2654 current = current.next;
2655 }
2656 return result;
2657 }
2658 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2659 findIndex(fn) {
2660 let current = this.head;
2661 let result;
2662 for (let index = 0; index < this.length; index++) {
2663 if (fn(current.value, index)) {
2664 result = index;
2665 break;
2666 }
2667 current = current.next;
2668 }
2669 return result;
2670 }
2671 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2672 getNode(position) {
2673 if (this.length === 0 || position < 0 || position >= this.length) {
2674 throw new Error('Position is out of the list');
2675 }
2676 let current = this.head;
2677 for (let index = 0; index < position; index++) {
2678 current = current.next;
2679 }
2680 return current;
2681 }
2682 createInternalArrayRepresentation() {
2683 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2684 const outArray = [];
2685 let current = this.head;
2686 while (current) {
2687 outArray.push(current.value);
2688 current = current.next;
2689 }
2690 this.asArray = outArray;
2691 }
2692}
2693
2694/* eslint-disable no-invalid-this */
2695/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2696function OnChange$1() {
2697 const sufix = 'Change';
2698 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2699 return function OnChangeHandler(target, propertyKey) {
2700 const _key = ` __${propertyKey}Value`;
2701 Object.defineProperty(target, propertyKey, {
2702 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2703 get() {
2704 return this[_key];
2705 },
2706 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2707 set(value) {
2708 const prevValue = this[_key];
2709 this[_key] = value;
2710 if (prevValue !== value && this[propertyKey + sufix]) {
2711 this[propertyKey + sufix].emit(value);
2712 }
2713 }
2714 });
2715 };
2716}
2717/* eslint-enable */
2718
2719class Utils$1 {
2720 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2721 static reflow(element) {
2722 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2723 ((bs) => bs)(element.offsetHeight);
2724 }
2725 // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js
2726 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2727 static getStyles(elem) {
2728 // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
2729 // IE throws on elements created in popups
2730 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
2731 let view = elem.ownerDocument.defaultView;
2732 if (!view || !view.opener) {
2733 view = win;
2734 }
2735 return view.getComputedStyle(elem);
2736 }
2737}
2738
2739const _messagesHash = {};
2740const _hideMsg = typeof console === 'undefined' || !('warn' in console);
2741function warnOnce(msg) {
2742 if (!isDevMode() || _hideMsg || msg in _messagesHash) {
2743 return;
2744 }
2745 _messagesHash[msg] = true;
2746 /* eslint-disable-next-line */
2747 console.warn(msg);
2748}
2749
2750/**
2751 * @copyright Valor Software
2752 * @copyright Angular ng-bootstrap team
2753 */
2754class ContentRef {
2755 constructor(
2756 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2757 nodes, viewRef,
2758 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2759 componentRef) {
2760 this.nodes = nodes;
2761 this.viewRef = viewRef;
2762 this.componentRef = componentRef;
2763 }
2764}
2765
2766/* eslint-disable max-lines */
2767class ComponentLoader {
2768 /**
2769 * Do not use this directly, it should be instanced via
2770 * `ComponentLoadFactory.attach`
2771 * @internal
2772 */
2773 // eslint-disable-next-line
2774 constructor(_viewContainerRef, _renderer, _elementRef, _injector, _componentFactoryResolver, _ngZone, _applicationRef, _posService) {
2775 this._viewContainerRef = _viewContainerRef;
2776 this._renderer = _renderer;
2777 this._elementRef = _elementRef;
2778 this._injector = _injector;
2779 this._componentFactoryResolver = _componentFactoryResolver;
2780 this._ngZone = _ngZone;
2781 this._applicationRef = _applicationRef;
2782 this._posService = _posService;
2783 this.onBeforeShow = new EventEmitter();
2784 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2785 this.onShown = new EventEmitter();
2786 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2787 this.onBeforeHide = new EventEmitter();
2788 this.onHidden = new EventEmitter();
2789 this.shown = new EventEmitter();
2790 this.hidden = new EventEmitter();
2791 this._providers = [];
2792 this._isHiding = false;
2793 /**
2794 * A selector used if container element was not found
2795 */
2796 this.containerDefaultSelector = 'body';
2797 this._listenOpts = {};
2798 this._globalListener = Function.prototype;
2799 }
2800 get isShown() {
2801 if (this._isHiding) {
2802 return false;
2803 }
2804 return !!this._componentRef;
2805 }
2806 attach(compType) {
2807 this._componentFactory = this._componentFactoryResolver
2808 .resolveComponentFactory(compType);
2809 return this;
2810 }
2811 // todo: add behaviour: to target element, `body`, custom element
2812 to(container) {
2813 this.container = container || this.container;
2814 return this;
2815 }
2816 position(opts) {
2817 this.attachment = opts.attachment || this.attachment;
2818 this._elementRef = opts.target || this._elementRef;
2819 return this;
2820 }
2821 provide(provider) {
2822 this._providers.push(provider);
2823 return this;
2824 }
2825 // todo: appendChild to element or document.querySelector(this.container)
2826 show(opts = {}) {
2827 this._subscribePositioning();
2828 this._innerComponent = null;
2829 if (!this._componentRef) {
2830 this.onBeforeShow.emit();
2831 this._contentRef = this._getContentRef(opts.content, opts.data);
2832 const injector = Injector.create({
2833 providers: this._providers,
2834 parent: this._injector
2835 });
2836 this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);
2837 this._applicationRef.attachView(this._componentRef.hostView);
2838 // this._componentRef = this._viewContainerRef
2839 // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);
2840 this.instance = this._componentRef.instance;
2841 Object.assign(this._componentRef.instance, opts);
2842 if (this.container instanceof ElementRef) {
2843 this.container.nativeElement.appendChild(this._componentRef.location.nativeElement);
2844 }
2845 if (typeof this.container === 'string' && typeof document !== 'undefined') {
2846 const selectedElement = document.querySelector(this.container) ||
2847 document.querySelector(this.containerDefaultSelector);
2848 if (selectedElement) {
2849 selectedElement.appendChild(this._componentRef.location.nativeElement);
2850 }
2851 }
2852 if (!this.container &&
2853 this._elementRef &&
2854 this._elementRef.nativeElement.parentElement) {
2855 this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement);
2856 }
2857 // we need to manually invoke change detection since events registered
2858 // via
2859 // Renderer::listen() are not picked up by change detection with the
2860 // OnPush strategy
2861 if (this._contentRef.componentRef) {
2862 this._innerComponent = this._contentRef.componentRef.instance;
2863 this._contentRef.componentRef.changeDetectorRef.markForCheck();
2864 this._contentRef.componentRef.changeDetectorRef.detectChanges();
2865 }
2866 this._componentRef.changeDetectorRef.markForCheck();
2867 this._componentRef.changeDetectorRef.detectChanges();
2868 this.onShown.emit(this._componentRef.instance);
2869 }
2870 this._registerOutsideClick();
2871 return this._componentRef;
2872 }
2873 hide() {
2874 if (!this._componentRef) {
2875 return this;
2876 }
2877 this._posService.deletePositionElement(this._componentRef.location);
2878 this.onBeforeHide.emit(this._componentRef.instance);
2879 const componentEl = this._componentRef.location.nativeElement;
2880 componentEl.parentNode.removeChild(componentEl);
2881 if (this._contentRef.componentRef) {
2882 this._contentRef.componentRef.destroy();
2883 }
2884 this._componentRef.destroy();
2885 if (this._viewContainerRef && this._contentRef.viewRef) {
2886 this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef));
2887 }
2888 if (this._contentRef.viewRef) {
2889 this._contentRef.viewRef.destroy();
2890 }
2891 this._contentRef = null;
2892 this._componentRef = null;
2893 this._removeGlobalListener();
2894 this.onHidden.emit();
2895 return this;
2896 }
2897 toggle() {
2898 if (this.isShown) {
2899 this.hide();
2900 return;
2901 }
2902 this.show();
2903 }
2904 dispose() {
2905 if (this.isShown) {
2906 this.hide();
2907 }
2908 this._unsubscribePositioning();
2909 if (this._unregisterListenersFn) {
2910 this._unregisterListenersFn();
2911 }
2912 }
2913 listen(listenOpts) {
2914 this.triggers = listenOpts.triggers || this.triggers;
2915 this._listenOpts.outsideClick = listenOpts.outsideClick;
2916 this._listenOpts.outsideEsc = listenOpts.outsideEsc;
2917 listenOpts.target = listenOpts.target || this._elementRef.nativeElement;
2918 const hide = (this._listenOpts.hide = () => listenOpts.hide ? listenOpts.hide() : void this.hide());
2919 const show = (this._listenOpts.show = (registerHide) => {
2920 listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);
2921 registerHide();
2922 });
2923 const toggle = (registerHide) => {
2924 this.isShown ? hide() : show(registerHide);
2925 };
2926 this._unregisterListenersFn = listenToTriggersV2(this._renderer, {
2927 target: listenOpts.target,
2928 triggers: listenOpts.triggers,
2929 show,
2930 hide,
2931 toggle
2932 });
2933 return this;
2934 }
2935 _removeGlobalListener() {
2936 if (this._globalListener) {
2937 this._globalListener();
2938 this._globalListener = null;
2939 }
2940 }
2941 attachInline(vRef,
2942 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2943 template) {
2944 this._inlineViewRef = vRef.createEmbeddedView(template);
2945 return this;
2946 }
2947 _registerOutsideClick() {
2948 if (!this._componentRef || !this._componentRef.location) {
2949 return;
2950 }
2951 // why: should run after first event bubble
2952 if (this._listenOpts && this._listenOpts.outsideClick) {
2953 const target = this._componentRef.location.nativeElement;
2954 setTimeout(() => {
2955 this._globalListener = registerOutsideClick(this._renderer, {
2956 targets: [target, this._elementRef.nativeElement],
2957 outsideClick: this._listenOpts.outsideClick,
2958 hide: () => this._listenOpts.hide()
2959 });
2960 });
2961 }
2962 if (this._listenOpts.outsideEsc) {
2963 const target = this._componentRef.location.nativeElement;
2964 this._globalListener = registerEscClick(this._renderer, {
2965 targets: [target, this._elementRef.nativeElement],
2966 outsideEsc: this._listenOpts.outsideEsc,
2967 hide: () => this._listenOpts.hide()
2968 });
2969 }
2970 }
2971 getInnerComponent() {
2972 return this._innerComponent;
2973 }
2974 _subscribePositioning() {
2975 if (this._zoneSubscription || !this.attachment) {
2976 return;
2977 }
2978 this.onShown.subscribe(() => {
2979 this._posService.position({
2980 element: this._componentRef.location,
2981 target: this._elementRef,
2982 attachment: this.attachment,
2983 appendToBody: this.container === 'body'
2984 });
2985 });
2986 this._zoneSubscription = this._ngZone.onStable.subscribe(() => {
2987 if (!this._componentRef) {
2988 return;
2989 }
2990 this._posService.calcPosition();
2991 });
2992 }
2993 _unsubscribePositioning() {
2994 if (!this._zoneSubscription) {
2995 return;
2996 }
2997 this._zoneSubscription.unsubscribe();
2998 this._zoneSubscription = null;
2999 }
3000 _getContentRef(
3001 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
3002 content,
3003 /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
3004 data) {
3005 if (!content) {
3006 return new ContentRef([]);
3007 }
3008 if (content instanceof TemplateRef) {
3009 if (this._viewContainerRef) {
3010 const _viewRef = this._viewContainerRef
3011 .createEmbeddedView(content);
3012 _viewRef.markForCheck();
3013 return new ContentRef([_viewRef.rootNodes], _viewRef);
3014 }
3015 const viewRef = content.createEmbeddedView({});
3016 this._applicationRef.attachView(viewRef);
3017 return new ContentRef([viewRef.rootNodes], viewRef);
3018 }
3019 if (typeof content === 'function') {
3020 const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(content);
3021 const modalContentInjector = Injector.create({
3022 providers: this._providers,
3023 parent: this._injector
3024 });
3025 const componentRef = contentCmptFactory.create(modalContentInjector);
3026 Object.assign(componentRef.instance, data);
3027 this._applicationRef.attachView(componentRef.hostView);
3028 return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);
3029 }
3030 return new ContentRef([[this._renderer.createText(`${content}`)]]);
3031 }
3032}
3033
3034/**
3035 * Get CSS computed property of the given element
3036 */
3037function getStyleComputedProperty(element, property) {
3038 if (element.nodeType !== 1) {
3039 return [];
3040 }
3041 // NOTE: 1 DOM access here
3042 const window = element.ownerDocument.defaultView;
3043 const css = window.getComputedStyle(element, null);
3044 return property ? css[property] : css;
3045}
3046
3047/**
3048 * Returns the parentNode or the host of the element
3049 */
3050function getParentNode(element) {
3051 if (element.nodeName === 'HTML') {
3052 return element;
3053 }
3054 return element.parentNode || element.host;
3055}
3056
3057/**
3058 * Returns the scrolling parent of the given element
3059 */
3060function getScrollParent(element) {
3061 // Return body, `getScroll` will take care to get the correct `scrollTop` from it
3062 if (!element) {
3063 return document.body;
3064 }
3065 switch (element.nodeName) {
3066 case 'HTML':
3067 case 'BODY':
3068 return element.ownerDocument.body;
3069 case '#document':
3070 return element.body;
3071 default:
3072 }
3073 // Firefox want us to check `-x` and `-y` variations as well
3074 const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);
3075 if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {
3076 return element;
3077 }
3078 return getScrollParent(getParentNode(element));
3079}
3080
3081const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
3082
3083/**
3084 * Determines if the browser is Internet Explorer
3085 */
3086const isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
3087const isIE10 = isBrowser && !!(window.MSInputMethodContext && /MSIE 10/.test(navigator.userAgent));
3088function isIE(version) {
3089 if (version === 11) {
3090 return isIE11;
3091 }
3092 if (version === 10) {
3093 return isIE10;
3094 }
3095 return isIE11 || isIE10;
3096}
3097
3098/**
3099 * Returns the offset parent of the given element
3100 */
3101function getOffsetParent(element) {
3102 if (!element) {
3103 return document.documentElement;
3104 }
3105 const noOffsetParent = isIE(10) ? document.body : null;
3106 // NOTE: 1 DOM access here
3107 let offsetParent = element.offsetParent || null;
3108 // Skip hidden elements which don't have an offsetParent
3109 let sibling;
3110 while (offsetParent === noOffsetParent && element.nextElementSibling && element.nodeName !== 'BODY') {
3111 sibling = element.nextElementSibling;
3112 offsetParent = sibling.offsetParent;
3113 }
3114 const nodeName = offsetParent && offsetParent.nodeName;
3115 if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
3116 return sibling ? sibling.ownerDocument.documentElement : document.documentElement;
3117 }
3118 // .offsetParent will return the closest TH, TD or TABLE in case
3119 // no offsetParent is present, I hate this job...
3120 if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&
3121 getStyleComputedProperty(offsetParent, 'position') === 'static') {
3122 return getOffsetParent(offsetParent);
3123 }
3124 return offsetParent;
3125}
3126
3127function isOffsetContainer(element) {
3128 const { nodeName } = element;
3129 if (nodeName === 'BODY') {
3130 return false;
3131 }
3132 return (nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element);
3133}
3134
3135/**
3136 * Finds the root node (document, shadowDOM root) of the given element
3137 */
3138function getRoot(node) {
3139 if (node.parentNode !== null) {
3140 return getRoot(node.parentNode);
3141 }
3142 return node;
3143}
3144
3145/**
3146 * Finds the offset parent common to the two provided nodes
3147 */
3148function findCommonOffsetParent(element1, element2) {
3149 // This check is needed to avoid errors in case one of the elements isn't defined for any reason
3150 if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
3151 return document.documentElement;
3152 }
3153 // Here we make sure to give as "start" the element that comes first in the DOM
3154 /* eslint-disable-next-line no-bitwise */
3155 const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
3156 const start = order ? element1 : element2;
3157 const end = order ? element2 : element1;
3158 // Get common ancestor container
3159 const range = document.createRange();
3160 range.setStart(start, 0);
3161 range.setEnd(end, 0);
3162 const { commonAncestorContainer } = range;
3163 // Both nodes are inside #document
3164 if ((element1 !== commonAncestorContainer &&
3165 element2 !== commonAncestorContainer) ||
3166 start.contains(end)) {
3167 if (isOffsetContainer(commonAncestorContainer)) {
3168 return commonAncestorContainer;
3169 }
3170 return getOffsetParent(commonAncestorContainer);
3171 }
3172 // one of the nodes is inside shadowDOM, find which one
3173 const element1root = getRoot(element1);
3174 if (element1root.host) {
3175 return findCommonOffsetParent(element1root.host, element2);
3176 }
3177 else {
3178 return findCommonOffsetParent(element1, getRoot(element2).host);
3179 }
3180}
3181
3182/**
3183 * Helper to detect borders of a given element
3184 */
3185function getBordersSize(styles, axis) {
3186 const sideA = axis === 'x' ? 'Left' : 'Top';
3187 const sideB = sideA === 'Left' ? 'Right' : 'Bottom';
3188 return (parseFloat(styles[`border${sideA}Width`]) +
3189 parseFloat(styles[`border${sideB}Width`]));
3190}
3191
3192function getSize(axis, body, html, computedStyle) {
3193 return Math.max(body[`offset${axis}`], body[`scroll${axis}`], html[`client${axis}`], html[`offset${axis}`], html[`scroll${axis}`], isIE(10)
3194 ? (parseInt(html[`offset${axis}`], 10) +
3195 parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`], 10) +
3196 parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`], 10))
3197 : 0);
3198}
3199function getWindowSizes(document) {
3200 const body = document.body;
3201 const html = document.documentElement;
3202 const computedStyle = isIE(10) && getComputedStyle(html);
3203 return {
3204 height: getSize('Height', body, html, computedStyle),
3205 width: getSize('Width', body, html, computedStyle)
3206 };
3207}
3208
3209/**
3210 * Gets the scroll value of the given element in the given side (top and left)
3211 */
3212function getScroll(element, side = 'top') {
3213 const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
3214 const nodeName = element.nodeName;
3215 if (nodeName === 'BODY' || nodeName === 'HTML') {
3216 const html = element.ownerDocument.documentElement;
3217 const scrollingElement = element.ownerDocument.scrollingElement || html;
3218 return scrollingElement[upperSide];
3219 }
3220 return element[upperSide];
3221}
3222
3223function getClientRect(offsets) {
3224 return {
3225 ...offsets,
3226 right: offsets.left + offsets.width,
3227 bottom: offsets.top + offsets.height
3228 };
3229}
3230
3231/**
3232 * Get bounding client rect of given element
3233 */
3234function getBoundingClientRect(element) {
3235 let rect = {};
3236 // IE10 10 FIX: Please, don't ask, the element isn't
3237 // considered in DOM in some circumstances...
3238 // This isn't reproducible in IE10 compatibility mode of IE11
3239 try {
3240 if (isIE(10)) {
3241 rect = element.getBoundingClientRect();
3242 const scrollTop = getScroll(element, 'top');
3243 const scrollLeft = getScroll(element, 'left');
3244 rect.top += scrollTop;
3245 rect.left += scrollLeft;
3246 rect.bottom += scrollTop;
3247 rect.right += scrollLeft;
3248 }
3249 else {
3250 rect = element.getBoundingClientRect();
3251 }
3252 }
3253 catch (e) {
3254 return undefined;
3255 }
3256 const result = {
3257 left: rect.left,
3258 top: rect.top,
3259 width: rect.right - rect.left,
3260 height: rect.bottom - rect.top
3261 };
3262 // subtract scrollbar size from sizes
3263 const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
3264 const width = sizes.width || element.clientWidth || result.right - result.left;
3265 const height = sizes.height || element.clientHeight || result.bottom - result.top;
3266 let horizScrollbar = element.offsetWidth - width;
3267 let vertScrollbar = element.offsetHeight - height;
3268 // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
3269 // we make this check conditional for performance reasons
3270 if (horizScrollbar || vertScrollbar) {
3271 const styles = getStyleComputedProperty(element);
3272 horizScrollbar -= getBordersSize(styles, 'x');
3273 vertScrollbar -= getBordersSize(styles, 'y');
3274 result.width -= horizScrollbar;
3275 result.height -= vertScrollbar;
3276 }
3277 return getClientRect(result);
3278}
3279
3280/**
3281 * Sum or subtract the element scroll values (left and top) from a given rect object
3282 */
3283function includeScroll(rect, element, subtract = false) {
3284 const scrollTop = getScroll(element, 'top');
3285 const scrollLeft = getScroll(element, 'left');
3286 const modifier = subtract ? -1 : 1;
3287 rect.top += scrollTop * modifier;
3288 rect.bottom += scrollTop * modifier;
3289 rect.left += scrollLeft * modifier;
3290 rect.right += scrollLeft * modifier;
3291 return rect;
3292}
3293
3294function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {
3295 const isIE10 = isIE(10);
3296 const isHTML = parent.nodeName === 'HTML';
3297 const childrenRect = getBoundingClientRect(children);
3298 const parentRect = getBoundingClientRect(parent);
3299 const scrollParent = getScrollParent(children);
3300 const styles = getStyleComputedProperty(parent);
3301 const borderTopWidth = parseFloat(styles.borderTopWidth);
3302 const borderLeftWidth = parseFloat(styles.borderLeftWidth);
3303 // In cases where the parent is fixed, we must ignore negative scroll in offset calc
3304 if (fixedPosition && isHTML) {
3305 parentRect.top = Math.max(parentRect.top, 0);
3306 parentRect.left = Math.max(parentRect.left, 0);
3307 }
3308 let offsets = getClientRect({
3309 top: childrenRect.top - parentRect.top - borderTopWidth,
3310 left: childrenRect.left - parentRect.left - borderLeftWidth,
3311 width: childrenRect.width,
3312 height: childrenRect.height
3313 });
3314 offsets.marginTop = 0;
3315 offsets.marginLeft = 0;
3316 // Subtract margins of documentElement in case it's being used as parent
3317 // we do this only on HTML because it's the only element that behaves
3318 // differently when margins are applied to it. The margins are included in
3319 // the box of the documentElement, in the other cases not.
3320 if (!isIE10 && isHTML) {
3321 const marginTop = parseFloat(styles.marginTop);
3322 const marginLeft = parseFloat(styles.marginLeft);
3323 offsets.top -= borderTopWidth - marginTop;
3324 offsets.bottom -= borderTopWidth - marginTop;
3325 offsets.left -= borderLeftWidth - marginLeft;
3326 offsets.right -= borderLeftWidth - marginLeft;
3327 // Attach marginTop and marginLeft because in some circumstances we may need them
3328 offsets.marginTop = marginTop;
3329 offsets.marginLeft = marginLeft;
3330 }
3331 if (isIE10 && !fixedPosition
3332 ? parent.contains(scrollParent)
3333 : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
3334 offsets = includeScroll(offsets, parent);
3335 }
3336 return offsets;
3337}
3338
3339function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {
3340 const html = element.ownerDocument.documentElement;
3341 const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
3342 const width = Math.max(html.clientWidth, window.innerWidth || 0);
3343 const height = Math.max(html.clientHeight, window.innerHeight || 0);
3344 const scrollTop = !excludeScroll ? getScroll(html) : 0;
3345 const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
3346 const offset = {
3347 top: scrollTop - Number(relativeOffset.top) + Number(relativeOffset.marginTop),
3348 left: scrollLeft - Number(relativeOffset.left) + Number(relativeOffset.marginLeft),
3349 width,
3350 height
3351 };
3352 return getClientRect(offset);
3353}
3354
3355/**
3356 * Check if the given element is fixed or is inside a fixed parent
3357 */
3358function isFixed(element) {
3359 const nodeName = element.nodeName;
3360 if (nodeName === 'BODY' || nodeName === 'HTML') {
3361 return false;
3362 }
3363 if (getStyleComputedProperty(element, 'position') === 'fixed') {
3364 return true;
3365 }
3366 return isFixed(getParentNode(element));
3367}
3368
3369/**
3370 * Finds the first parent of an element that has a transformed property defined
3371 */
3372function getFixedPositionOffsetParent(element) {
3373 // This check is needed to avoid errors in case one of the elements isn't defined for any reason
3374 if (!element || !element.parentElement || isIE()) {
3375 return document.documentElement;
3376 }
3377 let el = element.parentElement;
3378 while (el && getStyleComputedProperty(el, 'transform') === 'none') {
3379 el = el.parentElement;
3380 }
3381 return el || document.documentElement;
3382}
3383
3384/**
3385 * Computed the boundaries limits and return them
3386 */
3387function getBoundaries(target, host, padding = 0, boundariesElement, fixedPosition = false) {
3388 // NOTE: 1 DOM access here
3389 let boundaries = { top: 0, left: 0 };
3390 const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);
3391 // Handle viewport case
3392 if (boundariesElement === 'viewport') {
3393 boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
3394 }
3395 else {
3396 // Handle other cases based on DOM element used as boundaries
3397 let boundariesNode;
3398 if (boundariesElement === 'scrollParent') {
3399 boundariesNode = getScrollParent(getParentNode(host));
3400 if (boundariesNode.nodeName === 'BODY') {
3401 boundariesNode = target.ownerDocument.documentElement;
3402 }
3403 }
3404 else if (boundariesElement === 'window') {
3405 boundariesNode = target.ownerDocument.documentElement;
3406 }
3407 else {
3408 boundariesNode = boundariesElement;
3409 }
3410 const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
3411 // In case of HTML, we need a different computation
3412 if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
3413 const { height, width } = getWindowSizes(target.ownerDocument);
3414 boundaries.top += offsets.top - offsets.marginTop;
3415 boundaries.bottom = Number(height) + Number(offsets.top);
3416 boundaries.left += offsets.left - offsets.marginLeft;
3417 boundaries.right = Number(width) + Number(offsets.left);
3418 }
3419 else {
3420 // for all the other DOM elements, this one is good
3421 boundaries = offsets;
3422 }
3423 }
3424 // Add paddings
3425 boundaries.left += padding;
3426 boundaries.top += padding;
3427 boundaries.right -= padding;
3428 boundaries.bottom -= padding;
3429 return boundaries;
3430}
3431
3432/**
3433 * Utility used to transform the `auto` placement to the placement with more
3434 * available space.
3435 */
3436function getArea({ width, height }) {
3437 return width * height;
3438}
3439function computeAutoPlacement(placement, refRect, target, host, allowedPositions = ['top', 'left', 'bottom', 'right'], boundariesElement = 'viewport', padding = 0) {
3440 if (placement.indexOf('auto') === -1) {
3441 return placement;
3442 }
3443 const boundaries = getBoundaries(target, host, padding, boundariesElement);
3444 const rects = {
3445 top: {
3446 width: boundaries.width,
3447 height: refRect.top - boundaries.top
3448 },
3449 right: {
3450 width: boundaries.right - refRect.right,
3451 height: boundaries.height
3452 },
3453 bottom: {
3454 width: boundaries.width,
3455 height: boundaries.bottom - refRect.bottom
3456 },
3457 left: {
3458 width: refRect.left - boundaries.left,
3459 height: boundaries.height
3460 }
3461 };
3462 const sortedAreas = Object.keys(rects)
3463 .map(key => ({
3464 key,
3465 ...rects[key],
3466 area: getArea(rects[key])
3467 }))
3468 .sort((a, b) => b.area - a.area);
3469 let filteredAreas = sortedAreas.filter(({ width, height }) => width >= target.clientWidth && height >= target.clientHeight);
3470 filteredAreas = allowedPositions
3471 .reduce((obj, key) => {
3472 return { ...obj, [key]: filteredAreas[key] };
3473 }, {});
3474 const computedPlacement = filteredAreas.length > 0
3475 ? filteredAreas[0].key
3476 : sortedAreas[0].key;
3477 const variation = placement.split(' ')[1];
3478 target.className = target.className.replace(/auto/g, computedPlacement);
3479 return computedPlacement + (variation ? `-${variation}` : '');
3480}
3481
3482function getOffsets(data) {
3483 return {
3484 width: data.offsets.target.width,
3485 height: data.offsets.target.height,
3486 left: Math.floor(data.offsets.target.left),
3487 top: Math.round(data.offsets.target.top),
3488 bottom: Math.round(data.offsets.target.bottom),
3489 right: Math.floor(data.offsets.target.right)
3490 };
3491}
3492
3493/**
3494 * Get the opposite placement of the given one
3495 */
3496function getOppositePlacement(placement) {
3497 const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
3498 return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);
3499}
3500
3501/**
3502 * Get the opposite placement variation of the given one
3503 */
3504function getOppositeVariation(variation) {
3505 if (variation === 'right') {
3506 return 'left';
3507 }
3508 else if (variation === 'left') {
3509 return 'right';
3510 }
3511 return variation;
3512}
3513
3514/**
3515 * Get the outer sizes of the given element (offset size + margins)
3516 */
3517function getOuterSizes(element) {
3518 const window = element.ownerDocument.defaultView;
3519 const styles = window.getComputedStyle(element);
3520 const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
3521 const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
3522 return {
3523 width: Number(element.offsetWidth) + y,
3524 height: Number(element.offsetHeight) + x
3525 };
3526}
3527
3528/**
3529 * Get offsets to the reference element
3530 */
3531function getReferenceOffsets(target, host, fixedPosition = null) {
3532 const commonOffsetParent = fixedPosition
3533 ? getFixedPositionOffsetParent(target)
3534 : findCommonOffsetParent(target, host);
3535 return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);
3536}
3537
3538/**
3539 * Get offsets to the target
3540 */
3541function getTargetOffsets(target, hostOffsets, position) {
3542 const placement = position.split(' ')[0];
3543 // Get target node sizes
3544 const targetRect = getOuterSizes(target);
3545 // Add position, width and height to our offsets object
3546 const targetOffsets = {
3547 width: targetRect.width,
3548 height: targetRect.height
3549 };
3550 // depending by the target placement we have to compute its offsets slightly differently
3551 const isHoriz = ['right', 'left'].indexOf(placement) !== -1;
3552 const mainSide = isHoriz ? 'top' : 'left';
3553 const secondarySide = isHoriz ? 'left' : 'top';
3554 const measurement = isHoriz ? 'height' : 'width';
3555 const secondaryMeasurement = !isHoriz ? 'height' : 'width';
3556 targetOffsets[mainSide] =
3557 hostOffsets[mainSide] +
3558 hostOffsets[measurement] / 2 -
3559 targetRect[measurement] / 2;
3560 targetOffsets[secondarySide] = placement === secondarySide
3561 ? hostOffsets[secondarySide] - targetRect[secondaryMeasurement]
3562 : hostOffsets[getOppositePlacement(secondarySide)];
3563 return targetOffsets;
3564}
3565
3566/**
3567 * Helper used to know if the given modifier is enabled.
3568 */
3569function isModifierEnabled(options, modifierName) {
3570 return options
3571 && options.modifiers
3572 && options.modifiers[modifierName]
3573 && options.modifiers[modifierName].enabled;
3574}
3575
3576/**
3577 * Tells if a given input is a number
3578 */
3579function isNumeric(n) {
3580 return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
3581}
3582
3583function setStyles(element, styles, renderer) {
3584 Object.keys(styles).forEach((prop) => {
3585 let unit = '';
3586 // add unit if the value is numeric and is one of the following
3587 if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&
3588 isNumeric(styles[prop])) {
3589 unit = 'px';
3590 }
3591 if (renderer) {
3592 renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);
3593 return;
3594 }
3595 element.style[prop] = String(styles[prop]) + unit;
3596 });
3597}
3598
3599function setAllStyles(data, renderer) {
3600 const target = data.instance.target;
3601 const offsets = getOffsets(data);
3602 setStyles(target, {
3603 'will-change': 'transform',
3604 top: '0px',
3605 left: '0px',
3606 transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`
3607 }, renderer);
3608 if (data.instance.arrow) {
3609 setStyles(data.instance.arrow, data.offsets.arrow, renderer);
3610 }
3611 if (data.placementAuto) {
3612 if (renderer) {
3613 renderer.setAttribute(target, 'class', target.className.replace(/bs-popover-auto/g, `bs-popover-${data.placement}`));
3614 renderer.setAttribute(target, 'class', target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${data.placement}`));
3615 renderer.setAttribute(target, 'class', target.className.replace(/\sauto/g, `\s${data.placement}`));
3616 if (target.className.match(/popover/g)) {
3617 renderer.addClass(target, 'popover-auto');
3618 }
3619 if (target.className.match(/tooltip/g)) {
3620 renderer.addClass(target, 'tooltip-auto');
3621 }
3622 }
3623 else {
3624 target.className = target.className.replace(/bs-popover-auto/g, `bs-popover-${data.placement}`);
3625 target.className = target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${data.placement}`);
3626 target.className = target.className.replace(/\sauto/g, `\s${data.placement}`);
3627 if (target.className.match(/popover/g)) {
3628 target.classList.add('popover-auto');
3629 }
3630 if (target.className.match(/tooltip/g)) {
3631 target.classList.add('tooltip-auto');
3632 }
3633 }
3634 }
3635 if (renderer) {
3636 renderer.setAttribute(target, 'class', target.className.replace(/left|right|top|bottom/g, `${data.placement.split(' ')[0]}`));
3637 }
3638 else {
3639 target.className = target.className.replace(/left|right|top|bottom/g, `${data.placement.split(' ')[0]}`);
3640 }
3641}
3642
3643function arrow(data) {
3644 let targetOffsets = data.offsets.target;
3645 // if arrowElement is a string, suppose it's a CSS selector
3646 const arrowElement = data.instance.target.querySelector('.arrow');
3647 // if arrowElement is not found, don't run the modifier
3648 if (!arrowElement) {
3649 return data;
3650 }
3651 const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
3652 const len = isVertical ? 'height' : 'width';
3653 const sideCapitalized = isVertical ? 'Top' : 'Left';
3654 const side = sideCapitalized.toLowerCase();
3655 const altSide = isVertical ? 'left' : 'top';
3656 const opSide = isVertical ? 'bottom' : 'right';
3657 const arrowElementSize = getOuterSizes(arrowElement)[len];
3658 // top/left side
3659 if (data.offsets.host[opSide] - arrowElementSize < targetOffsets[side]) {
3660 targetOffsets[side] -=
3661 targetOffsets[side] - (data.offsets.host[opSide] - arrowElementSize);
3662 }
3663 // bottom/right side
3664 if (Number(data.offsets.host[side]) + Number(arrowElementSize) > targetOffsets[opSide]) {
3665 targetOffsets[side] +=
3666 Number(data.offsets.host[side]) + Number(arrowElementSize) - Number(targetOffsets[opSide]);
3667 }
3668 targetOffsets = getClientRect(targetOffsets);
3669 // compute center of the target
3670 const center = Number(data.offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);
3671 // Compute the sideValue using the updated target offsets
3672 // take target margin in account because we don't have this info available
3673 const css = getStyleComputedProperty(data.instance.target);
3674 const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]);
3675 const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);
3676 let sideValue = center - targetOffsets[side] - targetMarginSide - targetBorderSide;
3677 // prevent arrowElement from being placed not contiguously to its target
3678 sideValue = Math.max(Math.min(targetOffsets[len] - arrowElementSize, sideValue), 0);
3679 data.offsets.arrow = {
3680 [side]: Math.round(sideValue),
3681 [altSide]: '' // make sure to unset any eventual altSide value from the DOM node
3682 };
3683 data.instance.arrow = arrowElement;
3684 return data;
3685}
3686
3687function flip(data) {
3688 data.offsets.target = getClientRect(data.offsets.target);
3689 if (!isModifierEnabled(data.options, 'flip')) {
3690 data.offsets.target = {
3691 ...data.offsets.target,
3692 ...getTargetOffsets(data.instance.target, data.offsets.host, data.placement)
3693 };
3694 return data;
3695 }
3696 const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding
3697 'viewport', false // positionFixed
3698 );
3699 let placement = data.placement.split(' ')[0];
3700 let variation = data.placement.split(' ')[1] || '';
3701 const offsetsHost = data.offsets.host;
3702 const target = data.instance.target;
3703 const host = data.instance.host;
3704 const adaptivePosition = variation
3705 ? computeAutoPlacement('auto', offsetsHost, target, host, ['top', 'bottom'])
3706 : computeAutoPlacement('auto', offsetsHost, target, host);
3707 const flipOrder = [placement, adaptivePosition];
3708 /* eslint-disable-next-line complexity */
3709 flipOrder.forEach((step, index) => {
3710 if (placement !== step || flipOrder.length === index + 1) {
3711 return data;
3712 }
3713 placement = data.placement.split(' ')[0];
3714 // using floor because the host offsets may contain decimals we are not going to consider here
3715 const overlapsRef = (placement === 'left' &&
3716 Math.floor(data.offsets.target.right) > Math.floor(data.offsets.host.left)) ||
3717 (placement === 'right' &&
3718 Math.floor(data.offsets.target.left) < Math.floor(data.offsets.host.right)) ||
3719 (placement === 'top' &&
3720 Math.floor(data.offsets.target.bottom) > Math.floor(data.offsets.host.top)) ||
3721 (placement === 'bottom' &&
3722 Math.floor(data.offsets.target.top) < Math.floor(data.offsets.host.bottom));
3723 const overflowsLeft = Math.floor(data.offsets.target.left) < Math.floor(boundaries.left);
3724 const overflowsRight = Math.floor(data.offsets.target.right) > Math.floor(boundaries.right);
3725 const overflowsTop = Math.floor(data.offsets.target.top) < Math.floor(boundaries.top);
3726 const overflowsBottom = Math.floor(data.offsets.target.bottom) > Math.floor(boundaries.bottom);
3727 const overflowsBoundaries = (placement === 'left' && overflowsLeft) ||
3728 (placement === 'right' && overflowsRight) ||
3729 (placement === 'top' && overflowsTop) ||
3730 (placement === 'bottom' && overflowsBottom);
3731 // flip the variation if required
3732 const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
3733 const flippedVariation = ((isVertical && variation === 'left' && overflowsLeft) ||
3734 (isVertical && variation === 'right' && overflowsRight) ||
3735 (!isVertical && variation === 'left' && overflowsTop) ||
3736 (!isVertical && variation === 'right' && overflowsBottom));
3737 if (overlapsRef || overflowsBoundaries || flippedVariation) {
3738 if (overlapsRef || overflowsBoundaries) {
3739 placement = flipOrder[index + 1];
3740 }
3741 if (flippedVariation) {
3742 variation = getOppositeVariation(variation);
3743 }
3744 data.placement = placement + (variation ? ` ${variation}` : '');
3745 data.offsets.target = {
3746 ...data.offsets.target,
3747 ...getTargetOffsets(data.instance.target, data.offsets.host, data.placement)
3748 };
3749 }
3750 });
3751 return data;
3752}
3753
3754function initData(targetElement, hostElement, position, options) {
3755 const hostElPosition = getReferenceOffsets(targetElement, hostElement);
3756 const placementAuto = !!position.match(/auto/g);
3757 // support old placements 'auto left|right|top|bottom'
3758 let placement = !!position.match(/auto\s(left|right|top|bottom)/g)
3759 ? position.split(' ')[1] || ''
3760 : position;
3761 const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);
3762 placement = computeAutoPlacement(placement, hostElPosition, targetElement, hostElement);
3763 return {
3764 options,
3765 instance: {
3766 target: targetElement,
3767 host: hostElement,
3768 arrow: null
3769 },
3770 offsets: {
3771 target: targetOffset,
3772 host: hostElPosition,
3773 arrow: null
3774 },
3775 positionFixed: false,
3776 placement,
3777 placementAuto
3778 };
3779}
3780
3781function preventOverflow(data) {
3782 if (!isModifierEnabled(data.options, 'preventOverflow')) {
3783 return data;
3784 }
3785 // NOTE: DOM access here
3786 // resets the targetOffsets's position so that the document size can be calculated excluding
3787 // the size of the targetOffsets element itself
3788 const transformProp = 'transform';
3789 const targetStyles = data.instance.target.style; // assignment to help minification
3790 const { top, left, [transformProp]: transform } = targetStyles;
3791 targetStyles.top = '';
3792 targetStyles.left = '';
3793 targetStyles[transformProp] = '';
3794 const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding
3795 'scrollParent', false // positionFixed
3796 );
3797 // NOTE: DOM access here
3798 // restores the original style properties after the offsets have been computed
3799 targetStyles.top = top;
3800 targetStyles.left = left;
3801 targetStyles[transformProp] = transform;
3802 const order = ['left', 'right', 'top', 'bottom'];
3803 const check = {
3804 primary(placement) {
3805 let value = data.offsets.target[placement];
3806 if (data.offsets.target[placement] < boundaries[placement] &&
3807 !false // options.escapeWithReference
3808 ) {
3809 value = Math.max(data.offsets.target[placement], boundaries[placement]);
3810 }
3811 return { [placement]: value };
3812 },
3813 secondary(placement) {
3814 const mainSide = placement === 'right' ? 'left' : 'top';
3815 let value = data.offsets.target[mainSide];
3816 if (data.offsets.target[placement] > boundaries[placement] &&
3817 !false // escapeWithReference
3818 ) {
3819 value = Math.min(data.offsets.target[mainSide], boundaries[placement] -
3820 (placement === 'right' ? data.offsets.target.width : data.offsets.target.height));
3821 }
3822 return { [mainSide]: value };
3823 }
3824 };
3825 let side;
3826 order.forEach(placement => {
3827 side = ['left', 'top']
3828 .indexOf(placement) !== -1
3829 ? 'primary'
3830 : 'secondary';
3831 data.offsets.target = { ...data.offsets.target, ...check[side](placement) };
3832 });
3833 return data;
3834}
3835
3836function shift(data) {
3837 const placement = data.placement;
3838 const basePlacement = placement.split(' ')[0];
3839 const shiftvariation = placement.split(' ')[1];
3840 if (shiftvariation) {
3841 const { host, target } = data.offsets;
3842 const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
3843 const side = isVertical ? 'left' : 'top';
3844 const measurement = isVertical ? 'width' : 'height';
3845 const shiftOffsets = {
3846 left: { [side]: host[side] },
3847 right: {
3848 [side]: host[side] + host[measurement] - host[measurement]
3849 }
3850 };
3851 data.offsets.target = { ...target, ...shiftOffsets[shiftvariation] };
3852 }
3853 return data;
3854}
3855
3856class Positioning {
3857 position(hostElement, targetElement) {
3858 return this.offset(hostElement, targetElement);
3859 }
3860 offset(hostElement, targetElement) {
3861 return getReferenceOffsets(targetElement, hostElement);
3862 }
3863 positionElements(hostElement, targetElement, position, _appendToBody, options) {
3864 const chainOfModifiers = [flip, shift, preventOverflow, arrow];
3865 return chainOfModifiers.reduce((modifiedData, modifier) => modifier(modifiedData), initData(targetElement, hostElement, position, options));
3866 }
3867}
3868const positionService = new Positioning();
3869function positionElements(hostElement, targetElement, placement, appendToBody, options, renderer) {
3870 const data = positionService.positionElements(hostElement, targetElement, placement, appendToBody, options);
3871 setAllStyles(data, renderer);
3872}
3873
3874class PositioningService {
3875 constructor(rendererFactory, platformId, _ngZone) {
3876 this._ngZone = _ngZone;
3877 this.update$$ = new Subject();
3878 this.positionElements = new Map();
3879 if (isPlatformBrowser(platformId)) {
3880 this._ngZone.runOutsideAngular(() => {
3881 merge(fromEvent(window, 'scroll'), fromEvent(window, 'resize'), of(0, animationFrameScheduler), this.update$$).subscribe(() => {
3882 this.positionElements.forEach((positionElement) => {
3883 positionElements(_getHtmlElement(positionElement.target), _getHtmlElement(positionElement.element), positionElement.attachment, positionElement.appendToBody, this.options, rendererFactory.createRenderer(null, null));
3884 });
3885 });
3886 });
3887 }
3888 }
3889 position(options) {
3890 this.addPositionElement(options);
3891 }
3892 addPositionElement(options) {
3893 this.positionElements.set(_getHtmlElement(options.element), options);
3894 }
3895 calcPosition() {
3896 this.update$$.next();
3897 }
3898 deletePositionElement(elRef) {
3899 this.positionElements.delete(_getHtmlElement(elRef));
3900 }
3901 setOptions(options) {
3902 this.options = options;
3903 }
3904}
3905PositioningService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PositioningService, deps: [{ token: i0.RendererFactory2 }, { token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
3906PositioningService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PositioningService });
3907i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PositioningService, decorators: [{
3908 type: Injectable
3909 }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: undefined, decorators: [{
3910 type: Inject,
3911 args: [PLATFORM_ID]
3912 }] }, { type: i0.NgZone }]; } });
3913function _getHtmlElement(element) {
3914 // it means that we got a selector
3915 if (element && typeof element === 'string') {
3916 return document.querySelector(element);
3917 }
3918 if (element instanceof ElementRef) {
3919 return element.nativeElement;
3920 }
3921 return element;
3922}
3923
3924class ComponentLoaderFactory {
3925 constructor(_componentFactoryResolver, _ngZone, _injector, _posService, _applicationRef) {
3926 this._componentFactoryResolver = _componentFactoryResolver;
3927 this._ngZone = _ngZone;
3928 this._injector = _injector;
3929 this._posService = _posService;
3930 this._applicationRef = _applicationRef;
3931 }
3932 createLoader(_elementRef, _viewContainerRef, _renderer) {
3933 return new ComponentLoader(_viewContainerRef, _renderer, _elementRef, this._injector, this._componentFactoryResolver, this._ngZone, this._applicationRef, this._posService);
3934 }
3935}
3936ComponentLoaderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ComponentLoaderFactory, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.NgZone }, { token: i0.Injector }, { token: PositioningService }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
3937ComponentLoaderFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ComponentLoaderFactory });
3938i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ComponentLoaderFactory, decorators: [{
3939 type: Injectable
3940 }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.NgZone }, { type: i0.Injector }, { type: PositioningService }, { type: i0.ApplicationRef }]; } });
3941
3942/** Default dropdown configuration */
3943class BsDropdownConfig {
3944 constructor() {
3945 /** default dropdown auto closing behavior */
3946 this.autoClose = true;
3947 }
3948}
3949BsDropdownConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3950BsDropdownConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownConfig });
3951i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownConfig, decorators: [{
3952 type: Injectable
3953 }] });
3954
3955// eslint-disable-next-line @angular-eslint/component-class-suffix
3956class BsDropdownDirective {
3957 constructor(_elementRef, _renderer, _viewContainerRef, _cis, _config, _state, cdRef) {
3958 this._elementRef = _elementRef;
3959 this._renderer = _renderer;
3960 this._viewContainerRef = _viewContainerRef;
3961 this._cis = _cis;
3962 this._config = _config;
3963 this._state = _state;
3964 this.cdRef = cdRef;
3965 this._dropup = false;
3966 this._dropupDefault = false;
3967 this._dynamicPosition = false;
3968 this._destroy$ = new Subject();
3969 this._isInlineOpen = false;
3970 this._subscriptions = [];
3971 this._isInited = false;
3972 // create dropdown component loader
3973 this._dropdown = this._cis
3974 .createLoader(this._elementRef, this._viewContainerRef, this._renderer)
3975 .provide({ provide: BsDropdownState, useValue: this._state });
3976 this.onShown = this._dropdown.onShown;
3977 this.shown = this._dropdown.shown;
3978 this.onHidden = this._dropdown.onHidden;
3979 this.hidden = this._dropdown.hidden;
3980 this.isOpenChange = this._state.isOpenChange;
3981 // set initial dropdown state from config
3982 this._state.autoClose = this._config.autoClose;
3983 }
3984 get dropup() {
3985 return this._dropup;
3986 }
3987 set dropup(value) {
3988 this._dropup = coerceBooleanProperty(value);
3989 }
3990 get dropupDefault() {
3991 return this._dropupDefault;
3992 }
3993 set dropupDefault(value) {
3994 this._dropupDefault = coerceBooleanProperty(value);
3995 }
3996 get dynamicPosition() {
3997 return this._dynamicPosition;
3998 }
3999 set dynamicPosition(value) {
4000 this._dynamicPosition = coerceBooleanProperty(value);
4001 }
4002 /**
4003 * This attribute indicates that the dropdown should be opened upwards
4004 */
4005 get isDropup() {
4006 if (this.dropup) {
4007 this._isDropupDefault = false;
4008 return this.dropup;
4009 }
4010 else if (this.dropupDefault) {
4011 this._isDropupDefault = true;
4012 return this.dropupDefault;
4013 }
4014 else if (this.dropupDefault && this.dropup) {
4015 this._isDropupDefault = false;
4016 return this.dropup;
4017 }
4018 }
4019 /**
4020 * Indicates that dropdown will be closed on item or document click,
4021 * and after pressing ESC
4022 */
4023 set autoClose(value) {
4024 this._state.autoClose = coerceBooleanProperty(value);
4025 }
4026 get autoClose() {
4027 return this._state.autoClose;
4028 }
4029 /**
4030 * Disables dropdown toggle and hides dropdown menu if opened
4031 */
4032 set isDisabled(value) {
4033 const isDisabled = coerceBooleanProperty(value);
4034 this._isDisabled = isDisabled;
4035 this._state.isDisabledChange.emit(isDisabled);
4036 if (isDisabled) {
4037 this.hide();
4038 }
4039 }
4040 get isDisabled() {
4041 return this._isDisabled;
4042 }
4043 /**
4044 * Returns whether or not the popover is currently being shown
4045 */
4046 get isOpen() {
4047 if (this._showInline) {
4048 return this._isInlineOpen;
4049 }
4050 return this._dropdown.isShown;
4051 }
4052 set isOpen(value) {
4053 const isOpen = coerceBooleanProperty(value);
4054 if (isOpen) {
4055 this.show();
4056 }
4057 else {
4058 this.hide();
4059 }
4060 }
4061 get isBs4() {
4062 return !isBs3$1();
4063 }
4064 ngOnInit() {
4065 // fix: seems there are an issue with `routerLinkActive`
4066 // which result in duplicated call ngOnInit without call to ngOnDestroy
4067 // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885
4068 if (this._isInited) {
4069 return;
4070 }
4071 this._isInited = true;
4072 this._showInline = !this.container;
4073 this._dropup = this.dropup;
4074 // attach DOM listeners
4075 this._dropdown.listen({
4076 triggers: this.triggers,
4077 show: () => this.show(),
4078 });
4079 // toggle visibility on toggle element click
4080 this._state.toggleClick
4081 .pipe(takeUntil(this._destroy$))
4082 .subscribe((value) => this.toggle(value));
4083 // hide dropdown if set disabled while opened
4084 this._state.isDisabledChange.pipe(takeUntil(this._destroy$)).subscribe((element) => {
4085 if (element === true) {
4086 this.hide();
4087 }
4088 });
4089 // attach dropdown menu inside of dropdown
4090 if (this._showInline) {
4091 this._state.dropdownMenu.then((dropdownMenu) => {
4092 this._inlinedMenu = dropdownMenu.viewContainer.createEmbeddedView(dropdownMenu.templateRef);
4093 });
4094 }
4095 this._state.isOpenChange.pipe(takeUntil(this._destroy$)).subscribe(() => {
4096 setTimeout(() => {
4097 const dropdownContainer = this._elementRef.nativeElement.querySelector('.dropdown-menu');
4098 const left = dropdownContainer.getBoundingClientRect().left;
4099 if (dropdownContainer.classList.contains('dropdown-menu-right') &&
4100 left <= dropdownContainer.clientWidth) {
4101 if (left < 0) {
4102 this._renderer.setStyle(dropdownContainer, 'right', left + 'px');
4103 }
4104 else {
4105 this._renderer.setStyle(dropdownContainer, 'right', '0');
4106 }
4107 }
4108 }, 0);
4109 });
4110 }
4111 /**
4112 * Opens an element’s popover. This is considered a “manual” triggering of
4113 * the popover.
4114 */
4115 show() {
4116 if (this.isOpen || this.isDisabled) {
4117 return;
4118 }
4119 // material and dropup dropdown animation
4120 const button = this._elementRef.nativeElement.children[0];
4121 const container = this._elementRef.nativeElement.querySelector('.dropdown-menu');
4122 if (!container.parentNode.classList.contains('btn-group') &&
4123 !container.parentNode.classList.contains('dropdown') &&
4124 !this._isDropupDefault) {
4125 container.parentNode.classList.add('dropdown');
4126 }
4127 if (this.dropup && !this._isDropupDefault) {
4128 container.parentNode.classList.add('dropup-material');
4129 }
4130 if (button.tagName !== 'BUTTON') {
4131 if (button.tagName === 'A') {
4132 container.classList.add('a-various-dropdown');
4133 }
4134 else {
4135 container.classList.add('various-dropdown');
4136 }
4137 }
4138 else {
4139 if (button.classList.contains('btn-sm')) {
4140 container.classList.add('small-dropdown');
4141 }
4142 if (button.classList.contains('btn-md')) {
4143 container.classList.add('medium-dropdown');
4144 }
4145 if (button.classList.contains('btn-lg')) {
4146 container.classList.add('large-dropdown');
4147 }
4148 }
4149 setTimeout(() => {
4150 container.classList.add('fadeInDropdown');
4151 if (this.dynamicPosition) {
4152 const bounding = container.getBoundingClientRect();
4153 const out = {
4154 top: bounding.top < 0,
4155 bottom: bounding.bottom > (window.innerHeight || document.documentElement.clientHeight),
4156 };
4157 if (this.dropup && out.top) {
4158 this.dropup = false;
4159 }
4160 else if (!this.dropup && out.bottom) {
4161 this.dropup = true;
4162 }
4163 }
4164 }, 0);
4165 if (this._showInline) {
4166 this._isInlineOpen = true;
4167 if (container.parentNode.classList.contains('dropdown') ||
4168 container.parentNode.classList.contains('dropup-material')) {
4169 setTimeout(() => {
4170 this.onShown.emit(true);
4171 this.shown.emit(true);
4172 }, 560);
4173 }
4174 else {
4175 setTimeout(() => {
4176 this.onShown.emit(true);
4177 this.shown.emit(true);
4178 }, 0);
4179 }
4180 this._state.isOpenChange.emit(true);
4181 return;
4182 }
4183 this._state.dropdownMenu.then((dropdownMenu) => {
4184 // check direction in which dropdown should be opened
4185 const _dropup = this.dropup === true || this.dropupDefault === true;
4186 this._state.direction = _dropup ? 'up' : 'down';
4187 const _placement = this.placement || (_dropup ? 'top left' : 'bottom left');
4188 // show dropdown
4189 this._dropdown
4190 .attach(BsDropdownContainerComponent)
4191 .to(this.container)
4192 .position({ attachment: _placement })
4193 .show({
4194 content: dropdownMenu.templateRef,
4195 placement: _placement,
4196 });
4197 this._state.isOpenChange.emit(true);
4198 });
4199 }
4200 /**
4201 * Closes an element’s popover. This is considered a “manual” triggering of
4202 * the popover.
4203 */
4204 hide() {
4205 if (!this.isOpen) {
4206 return;
4207 }
4208 if (this.dropup !== this._dropup) {
4209 this.dropup = this._dropup;
4210 }
4211 const container = this._elementRef.nativeElement.querySelector('.dropdown-menu');
4212 container.classList.remove('fadeInDropdown');
4213 if (container.parentNode.classList.contains('dropdown') ||
4214 container.parentNode.classList.contains('dropup-material')) {
4215 setTimeout(() => {
4216 if (this._showInline) {
4217 this._isInlineOpen = false;
4218 this.onHidden.emit(true);
4219 this.hidden.emit(true);
4220 this.cdRef.markForCheck();
4221 }
4222 else {
4223 this._dropdown.hide();
4224 }
4225 this._state.isOpenChange.emit(false);
4226 }, 560);
4227 }
4228 else {
4229 setTimeout(() => {
4230 if (this._showInline) {
4231 this._isInlineOpen = false;
4232 this.onHidden.emit(true);
4233 this.hidden.emit(true);
4234 this.cdRef.markForCheck();
4235 }
4236 else {
4237 this._dropdown.hide();
4238 }
4239 this._state.isOpenChange.emit(false);
4240 }, 0);
4241 }
4242 }
4243 /**
4244 * Toggles an element’s popover. This is considered a “manual” triggering of
4245 * the popover.
4246 */
4247 toggle(value) {
4248 if (this.isOpen || value === false) {
4249 return this.hide();
4250 }
4251 return this.show();
4252 }
4253 ngOnDestroy() {
4254 // clean up subscriptions and destroy dropdown
4255 this._destroy$.next();
4256 this._destroy$.complete();
4257 this._dropdown.dispose();
4258 }
4259}
4260BsDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: ComponentLoaderFactory }, { token: BsDropdownConfig }, { token: BsDropdownState }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4261BsDropdownDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: BsDropdownDirective, selector: "[mdbDropdown],[dropdown]", inputs: { placement: "placement", triggers: "triggers", container: "container", dropup: "dropup", dropupDefault: "dropupDefault", dynamicPosition: "dynamicPosition", autoClose: "autoClose", isDisabled: "isDisabled", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", onShown: "onShown", shown: "shown", onHidden: "onHidden", hidden: "hidden" }, host: { properties: { "class.dropup": "this.isDropup", "class.open": "this.isOpen", "class.show": "this.isOpen" } }, providers: [BsDropdownState], exportAs: ["bs-dropdown"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".dropdown-menu .dropdown-item:active{background-color:#757575}.show>.dropdown-menu{display:block}.show>a{outline:0}.dropdown-menu{display:none;position:absolute;margin-top:5px;left:0px;will-change:transform}.various-dropdown{transform:translate3d(0,21px,0)!important}.a-various-dropdown{transform:translate3d(0,29px,0)!important}.medium-dropdown{transform:translate3d(0,36px,0)!important}.small-dropdown{transform:translate3d(5px,34px,0)!important}.large-dropdown{transform:translate3d(5px,57px,0)!important}.btn-group>.dropdown-menu{transform:translate3d(0,43px,0)}.dropup>.dropdown-menu{display:none;transform:translate3d(117px,0,0)!important;will-change:transform}.dropup.show .dropdown-menu{display:block;opacity:0}.dropup.show .fadeInDropdown{opacity:1}.dropup-material.show .dropdown-menu{transition:.55s}.dropdown-menu{display:none;position:absolute;transform:translate3d(6px,49px,0);top:0px;left:0px;will-change:transform}.dropdown.show .dropdown-menu{display:block;opacity:0;transition:.55s}.dropdown.show .fadeInDropdown{opacity:1}\n"], encapsulation: i0.ViewEncapsulation.None });
4262i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownDirective, decorators: [{
4263 type: Component,
4264 args: [{ selector: '[mdbDropdown],[dropdown]', exportAs: 'bs-dropdown', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, providers: [BsDropdownState], styles: [".dropdown-menu .dropdown-item:active{background-color:#757575}.show>.dropdown-menu{display:block}.show>a{outline:0}.dropdown-menu{display:none;position:absolute;margin-top:5px;left:0px;will-change:transform}.various-dropdown{transform:translate3d(0,21px,0)!important}.a-various-dropdown{transform:translate3d(0,29px,0)!important}.medium-dropdown{transform:translate3d(0,36px,0)!important}.small-dropdown{transform:translate3d(5px,34px,0)!important}.large-dropdown{transform:translate3d(5px,57px,0)!important}.btn-group>.dropdown-menu{transform:translate3d(0,43px,0)}.dropup>.dropdown-menu{display:none;transform:translate3d(117px,0,0)!important;will-change:transform}.dropup.show .dropdown-menu{display:block;opacity:0}.dropup.show .fadeInDropdown{opacity:1}.dropup-material.show .dropdown-menu{transition:.55s}.dropdown-menu{display:none;position:absolute;transform:translate3d(6px,49px,0);top:0px;left:0px;will-change:transform}.dropdown.show .dropdown-menu{display:block;opacity:0;transition:.55s}.dropdown.show .fadeInDropdown{opacity:1}\n"] }]
4265 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: ComponentLoaderFactory }, { type: BsDropdownConfig }, { type: BsDropdownState }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { placement: [{
4266 type: Input
4267 }], triggers: [{
4268 type: Input
4269 }], container: [{
4270 type: Input
4271 }], dropup: [{
4272 type: Input
4273 }], dropupDefault: [{
4274 type: Input
4275 }], dynamicPosition: [{
4276 type: Input
4277 }], isDropup: [{
4278 type: HostBinding,
4279 args: ['class.dropup']
4280 }], autoClose: [{
4281 type: Input
4282 }], isDisabled: [{
4283 type: Input
4284 }], isOpen: [{
4285 type: HostBinding,
4286 args: ['class.open']
4287 }, {
4288 type: HostBinding,
4289 args: ['class.show']
4290 }, {
4291 type: Input
4292 }], isOpenChange: [{
4293 type: Output
4294 }], onShown: [{
4295 type: Output
4296 }], shown: [{
4297 type: Output
4298 }], onHidden: [{
4299 type: Output
4300 }], hidden: [{
4301 type: Output
4302 }] } });
4303class BsDropdownContainerComponent {
4304 constructor(_state) {
4305 this._state = _state;
4306 this.isOpen = false;
4307 this.display = 'block';
4308 this.position = 'absolute';
4309 this._subscription = _state.isOpenChange.subscribe((value) => {
4310 this.isOpen = value;
4311 });
4312 }
4313 get direction() {
4314 return this._state.direction;
4315 }
4316 ngOnDestroy() {
4317 this._subscription.unsubscribe();
4318 }
4319}
4320BsDropdownContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownContainerComponent, deps: [{ token: BsDropdownState }], target: i0.ɵɵFactoryTarget.Component });
4321BsDropdownContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: BsDropdownContainerComponent, selector: "mdb-dropdown-container", host: { properties: { "style.display": "this.display", "style.position": "this.position" } }, ngImport: i0, template: `
4322 <div
4323 [class.dropup]="direction === 'up'"
4324 [class.dropdown]="direction === 'down'"
4325 [class.show]="isOpen"
4326 [class.open]="isOpen"
4327 >
4328 <ng-content></ng-content>
4329 </div>
4330 `, isInline: true, components: [{ type: BsDropdownDirective, selector: "[mdbDropdown],[dropdown]", inputs: ["placement", "triggers", "container", "dropup", "dropupDefault", "dynamicPosition", "autoClose", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "shown", "onHidden", "hidden"], exportAs: ["bs-dropdown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4331i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownContainerComponent, decorators: [{
4332 type: Component,
4333 args: [{
4334 selector: 'mdb-dropdown-container',
4335 changeDetection: ChangeDetectionStrategy.OnPush,
4336 template: `
4337 <div
4338 [class.dropup]="direction === 'up'"
4339 [class.dropdown]="direction === 'down'"
4340 [class.show]="isOpen"
4341 [class.open]="isOpen"
4342 >
4343 <ng-content></ng-content>
4344 </div>
4345 `,
4346 }]
4347 }], ctorParameters: function () { return [{ type: BsDropdownState }]; }, propDecorators: { display: [{
4348 type: HostBinding,
4349 args: ['style.display']
4350 }], position: [{
4351 type: HostBinding,
4352 args: ['style.position']
4353 }] } });
4354
4355class BsDropdownMenuDirective {
4356 constructor(_state, _viewContainer, _templateRef) {
4357 _state.resolveDropdownMenu({
4358 templateRef: _templateRef,
4359 viewContainer: _viewContainer
4360 });
4361 }
4362}
4363BsDropdownMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownMenuDirective, deps: [{ token: BsDropdownState }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
4364BsDropdownMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: BsDropdownMenuDirective, selector: "[mdbDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"], ngImport: i0 });
4365i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{
4366 type: Directive,
4367 args: [{
4368 selector: '[mdbDropdownMenu],[dropdownMenu]',
4369 exportAs: 'bs-dropdown-menu'
4370 }]
4371 }], ctorParameters: function () { return [{ type: BsDropdownState }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; } });
4372
4373class BsDropdownToggleDirective {
4374 constructor(_state, _element, _renderer, _cdRef) {
4375 this._state = _state;
4376 this._element = _element;
4377 this._renderer = _renderer;
4378 this._cdRef = _cdRef;
4379 this._subscriptions = [];
4380 this.ariaHaspopup = true;
4381 this.isDisabled = null;
4382 // sync is open value with state
4383 this._state.isOpenChange.subscribe((value) => {
4384 this.isOpen = value;
4385 if (value) {
4386 this._documentClickListener = this._renderer.listen('document', 'click', (event) => {
4387 if (this._state.autoClose &&
4388 event.button !== 2 &&
4389 !this._element.nativeElement.contains(event.target)) {
4390 this._state.toggleClick.emit(false);
4391 this._cdRef.detectChanges();
4392 }
4393 });
4394 this._escKeyUpListener = this._renderer.listen(this._element.nativeElement, 'keyup.esc', () => {
4395 if (this._state.autoClose) {
4396 this._state.toggleClick.emit(false);
4397 this._cdRef.detectChanges();
4398 }
4399 });
4400 }
4401 else {
4402 this._documentClickListener();
4403 this._escKeyUpListener();
4404 }
4405 });
4406 // populate disabled state
4407 this._subscriptions.push(this._state.isDisabledChange.subscribe((value) => (this.isDisabled = value || null)));
4408 }
4409 onClick() {
4410 if (this.isDisabled) {
4411 return;
4412 }
4413 this._state.toggleClick.emit();
4414 }
4415 ngOnDestroy() {
4416 if (this._documentClickListener) {
4417 this._documentClickListener();
4418 }
4419 if (this._escKeyUpListener) {
4420 this._escKeyUpListener();
4421 }
4422 for (const sub of this._subscriptions) {
4423 sub.unsubscribe();
4424 }
4425 }
4426}
4427BsDropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownToggleDirective, deps: [{ token: BsDropdownState }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
4428BsDropdownToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: BsDropdownToggleDirective, selector: "[mdbDropdownToggle],[dropdownToggle]", host: { listeners: { "click": "onClick()" }, properties: { "attr.aria-haspopup": "this.ariaHaspopup", "attr.disabled": "this.isDisabled", "attr.aria-expanded": "this.isOpen" } }, exportAs: ["bs-dropdown-toggle"], ngImport: i0 });
4429i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BsDropdownToggleDirective, decorators: [{
4430 type: Directive,
4431 args: [{
4432 selector: '[mdbDropdownToggle],[dropdownToggle]',
4433 exportAs: 'bs-dropdown-toggle',
4434 }]
4435 }], ctorParameters: function () { return [{ type: BsDropdownState }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { ariaHaspopup: [{
4436 type: HostBinding,
4437 args: ['attr.aria-haspopup']
4438 }], isDisabled: [{
4439 type: HostBinding,
4440 args: ['attr.disabled']
4441 }], isOpen: [{
4442 type: HostBinding,
4443 args: ['attr.aria-expanded']
4444 }], onClick: [{
4445 type: HostListener,
4446 args: ['click']
4447 }] } });
4448
4449class DropdownModule {
4450 static forRoot(config) {
4451 return {
4452 ngModule: DropdownModule,
4453 providers: [
4454 ComponentLoaderFactory,
4455 PositioningService,
4456 BsDropdownState,
4457 { provide: BsDropdownConfig, useValue: config ? config : { autoClose: true } },
4458 ],
4459 };
4460 }
4461}
4462DropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4463DropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DropdownModule, declarations: [BsDropdownMenuDirective,
4464 BsDropdownToggleDirective,
4465 BsDropdownContainerComponent,
4466 BsDropdownDirective], exports: [BsDropdownMenuDirective, BsDropdownToggleDirective, BsDropdownDirective] });
4467DropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DropdownModule });
4468i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DropdownModule, decorators: [{
4469 type: NgModule,
4470 args: [{
4471 declarations: [
4472 BsDropdownMenuDirective,
4473 BsDropdownToggleDirective,
4474 BsDropdownContainerComponent,
4475 BsDropdownDirective,
4476 ],
4477 exports: [BsDropdownMenuDirective, BsDropdownToggleDirective, BsDropdownDirective],
4478 entryComponents: [BsDropdownContainerComponent],
4479 }]
4480 }] });
4481
4482/* eslint-disable no-invalid-this */
4483function OnChange() {
4484 const sufix = 'Change';
4485 return function OnChangeHandler(target, propertyKey) {
4486 const _key = ` __${propertyKey}Value`;
4487 Object.defineProperty(target, propertyKey, {
4488 get() { return this[_key]; },
4489 set(value) {
4490 const prevValue = this[_key];
4491 this[_key] = value;
4492 if (prevValue !== value && this[propertyKey + sufix]) {
4493 this[propertyKey + sufix].emit(value);
4494 }
4495 }
4496 });
4497 };
4498}
4499/* eslint-enable */
4500
4501class LinkedList {
4502 constructor() {
4503 // public length: = 0;
4504 this.length = 0;
4505 this.asArray = [];
4506 // Array methods overriding END
4507 }
4508 getNode(position) {
4509 if (this.length === 0 || position < 0 || position >= this.length) {
4510 throw new Error('Position is out of the list');
4511 }
4512 let current = this.head;
4513 for (let index = 0; index < position; index++) {
4514 current = current.next;
4515 }
4516 return current;
4517 }
4518 createInternalArrayRepresentation() {
4519 const outArray = [];
4520 let current = this.head;
4521 while (current) {
4522 outArray.push(current.value);
4523 current = current.next;
4524 }
4525 this.asArray = outArray;
4526 }
4527 // public get(position: number): T {
4528 get(position) {
4529 if (this.length === 0 || position < 0 || position >= this.length) {
4530 return void 0;
4531 }
4532 let current = this.head;
4533 for (let index = 0; index < position; index++) {
4534 current = current.next;
4535 }
4536 return current.value;
4537 }
4538 add(value, position = this.length) {
4539 if (position < 0 || position > this.length) {
4540 throw new Error('Position is out of the list');
4541 }
4542 const node = {
4543 value: value,
4544 next: undefined,
4545 previous: undefined
4546 };
4547 if (this.length === 0) {
4548 this.head = node;
4549 this.tail = node;
4550 this.current = node;
4551 }
4552 else {
4553 if (position === 0) {
4554 // first node
4555 node.next = this.head;
4556 this.head.previous = node;
4557 this.head = node;
4558 }
4559 else if (position === this.length) {
4560 // last node
4561 this.tail.next = node;
4562 node.previous = this.tail;
4563 this.tail = node;
4564 }
4565 else {
4566 // node in middle
4567 const currentPreviousNode = this.getNode(position - 1);
4568 const currentNextNode = currentPreviousNode.next;
4569 currentPreviousNode.next = node;
4570 currentNextNode.previous = node;
4571 node.previous = currentPreviousNode;
4572 node.next = currentNextNode;
4573 }
4574 }
4575 this.length++;
4576 this.createInternalArrayRepresentation();
4577 }
4578 remove(position = 0) {
4579 if (this.length === 0 || position < 0 || position >= this.length) {
4580 throw new Error('Position is out of the list');
4581 }
4582 if (position === 0) {
4583 // first node
4584 this.head = this.head.next;
4585 if (this.head) {
4586 // there is no second node
4587 this.head.previous = undefined;
4588 }
4589 else {
4590 // there is no second node
4591 this.tail = undefined;
4592 }
4593 }
4594 else if (position === this.length - 1) {
4595 // last node
4596 this.tail = this.tail.previous;
4597 this.tail.next = undefined;
4598 }
4599 else {
4600 // middle node
4601 const removedNode = this.getNode(position);
4602 removedNode.next.previous = removedNode.previous;
4603 removedNode.previous.next = removedNode.next;
4604 }
4605 this.length--;
4606 this.createInternalArrayRepresentation();
4607 }
4608 set(position, value) {
4609 if (this.length === 0 || position < 0 || position >= this.length) {
4610 throw new Error('Position is out of the list');
4611 }
4612 const node = this.getNode(position);
4613 node.value = value;
4614 this.createInternalArrayRepresentation();
4615 }
4616 toArray() {
4617 return this.asArray;
4618 }
4619 findAll(fn) {
4620 let current = this.head;
4621 const result = [];
4622 for (let index = 0; index < this.length; index++) {
4623 if (fn(current.value, index)) {
4624 result.push({ index, value: current.value });
4625 }
4626 current = current.next;
4627 }
4628 return result;
4629 }
4630 // Array methods overriding start
4631 push(...args) {
4632 args.forEach((arg) => {
4633 this.add(arg);
4634 });
4635 return this.length;
4636 }
4637 // public pop(): T {
4638 pop() {
4639 if (this.length === 0) {
4640 return undefined;
4641 }
4642 const last = this.tail;
4643 this.remove(this.length - 1);
4644 return last.value;
4645 }
4646 unshift(...args) {
4647 args.reverse();
4648 args.forEach((arg) => {
4649 this.add(arg, 0);
4650 });
4651 return this.length;
4652 }
4653 // public shift(): T {
4654 shift() {
4655 if (this.length === 0) {
4656 return undefined;
4657 }
4658 const lastItem = this.head.value;
4659 this.remove();
4660 return lastItem;
4661 }
4662 forEach(fn) {
4663 let current = this.head;
4664 for (let index = 0; index < this.length; index++) {
4665 fn(current.value, index);
4666 current = current.next;
4667 }
4668 }
4669 indexOf(value) {
4670 let current = this.head;
4671 let position = 0;
4672 for (let index = 0; index < this.length; index++) {
4673 if (current.value === value) {
4674 position = index;
4675 break;
4676 }
4677 current = current.next;
4678 }
4679 return position;
4680 }
4681 some(fn) {
4682 let current = this.head;
4683 let result = false;
4684 while (current && !result) {
4685 if (fn(current.value)) {
4686 result = true;
4687 break;
4688 }
4689 current = current.next;
4690 }
4691 return result;
4692 }
4693 every(fn) {
4694 let current = this.head;
4695 let result = true;
4696 while (current && result) {
4697 if (!fn(current.value)) {
4698 result = false;
4699 }
4700 current = current.next;
4701 }
4702 return result;
4703 }
4704 toString() {
4705 return '[Linked List]';
4706 }
4707 // public find(fn: any): T {
4708 find(fn) {
4709 let current = this.head;
4710 // let result: T;
4711 let result;
4712 for (let index = 0; index < this.length; index++) {
4713 if (fn(current.value, index)) {
4714 result = current.value;
4715 break;
4716 }
4717 current = current.next;
4718 }
4719 return result;
4720 }
4721 findIndex(fn) {
4722 let current = this.head;
4723 // let result: number;
4724 let result;
4725 for (let index = 0; index < this.length; index++) {
4726 if (fn(current.value, index)) {
4727 result = index;
4728 break;
4729 }
4730 current = current.next;
4731 }
4732 return result;
4733 }
4734}
4735
4736/**
4737 * @copyright Valor Software
4738 * @copyright Angular ng-bootstrap team
4739 */
4740class Trigger {
4741 constructor(open, close) {
4742 this.open = open;
4743 this.close = close || open;
4744 }
4745 isManual() { return this.open === 'manual' || this.close === 'manual'; }
4746}
4747
4748class Utils {
4749 constructor() {
4750 }
4751 static reflow(element) {
4752 ((bs) => bs)(element.offsetHeight);
4753 }
4754 // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js
4755 static getStyles(elem) {
4756 // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
4757 // IE throws on elements created in popups
4758 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
4759 let view = elem.ownerDocument.defaultView;
4760 if (!view || !view.opener) {
4761 view = win$1;
4762 }
4763 return view.getComputedStyle(elem);
4764 }
4765 focusTrapModal(event, el) {
4766 let focusableElements;
4767 let firstFocusableElement;
4768 let lastFocusableElement;
4769 const KEYCODE_TAB = 9;
4770 /* eslint-disable-next-line max-len */
4771 focusableElements = el.nativeElement.querySelectorAll('a[href], button, textarea, input, select, form, mdb-select, mdb-auto-completer, mdb-checkbox, mdb-range-input');
4772 firstFocusableElement = focusableElements[0];
4773 lastFocusableElement = focusableElements[focusableElements.length - 1];
4774 if (event.key === 'Tab' || event.keyCode === KEYCODE_TAB) {
4775 if (event.shiftKey) {
4776 if (document$2 && document$2.activeElement === firstFocusableElement) {
4777 lastFocusableElement.focus();
4778 event.preventDefault();
4779 }
4780 }
4781 else {
4782 if (document$2 && document$2.activeElement === lastFocusableElement) {
4783 firstFocusableElement.focus();
4784 event.preventDefault();
4785 }
4786 }
4787 }
4788 }
4789 getClosestEl(el, selector) {
4790 for (; el && el !== document$2; el = el.parentNode) {
4791 if (el.matches && el.matches(selector)) {
4792 return el;
4793 }
4794 }
4795 return null;
4796 }
4797 getCoords(elem) {
4798 const box = elem.getBoundingClientRect();
4799 const body = document$2.body;
4800 const docEl = document$2.documentElement;
4801 const scrollTop = win$1.pageYOffset || docEl.scrollTop || body.scrollTop;
4802 const scrollLeft = win$1.pageXOffset || docEl.scrollLeft || body.scrollLeft;
4803 const clientTop = docEl.clientTop || body.clientTop || 0;
4804 const clientLeft = docEl.clientLeft || body.clientLeft || 0;
4805 const top = box.top + scrollTop - clientTop;
4806 const left = box.left + scrollLeft - clientLeft;
4807 return { top: Math.round(top), left: Math.round(left) };
4808 }
4809}
4810
4811class MdbIconComponent {
4812 constructor(_el, _renderer) {
4813 this._el = _el;
4814 this._renderer = _renderer;
4815 this.fab = false;
4816 this.far = false;
4817 this.fal = false;
4818 this.fad = false;
4819 this.fas = true;
4820 this.sizeClass = '';
4821 this.utils = new Utils();
4822 }
4823 ngOnInit() {
4824 if (this.size) {
4825 this.sizeClass = `fa-${this.size}`;
4826 }
4827 const classList = this._el.nativeElement.classList;
4828 this.fab = classList.contains('fab');
4829 this.far = classList.contains('far');
4830 this.fas = classList.contains('fas');
4831 this.fal = classList.contains('fal');
4832 this.fad = classList.contains('fad');
4833 const formWrapper = this.utils.getClosestEl(this._el.nativeElement, '.md-form') ||
4834 this.utils.getClosestEl(this._el.nativeElement, '.md-outline');
4835 if (formWrapper) {
4836 formWrapper.childNodes.forEach((el) => {
4837 if (el.tagName === 'INPUT' || 'TEXTAREA') {
4838 this._renderer.listen(el, 'focus', () => {
4839 this._renderer.addClass(this._el.nativeElement, 'active');
4840 });
4841 this._renderer.listen(el, 'blur', () => {
4842 this._renderer.removeClass(this._el.nativeElement, 'active');
4843 });
4844 }
4845 });
4846 }
4847 }
4848}
4849MdbIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
4850MdbIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbIconComponent, selector: "mdb-icon", inputs: { icon: "icon", size: "size", class: "class", classInside: "classInside" }, ngImport: i0, template: "<i\n [ngClass]=\"{ fas: fas, far: far, fab: fab, fal: fal, fad: fad }\"\n class=\"fa-{{ icon }} {{ class }} {{ classInside }} {{ sizeClass }}\"\n></i>\n", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4851i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbIconComponent, decorators: [{
4852 type: Component,
4853 args: [{ selector: 'mdb-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<i\n [ngClass]=\"{ fas: fas, far: far, fab: fab, fal: fal, fad: fad }\"\n class=\"fa-{{ icon }} {{ class }} {{ classInside }} {{ sizeClass }}\"\n></i>\n" }]
4854 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { icon: [{
4855 type: Input
4856 }], size: [{
4857 type: Input
4858 }], class: [{
4859 type: Input
4860 }], classInside: [{
4861 type: Input
4862 }] } });
4863
4864// eslint-disable-next-line @angular-eslint/directive-selector
4865class FalDirective {
4866 constructor(_el, _r) {
4867 this._el = _el;
4868 this._r = _r;
4869 this._r.addClass(this._el.nativeElement, 'fal');
4870 }
4871}
4872FalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FalDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4873FalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: FalDirective, selector: "[fal], [light]", ngImport: i0 });
4874i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FalDirective, decorators: [{
4875 type: Directive,
4876 args: [{ selector: '[fal], [light]' }]
4877 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
4878
4879// eslint-disable-next-line @angular-eslint/directive-selector
4880class FarDirective {
4881 constructor(_el, _r) {
4882 this._el = _el;
4883 this._r = _r;
4884 this._r.addClass(this._el.nativeElement, 'far');
4885 }
4886}
4887FarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FarDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4888FarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: FarDirective, selector: "[far], [regular]", ngImport: i0 });
4889i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FarDirective, decorators: [{
4890 type: Directive,
4891 args: [{ selector: '[far], [regular]' }]
4892 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
4893
4894// eslint-disable-next-line @angular-eslint/directive-selector
4895class FasDirective {
4896 constructor(_el, _r) {
4897 this._el = _el;
4898 this._r = _r;
4899 this._r.addClass(this._el.nativeElement, 'fas');
4900 }
4901}
4902FasDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FasDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4903FasDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: FasDirective, selector: "[fas], [solid]", ngImport: i0 });
4904i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FasDirective, decorators: [{
4905 type: Directive,
4906 args: [{ selector: '[fas], [solid]' }]
4907 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
4908
4909// eslint-disable-next-line @angular-eslint/directive-selector
4910class FabDirective {
4911 constructor(_el, _r) {
4912 this._el = _el;
4913 this._r = _r;
4914 this._r.addClass(this._el.nativeElement, 'fab');
4915 }
4916}
4917FabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FabDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4918FabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: FabDirective, selector: "[fab], [brands]", ngImport: i0 });
4919i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FabDirective, decorators: [{
4920 type: Directive,
4921 args: [{ selector: '[fab], [brands]' }]
4922 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
4923
4924// eslint-disable-next-line @angular-eslint/directive-selector
4925class FadDirective {
4926 constructor(_el, _r) {
4927 this._el = _el;
4928 this._r = _r;
4929 this._r.addClass(this._el.nativeElement, 'fad');
4930 }
4931}
4932FadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FadDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4933FadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: FadDirective, selector: "[fad], [duotone]", ngImport: i0 });
4934i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: FadDirective, decorators: [{
4935 type: Directive,
4936 args: [{ selector: '[fad], [duotone]' }]
4937 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
4938
4939class IconsModule {
4940}
4941IconsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: IconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4942IconsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: IconsModule, declarations: [MdbIconComponent,
4943 FabDirective,
4944 FarDirective,
4945 FasDirective,
4946 FalDirective,
4947 FadDirective], imports: [CommonModule], exports: [MdbIconComponent, FabDirective, FarDirective, FasDirective, FalDirective, FadDirective] });
4948IconsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: IconsModule, imports: [[CommonModule]] });
4949i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: IconsModule, decorators: [{
4950 type: NgModule,
4951 args: [{
4952 declarations: [
4953 MdbIconComponent,
4954 FabDirective,
4955 FarDirective,
4956 FasDirective,
4957 FalDirective,
4958 FadDirective,
4959 ],
4960 imports: [CommonModule],
4961 exports: [MdbIconComponent, FabDirective, FarDirective, FasDirective, FalDirective, FadDirective],
4962 }]
4963 }] });
4964
4965let defaultIdNumber$1 = 0;
4966// eslint-disable-next-line @angular-eslint/component-class-suffix
4967class MdbErrorDirective {
4968 constructor(el, renderer) {
4969 this.el = el;
4970 this.renderer = renderer;
4971 this.id = `mdb-error-${defaultIdNumber$1++}`;
4972 this.errorMsg = true;
4973 this.messageId = this.id;
4974 this.utils = new Utils();
4975 }
4976 _calculateMarginTop() {
4977 const parent = this.el.nativeElement.parentNode.querySelector('.form-check');
4978 const heightParent = parent ? parent.offsetHeight : null;
4979 if (heightParent) {
4980 const margin = heightParent / 12.5;
4981 this.el.nativeElement.style.top = `${heightParent + heightParent / margin}px`;
4982 }
4983 }
4984 ngOnInit() {
4985 this.prefix = this.el.nativeElement.parentNode.querySelector('.prefix');
4986 if (this.prefix) {
4987 this.prefix.classList.add('error-message');
4988 }
4989 const textarea = this.utils.getClosestEl(this.el.nativeElement, '.md-textarea');
4990 this._calculateMarginTop();
4991 if (textarea) {
4992 let height = textarea.offsetHeight + 4 + 'px';
4993 this.renderer.setStyle(this.el.nativeElement, 'top', height);
4994 this.textareaListenFunction = this.renderer.listen(textarea, 'keyup', () => {
4995 height = textarea.offsetHeight + 4 + 'px';
4996 this.renderer.setStyle(this.el.nativeElement, 'top', height);
4997 });
4998 }
4999 }
5000 ngOnDestroy() {
5001 if (this.textareaListenFunction) {
5002 this.textareaListenFunction();
5003 }
5004 if (this.prefix) {
5005 this.prefix.classList.remove('error-message');
5006 }
5007 }
5008}
5009MdbErrorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbErrorDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
5010MdbErrorDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbErrorDirective, selector: "mdb-error", inputs: { id: "id" }, host: { properties: { "class.error-message": "this.errorMsg", "attr.id": "this.messageId" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".error-message,.success-message{position:absolute;top:40px;left:0;font-size:.8rem}textarea~.error-message,textarea~.success-message{top:unset;bottom:-20px}.error-message{color:#f44336}.success-message{color:#00c851}\n"], encapsulation: i0.ViewEncapsulation.None });
5011i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbErrorDirective, decorators: [{
5012 type: Component,
5013 args: [{ selector: 'mdb-error', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, styles: [".error-message,.success-message{position:absolute;top:40px;left:0;font-size:.8rem}textarea~.error-message,textarea~.success-message{top:unset;bottom:-20px}.error-message{color:#f44336}.success-message{color:#00c851}\n"] }]
5014 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { id: [{
5015 type: Input
5016 }], errorMsg: [{
5017 type: HostBinding,
5018 args: ['class.error-message']
5019 }], messageId: [{
5020 type: HostBinding,
5021 args: ['attr.id']
5022 }] } });
5023
5024let defaultIdNumber = 0;
5025// eslint-disable-next-line @angular-eslint/component-class-suffix
5026class MdbSuccessDirective {
5027 constructor(el, renderer) {
5028 this.el = el;
5029 this.renderer = renderer;
5030 this.id = `mdb-success-${defaultIdNumber++}`;
5031 this.successMsg = true;
5032 this.messageId = this.id;
5033 this.utils = new Utils();
5034 }
5035 _calculateMarginTop() {
5036 const parent = this.el.nativeElement.parentNode.querySelector('.form-check');
5037 const heightParent = parent ? parent.offsetHeight : null;
5038 if (heightParent) {
5039 const margin = heightParent / 12.5;
5040 this.el.nativeElement.style.top = `${heightParent + heightParent / margin}px`;
5041 }
5042 }
5043 ngOnInit() {
5044 this.prefix = this.el.nativeElement.parentNode.querySelector('.prefix');
5045 if (this.prefix) {
5046 this.prefix.classList.add('success-message');
5047 }
5048 const textarea = this.utils.getClosestEl(this.el.nativeElement, '.md-textarea');
5049 this._calculateMarginTop();
5050 if (textarea) {
5051 let height = textarea.offsetHeight + 4 + 'px';
5052 this.renderer.setStyle(this.el.nativeElement, 'top', height);
5053 this.textareaListenFunction = this.renderer.listen(textarea, 'keyup', () => {
5054 height = textarea.offsetHeight + 4 + 'px';
5055 this.renderer.setStyle(this.el.nativeElement, 'top', height);
5056 });
5057 }
5058 }
5059 ngOnDestroy() {
5060 if (this.textareaListenFunction) {
5061 this.textareaListenFunction();
5062 }
5063 if (this.prefix) {
5064 this.prefix.classList.remove('success-message');
5065 }
5066 }
5067}
5068MdbSuccessDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbSuccessDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
5069MdbSuccessDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbSuccessDirective, selector: "mdb-success", inputs: { id: "id" }, host: { properties: { "class.success-message": "this.successMsg", "attr.id": "this.messageId" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".error-message,.success-message{position:absolute;top:40px;left:0;font-size:.8rem}textarea~.error-message,textarea~.success-message{top:unset;bottom:-20px}.error-message{color:#f44336}.success-message{color:#00c851}\n"], encapsulation: i0.ViewEncapsulation.None });
5070i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbSuccessDirective, decorators: [{
5071 type: Component,
5072 args: [{ selector: 'mdb-success', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, styles: [".error-message,.success-message{position:absolute;top:40px;left:0;font-size:.8rem}textarea~.error-message,textarea~.success-message{top:unset;bottom:-20px}.error-message{color:#f44336}.success-message{color:#00c851}\n"] }]
5073 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { id: [{
5074 type: Input
5075 }], successMsg: [{
5076 type: HostBinding,
5077 args: ['class.success-message']
5078 }], messageId: [{
5079 type: HostBinding,
5080 args: ['attr.id']
5081 }] } });
5082
5083class MdbValidateDirective {
5084 constructor(renderer, el) {
5085 this.renderer = renderer;
5086 this.el = el;
5087 this._validate = true;
5088 this._validateSuccess = true;
5089 this._validateError = true;
5090 this._mdbValidate = false;
5091 }
5092 get mdbValidate() {
5093 return this._mdbValidate;
5094 }
5095 set mdbValidate(value) {
5096 this._mdbValidate = coerceBooleanProperty(value);
5097 }
5098 get validate() {
5099 return this._validate;
5100 }
5101 set validate(value) {
5102 this._validate = coerceBooleanProperty(value);
5103 this.updateErrorClass();
5104 this.updateSuccessClass();
5105 }
5106 get validateSuccess() {
5107 return this._validateSuccess;
5108 }
5109 set validateSuccess(value) {
5110 this._validateSuccess = coerceBooleanProperty(value);
5111 this.updateSuccessClass();
5112 }
5113 get validateError() {
5114 return this._validateError;
5115 }
5116 set validateError(value) {
5117 this._validateError = coerceBooleanProperty(value);
5118 this.updateErrorClass();
5119 this.updateSuccessClass();
5120 }
5121 updateSuccessClass() {
5122 if (this.validate && this.validateSuccess) {
5123 this.renderer.addClass(this.el.nativeElement, 'validate-success');
5124 }
5125 else {
5126 this.renderer.removeClass(this.el.nativeElement, 'validate-success');
5127 }
5128 }
5129 updateErrorClass() {
5130 if (this.validate && this.validateError) {
5131 this.renderer.addClass(this.el.nativeElement, 'validate-error');
5132 }
5133 else {
5134 this.renderer.removeClass(this.el.nativeElement, 'validate-error');
5135 }
5136 }
5137 ngOnInit() {
5138 this.updateSuccessClass();
5139 this.updateErrorClass();
5140 }
5141}
5142MdbValidateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbValidateDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
5143MdbValidateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: MdbValidateDirective, selector: "[mdbValidate]", inputs: { mdbValidate: "mdbValidate", validate: "validate", validateSuccess: "validateSuccess", validateError: "validateError" }, ngImport: i0 });
5144i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbValidateDirective, decorators: [{
5145 type: Directive,
5146 args: [{
5147 selector: '[mdbValidate]',
5148 }]
5149 }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { mdbValidate: [{
5150 type: Input
5151 }], validate: [{
5152 type: Input
5153 }], validateSuccess: [{
5154 type: Input
5155 }], validateError: [{
5156 type: Input
5157 }] } });
5158
5159class InputUtilitiesModule {
5160}
5161InputUtilitiesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputUtilitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5162InputUtilitiesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputUtilitiesModule, declarations: [MdbErrorDirective, MdbSuccessDirective, MdbValidateDirective], imports: [CommonModule], exports: [MdbErrorDirective, MdbSuccessDirective, MdbValidateDirective] });
5163InputUtilitiesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputUtilitiesModule, imports: [[CommonModule]] });
5164i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputUtilitiesModule, decorators: [{
5165 type: NgModule,
5166 args: [{
5167 imports: [CommonModule],
5168 declarations: [MdbErrorDirective, MdbSuccessDirective, MdbValidateDirective],
5169 exports: [MdbErrorDirective, MdbSuccessDirective, MdbValidateDirective],
5170 }]
5171 }] });
5172
5173class EqualValidatorDirective {
5174 constructor(validateEqual, reverse) {
5175 this.validateEqual = validateEqual;
5176 this.reverse = reverse;
5177 }
5178 get isReverse() {
5179 if (!this.reverse) {
5180 return false;
5181 }
5182 return this.reverse === 'true' ? true : false;
5183 }
5184 validate(c) {
5185 // self value (e.g. retype password)
5186 const v = c.value;
5187 // control value (e.g. password)
5188 const e = c.root.get(this.validateEqual);
5189 // value not equal
5190 if (e && v !== e.value) {
5191 return { validateEqual: false };
5192 }
5193 // value equal and reverse
5194 if (e && v === e.value && this.isReverse) {
5195 delete e.errors['validateEqual'];
5196 if (!Object.keys(e.errors).length) {
5197 e.setErrors(null);
5198 }
5199 }
5200 // value not equal and reverse
5201 if (e && v !== e.value && this.isReverse) {
5202 e.setErrors({
5203 validateEqual: false,
5204 });
5205 }
5206 // return null;
5207 return null;
5208 }
5209}
5210EqualValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: EqualValidatorDirective, deps: [{ token: 'validateEqual', attribute: true }, { token: 'reverse', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
5211EqualValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: EqualValidatorDirective, selector: "[mdb-validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
5212 { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidatorDirective), multi: true },
5213 ], ngImport: i0 });
5214i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: EqualValidatorDirective, decorators: [{
5215 type: Directive,
5216 args: [{
5217 selector: '[mdb-validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
5218 providers: [
5219 { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidatorDirective), multi: true },
5220 ],
5221 }]
5222 }], ctorParameters: function () { return [{ type: undefined, decorators: [{
5223 type: Attribute,
5224 args: ['validateEqual']
5225 }] }, { type: undefined, decorators: [{
5226 type: Attribute,
5227 args: ['reverse']
5228 }] }]; } });
5229
5230class MdbInputDirective {
5231 constructor(_elRef, _renderer, platformId) {
5232 this._elRef = _elRef;
5233 this._renderer = _renderer;
5234 this.el = null;
5235 this.elLabel = null;
5236 this.elIcon = null;
5237 this.element = null;
5238 this.mdbValidate = true;
5239 this.validateSuccess = true;
5240 this.validateError = true;
5241 this.focusCheckbox = true;
5242 this.focusRadio = true;
5243 this.isBrowser = false;
5244 this.isClicked = false;
5245 this.isBrowser = isPlatformBrowser(platformId);
5246 }
5247 onfocus() {
5248 try {
5249 this._renderer.addClass(this.elLabel, 'active');
5250 this.isClicked = true;
5251 }
5252 catch (error) { }
5253 }
5254 onblur() {
5255 this.validationFunction();
5256 try {
5257 if (this.el.nativeElement.value === '') {
5258 this._renderer.removeClass(this.elLabel, 'active');
5259 }
5260 this.isClicked = false;
5261 }
5262 catch (error) { }
5263 }
5264 onchange() {
5265 try {
5266 this.checkValue();
5267 }
5268 catch (error) { }
5269 }
5270 oniput() {
5271 this.validationFunction();
5272 }
5273 onkeydown(event) {
5274 try {
5275 if (event.target.type === 'number') {
5276 if (event.shiftKey) {
5277 switch (event.keyCode) {
5278 case UP_ARROW:
5279 event.target.value = +event.target.value + 10;
5280 break;
5281 case DOWN_ARROW:
5282 event.target.value = +event.target.value - 10;
5283 break;
5284 }
5285 }
5286 if (event.altKey) {
5287 switch (event.keyCode) {
5288 case UP_ARROW:
5289 event.target.value = +event.target.value + 0.1;
5290 break;
5291 case DOWN_ARROW:
5292 event.target.value = +event.target.value - 0.1;
5293 break;
5294 }
5295 }
5296 }
5297 }
5298 catch (error) { }
5299 this.delayedResize();
5300 }
5301 oncut() {
5302 try {
5303 setTimeout(() => {
5304 this.delayedResize();
5305 }, 0);
5306 }
5307 catch (error) { }
5308 }
5309 onpaste() {
5310 try {
5311 setTimeout(() => {
5312 this.delayedResize();
5313 }, 0);
5314 }
5315 catch (error) { }
5316 }
5317 ondrop() {
5318 try {
5319 setTimeout(() => {
5320 this.delayedResize();
5321 }, 0);
5322 }
5323 catch (error) { }
5324 }
5325 updateErrorMsg(value) {
5326 if (this.wrongTextContainer) {
5327 this.wrongTextContainer.innerHTML = value;
5328 }
5329 }
5330 updateSuccessMsg(value) {
5331 if (this.rightTextContainer) {
5332 this.rightTextContainer.innerHTML = value;
5333 }
5334 }
5335 ngOnInit() {
5336 try {
5337 setTimeout(() => {
5338 this.delayedResize();
5339 }, 0);
5340 }
5341 catch (error) {
5342 console.log(error);
5343 }
5344 // Inititalise a new <span> wrong/right elements and render it below the host component.
5345 if (this.mdbValidate) {
5346 this.wrongTextContainer = this._renderer.createElement('span');
5347 this._renderer.addClass(this.wrongTextContainer, 'inputVal');
5348 this._renderer.addClass(this.wrongTextContainer, 'text-danger');
5349 this._renderer.appendChild(this._elRef.nativeElement.parentElement, this.wrongTextContainer);
5350 const textWrong = this._elRef.nativeElement.getAttribute('data-error');
5351 this.wrongTextContainer.innerHTML = textWrong ? textWrong : 'wrong';
5352 if (!textWrong && this.errorMessage !== undefined) {
5353 this.wrongTextContainer.innerHTML = this.errorMessage;
5354 }
5355 this._renderer.setStyle(this.wrongTextContainer, 'visibility', 'hidden');
5356 this.rightTextContainer = this._renderer.createElement('span');
5357 this._renderer.addClass(this.rightTextContainer, 'inputVal');
5358 this._renderer.addClass(this.rightTextContainer, 'text-success');
5359 this._renderer.appendChild(this._elRef.nativeElement.parentElement, this.rightTextContainer);
5360 const textSuccess = this._elRef.nativeElement.getAttribute('data-success');
5361 this.rightTextContainer.innerHTML = textSuccess ? textSuccess : 'success';
5362 if (!textSuccess && this.successMessage !== undefined) {
5363 this.rightTextContainer.innerHTML = this.successMessage;
5364 }
5365 this._renderer.setStyle(this.rightTextContainer, 'visibility', 'hidden');
5366 }
5367 }
5368 ngOnChanges(changes) {
5369 if (changes.hasOwnProperty('errorMessage')) {
5370 const newErrorMsg = changes.errorMessage.currentValue;
5371 this.updateErrorMsg(newErrorMsg);
5372 }
5373 if (changes.hasOwnProperty('successMessage')) {
5374 const newSuccessMsg = changes.successMessage.currentValue;
5375 this.updateSuccessMsg(newSuccessMsg);
5376 }
5377 }
5378 ngDoCheck() {
5379 if (this.mdbValidate &&
5380 this._elRef.nativeElement.classList.contains('ng-valid') &&
5381 this._elRef.nativeElement.classList.contains('ng-dirty') &&
5382 !this._elRef.nativeElement.classList.contains('counter-success')) {
5383 this._renderer.addClass(this._elRef.nativeElement, 'counter-success');
5384 this._renderer.setStyle(this.wrongTextContainer, 'visibility', 'hidden');
5385 this._renderer.setStyle(this.rightTextContainer, 'visibility', 'visible');
5386 this._renderer.setStyle(this.rightTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5387 this._renderer.setStyle(this.wrongTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5388 }
5389 if (this.mdbValidate &&
5390 this._elRef.nativeElement.classList.contains('ng-invalid') &&
5391 this._elRef.nativeElement.classList.contains('ng-dirty') &&
5392 !this._elRef.nativeElement.classList.contains('counter-danger')) {
5393 this._renderer.addClass(this._elRef.nativeElement, 'counter-danger');
5394 this._renderer.setStyle(this.rightTextContainer, 'visibility', 'hidden');
5395 this._renderer.setStyle(this.wrongTextContainer, 'visibility', 'visible');
5396 this._renderer.setStyle(this.rightTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5397 this._renderer.setStyle(this.wrongTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5398 }
5399 if ((this._elRef.nativeElement.classList.contains('ng-invalid') &&
5400 this._elRef.nativeElement.classList.contains('ng-pristine') &&
5401 this._elRef.nativeElement.classList.contains('ng-untouched')) ||
5402 this._elRef.nativeElement.disabled) {
5403 if (this._elRef.nativeElement.classList.contains('counter-success')) {
5404 this._renderer.removeClass(this._elRef.nativeElement, 'counter-success');
5405 this._renderer.setStyle(this.rightTextContainer, 'visibility', 'hidden');
5406 }
5407 else if (this._elRef.nativeElement.classList.contains('counter-danger')) {
5408 this._renderer.removeClass(this._elRef.nativeElement, 'counter-danger');
5409 this._renderer.setStyle(this.wrongTextContainer, 'visibility', 'hidden');
5410 }
5411 }
5412 if (!this.validateSuccess) {
5413 this._renderer.removeClass(this._elRef.nativeElement, 'counter-success');
5414 this._renderer.setStyle(this.rightTextContainer, 'display', 'none');
5415 if (this._elRef.nativeElement.classList.contains('ng-valid')) {
5416 this._renderer.removeClass(this._elRef.nativeElement, 'counter-danger');
5417 }
5418 }
5419 if (!this.validateError) {
5420 this._renderer.removeClass(this._elRef.nativeElement, 'counter-danger');
5421 this._renderer.setStyle(this.wrongTextContainer, 'display', 'none');
5422 if (this._elRef.nativeElement.classList.contains('ng-invalid')) {
5423 this._renderer.removeClass(this._elRef.nativeElement, 'counter-success');
5424 }
5425 }
5426 }
5427 validationFunction() {
5428 setTimeout(() => {
5429 if (this._elRef.nativeElement.classList.contains('ng-invalid')) {
5430 this._renderer.removeClass(this._elRef.nativeElement, 'counter-success');
5431 this._renderer.removeClass(this._elRef.nativeElement, 'counter-danger');
5432 }
5433 if (this._elRef.nativeElement.classList.contains('ng-touched') &&
5434 this._elRef.nativeElement.classList.contains('ng-invalid')) {
5435 if (this.mdbValidate) {
5436 this._renderer.addClass(this._elRef.nativeElement, 'counter-danger');
5437 this._renderer.setStyle(this.rightTextContainer, 'visibility', 'hidden');
5438 this._renderer.setStyle(this.wrongTextContainer, 'visibility', 'visible');
5439 this._renderer.setStyle(this.rightTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5440 this._renderer.setStyle(this.wrongTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5441 }
5442 }
5443 else if (this._elRef.nativeElement.classList.contains('ng-touched') &&
5444 this._elRef.nativeElement.classList.contains('ng-valid')) {
5445 if (this.mdbValidate) {
5446 this._renderer.addClass(this._elRef.nativeElement, 'counter-success');
5447 this._renderer.setStyle(this.rightTextContainer, 'visibility', 'visible');
5448 this._renderer.setStyle(this.wrongTextContainer, 'visibility', 'hidden');
5449 this._renderer.setStyle(this.rightTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5450 this._renderer.setStyle(this.wrongTextContainer, 'top', this._elRef.nativeElement.offsetHeight + 'px');
5451 }
5452 }
5453 }, 0);
5454 }
5455 ngAfterViewInit() {
5456 if (this.isBrowser) {
5457 try {
5458 this.element = document.querySelector('.md-textarea-auto');
5459 }
5460 catch (error) { }
5461 }
5462 const type = this.el.nativeElement.type;
5463 if (this.focusCheckbox && type === 'checkbox') {
5464 this._renderer.addClass(this.el.nativeElement, 'onFocusSelect');
5465 }
5466 if (this.focusRadio && type === 'radio') {
5467 this._renderer.addClass(this.el.nativeElement, 'onFocusSelect');
5468 }
5469 }
5470 ngAfterViewChecked() {
5471 this.initComponent();
5472 this.checkValue();
5473 }
5474 resize() {
5475 if (this.el.nativeElement.classList.contains('md-textarea-auto')) {
5476 this._renderer.setStyle(this.el.nativeElement, 'height', 'auto');
5477 this._renderer.setStyle(this.el.nativeElement, 'height', this.el.nativeElement.scrollHeight + 'px');
5478 }
5479 }
5480 delayedResize() {
5481 setTimeout(() => {
5482 this.resize();
5483 }, 0);
5484 }
5485 initComponent() {
5486 let inputId;
5487 let inputP;
5488 if (this.isBrowser) {
5489 try {
5490 inputId = this.el.nativeElement.id;
5491 }
5492 catch (err) { }
5493 try {
5494 inputP = this.el.nativeElement.parentNode;
5495 }
5496 catch (err) { }
5497 this.elLabel =
5498 inputP.querySelector('label[for="' + inputId + '"]') || inputP.querySelector('label');
5499 if (this.elLabel && this.el.nativeElement.value !== '') {
5500 this._renderer.addClass(this.elLabel, 'active');
5501 }
5502 this.elIcon = inputP.querySelector('i') || false;
5503 if (this.elIcon) {
5504 this._renderer.addClass(this.elIcon, 'active');
5505 }
5506 }
5507 }
5508 checkValue() {
5509 let value = '';
5510 if (this.elLabel != null) {
5511 value = this.el.nativeElement.value || '';
5512 if (value === '') {
5513 this._renderer.removeClass(this.elLabel, 'active');
5514 if (this.elIcon) {
5515 this._renderer.removeClass(this.elIcon, 'active');
5516 }
5517 // eslint-disable-next-line max-len
5518 }
5519 if ((value === '' && this.isClicked) ||
5520 (value === '' && this.el.nativeElement.placeholder) ||
5521 (value === '' && this.el.nativeElement.attributes.placeholder)) {
5522 this._renderer.addClass(this.elLabel, 'active');
5523 }
5524 }
5525 }
5526}
5527MdbInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
5528MdbInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: MdbInputDirective, selector: "[mdbInputDirective]", inputs: { mdbInputDirective: "mdbInputDirective", customRegex: "customRegex", mdbValidate: "mdbValidate", validateSuccess: "validateSuccess", validateError: "validateError", focusCheckbox: "focusCheckbox", focusRadio: "focusRadio", errorMessage: "errorMessage", successMessage: "successMessage" }, host: { listeners: { "focus": "onfocus()", "blur": "onblur()", "change": "onchange()", "input": "oniput()", "keydown": "onkeydown($event)", "cut": "oncut()", "paste": "onpaste()", "drop": "ondrop()" } }, usesOnChanges: true, ngImport: i0 });
5529i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbInputDirective, decorators: [{
5530 type: Directive,
5531 args: [{
5532 selector: '[mdbInputDirective]',
5533 }]
5534 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
5535 type: Inject,
5536 args: [PLATFORM_ID]
5537 }] }]; }, propDecorators: { mdbInputDirective: [{
5538 type: Input
5539 }], customRegex: [{
5540 type: Input
5541 }], mdbValidate: [{
5542 type: Input
5543 }], validateSuccess: [{
5544 type: Input
5545 }], validateError: [{
5546 type: Input
5547 }], focusCheckbox: [{
5548 type: Input
5549 }], focusRadio: [{
5550 type: Input
5551 }], errorMessage: [{
5552 type: Input
5553 }], successMessage: [{
5554 type: Input
5555 }], onfocus: [{
5556 type: HostListener,
5557 args: ['focus']
5558 }], onblur: [{
5559 type: HostListener,
5560 args: ['blur']
5561 }], onchange: [{
5562 type: HostListener,
5563 args: ['change']
5564 }], oniput: [{
5565 type: HostListener,
5566 args: ['input']
5567 }], onkeydown: [{
5568 type: HostListener,
5569 args: ['keydown', ['$event']]
5570 }], oncut: [{
5571 type: HostListener,
5572 args: ['cut']
5573 }], onpaste: [{
5574 type: HostListener,
5575 args: ['paste']
5576 }], ondrop: [{
5577 type: HostListener,
5578 args: ['drop']
5579 }] } });
5580
5581// eslint-disable-next-line @angular-eslint/directive-class-suffix
5582class MdbInput {
5583 constructor(el, _renderer, platformId) {
5584 this.el = el;
5585 this._renderer = _renderer;
5586 this.elLabel = null;
5587 this.elIcon = null;
5588 this._focusCheckbox = false;
5589 this._focusRadio = false;
5590 this.isBrowser = false;
5591 this.isClicked = false;
5592 this.element = null;
5593 this.isBrowser = isPlatformBrowser(platformId);
5594 }
5595 get focusCheckbox() {
5596 return this._focusCheckbox;
5597 }
5598 set focusCheckbox(value) {
5599 this._focusCheckbox = coerceBooleanProperty(value);
5600 }
5601 get focusRadion() {
5602 return this._focusRadio;
5603 }
5604 set focusRadio(value) {
5605 this._focusRadio = coerceBooleanProperty(value);
5606 }
5607 onfocus() {
5608 try {
5609 this._renderer.addClass(this.elLabel, 'active');
5610 this.isClicked = true;
5611 }
5612 catch (error) { }
5613 }
5614 onblur() {
5615 try {
5616 if (this.el.nativeElement.value === '') {
5617 this._renderer.removeClass(this.elLabel, 'active');
5618 }
5619 this.isClicked = false;
5620 }
5621 catch (error) { }
5622 }
5623 onchange() {
5624 try {
5625 this.checkValue();
5626 }
5627 catch (error) { }
5628 }
5629 onkeydown(event) {
5630 try {
5631 if (event.target.type === 'number') {
5632 if (event.shiftKey) {
5633 switch (event.keyCode) {
5634 case UP_ARROW:
5635 event.target.value = +event.target.value + 10;
5636 break;
5637 case DOWN_ARROW:
5638 event.target.value = +event.target.value - 10;
5639 break;
5640 }
5641 }
5642 if (event.altKey) {
5643 switch (event.keyCode) {
5644 case UP_ARROW:
5645 event.target.value = +event.target.value + 0.1;
5646 break;
5647 case DOWN_ARROW:
5648 event.target.value = +event.target.value - 0.1;
5649 break;
5650 }
5651 }
5652 }
5653 }
5654 catch (error) { }
5655 this.delayedResize();
5656 }
5657 oncut() {
5658 try {
5659 setTimeout(() => {
5660 this.delayedResize();
5661 }, 0);
5662 }
5663 catch (error) { }
5664 }
5665 onpaste() {
5666 try {
5667 setTimeout(() => {
5668 this.delayedResize();
5669 }, 0);
5670 }
5671 catch (error) { }
5672 }
5673 ondrop() {
5674 try {
5675 setTimeout(() => {
5676 this.delayedResize();
5677 }, 0);
5678 }
5679 catch (error) { }
5680 }
5681 ngAfterViewInit() {
5682 if (this.isBrowser) {
5683 try {
5684 this.element = document.querySelector('.md-textarea-auto');
5685 if (this.element) {
5686 this.delayedResize();
5687 }
5688 }
5689 catch (error) { }
5690 }
5691 const type = this.el.nativeElement.type;
5692 if (this.focusCheckbox && type === 'checkbox') {
5693 this._renderer.addClass(this.el.nativeElement, 'onFocusSelect');
5694 }
5695 if (this.focusRadio && type === 'radio') {
5696 this._renderer.addClass(this.el.nativeElement, 'onFocusSelect');
5697 }
5698 }
5699 ngAfterViewChecked() {
5700 this.initComponent();
5701 this.checkValue();
5702 }
5703 resize() {
5704 if (this.el.nativeElement.classList.contains('md-textarea-auto')) {
5705 this._renderer.setStyle(this.el.nativeElement, 'height', 'auto');
5706 if (this.el.nativeElement.scrollHeight) {
5707 this._renderer.setStyle(this.el.nativeElement, 'height', this.el.nativeElement.scrollHeight + 'px');
5708 }
5709 }
5710 }
5711 delayedResize() {
5712 setTimeout(() => {
5713 this.resize();
5714 }, 0);
5715 }
5716 initComponent() {
5717 let inputId;
5718 let inputP;
5719 if (this.isBrowser) {
5720 try {
5721 inputId = this.el.nativeElement.id;
5722 }
5723 catch (err) { }
5724 try {
5725 inputP = this.el.nativeElement.parentNode;
5726 }
5727 catch (err) { }
5728 this.elLabel =
5729 inputP.querySelector('label[for="' + inputId + '"]') || inputP.querySelector('label');
5730 if (this.elLabel && this.el.nativeElement.value !== '') {
5731 this._renderer.addClass(this.elLabel, 'active');
5732 }
5733 this.elIcon = inputP.querySelector('i') || false;
5734 }
5735 }
5736 checkValue() {
5737 let value = '';
5738 if (this.elLabel != null) {
5739 value = this.el.nativeElement.value || '';
5740 if (value === '') {
5741 this._renderer.removeClass(this.elLabel, 'active');
5742 if (this.elIcon) {
5743 this._renderer.removeClass(this.elIcon, 'active');
5744 }
5745 }
5746 if ((value === '' && this.isClicked) ||
5747 (value === '' && this.el.nativeElement.placeholder) ||
5748 (value === '' && this.el.nativeElement.attributes.placeholder)) {
5749 this._renderer.addClass(this.elLabel, 'active');
5750 }
5751 }
5752 }
5753}
5754MdbInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbInput, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
5755MdbInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: MdbInput, selector: "[mdbInput]", inputs: { focusCheckbox: "focusCheckbox", focusRadion: "focusRadion" }, host: { listeners: { "focus": "onfocus()", "blur": "onblur()", "change": "onchange()", "keydown": "onkeydown($event)", "cut": "oncut()", "paste": "onpaste()", "drop": "ondrop()" } }, ngImport: i0 });
5756i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbInput, decorators: [{
5757 type: Directive,
5758 args: [{
5759 selector: '[mdbInput]',
5760 }]
5761 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
5762 type: Inject,
5763 args: [PLATFORM_ID]
5764 }] }]; }, propDecorators: { focusCheckbox: [{
5765 type: Input
5766 }], focusRadion: [{
5767 type: Input
5768 }], onfocus: [{
5769 type: HostListener,
5770 args: ['focus']
5771 }], onblur: [{
5772 type: HostListener,
5773 args: ['blur']
5774 }], onchange: [{
5775 type: HostListener,
5776 args: ['change']
5777 }], onkeydown: [{
5778 type: HostListener,
5779 args: ['keydown', ['$event']]
5780 }], oncut: [{
5781 type: HostListener,
5782 args: ['cut']
5783 }], onpaste: [{
5784 type: HostListener,
5785 args: ['paste']
5786 }], ondrop: [{
5787 type: HostListener,
5788 args: ['drop']
5789 }] } });
5790
5791class InputsModule {
5792 static forRoot() {
5793 return { ngModule: InputsModule, providers: [] };
5794 }
5795}
5796InputsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5797InputsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputsModule, declarations: [MdbInput, MdbInputDirective, EqualValidatorDirective], exports: [MdbInput, MdbInputDirective, EqualValidatorDirective] });
5798InputsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputsModule });
5799i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: InputsModule, decorators: [{
5800 type: NgModule,
5801 args: [{
5802 declarations: [MdbInput, MdbInputDirective, EqualValidatorDirective],
5803 exports: [MdbInput, MdbInputDirective, EqualValidatorDirective],
5804 schemas: [NO_ERRORS_SCHEMA],
5805 }]
5806 }] });
5807
5808class ModalOptions {
5809}
5810ModalOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5811ModalOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalOptions });
5812i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalOptions, decorators: [{
5813 type: Injectable
5814 }] });
5815class MDBModalRef {
5816 /**
5817 * Hides the modal
5818 */
5819 hide() { }
5820}
5821MDBModalRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBModalRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5822MDBModalRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBModalRef });
5823i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBModalRef, decorators: [{
5824 type: Injectable
5825 }] });
5826const modalConfigDefaults = {
5827 backdrop: true,
5828 keyboard: true,
5829 focus: true,
5830 show: false,
5831 ignoreBackdropClick: false,
5832 class: '',
5833 containerClass: '',
5834 animated: true,
5835 scroll: false,
5836 data: {},
5837};
5838const ClassName = {
5839 SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
5840 BACKDROP: 'modal-backdrop',
5841 OPEN: 'modal-open',
5842 FADE: 'fade',
5843 IN: 'in',
5844 SHOW: 'show', // bs4
5845};
5846const Selector = {
5847 DIALOG: '.modal-dialog',
5848 DATA_TOGGLE: '[data-toggle="modal"]',
5849 DATA_DISMISS: '[data-dismiss="modal"]',
5850 FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed',
5851};
5852const TransitionDurations = {
5853 MODAL: 300,
5854 BACKDROP: 150,
5855};
5856const DISMISS_REASONS = {
5857 BACKRDOP: 'backdrop-click',
5858 ESC: 'esc',
5859};
5860
5861class ModalBackdropOptions {
5862 constructor(options) {
5863 this.animate = true;
5864 Object.assign(this, options);
5865 }
5866}
5867/** This component will be added as background layout for modals if enabled */
5868class ModalBackdropComponent {
5869 constructor(element, renderer) {
5870 this.element = element;
5871 this.renderer = renderer;
5872 this.classNameBackDrop = true;
5873 this._isShown = false;
5874 }
5875 get isAnimated() {
5876 return this._isAnimated;
5877 }
5878 set isAnimated(value) {
5879 this._isAnimated = value;
5880 }
5881 get isShown() {
5882 return this._isShown;
5883 }
5884 set isShown(value) {
5885 this._isShown = value;
5886 if (value) {
5887 this.renderer.addClass(this.element.nativeElement, `${ClassName.IN}`);
5888 if (!isBs3$1()) {
5889 this.renderer.addClass(this.element.nativeElement, `${ClassName.SHOW}`);
5890 }
5891 }
5892 else {
5893 this.renderer.removeClass(this.element.nativeElement, `${ClassName.IN}`);
5894 if (!isBs3$1()) {
5895 this.renderer.removeClass(this.element.nativeElement, `${ClassName.SHOW}`);
5896 }
5897 }
5898 }
5899 ngOnInit() {
5900 if (this.isAnimated) {
5901 this.renderer.addClass(this.element.nativeElement, `${ClassName.FADE}`);
5902 Utils.reflow(this.element.nativeElement);
5903 }
5904 else {
5905 this.renderer.addClass(this.element.nativeElement, `${ClassName.FADE}`);
5906 Utils.reflow(this.element.nativeElement);
5907 }
5908 this.isShown = true;
5909 }
5910}
5911ModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalBackdropComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
5912ModalBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ModalBackdropComponent, selector: "mdb-modal-backdrop", host: { properties: { "class.modal-backdrop": "this.classNameBackDrop" } }, ngImport: i0, template: ``, isInline: true });
5913i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalBackdropComponent, decorators: [{
5914 type: Component,
5915 args: [{
5916 selector: 'mdb-modal-backdrop',
5917 template: ``,
5918 }]
5919 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { classNameBackDrop: [{
5920 type: HostBinding,
5921 args: ['class.modal-backdrop']
5922 }] } });
5923
5924const TRANSITION_DURATION = 300;
5925const BACKDROP_TRANSITION_DURATION = 150;
5926/** Mark any code with directive to show it's content in modal */
5927// eslint-disable-next-line @angular-eslint/component-class-suffix
5928class ModalDirective {
5929 constructor(_element, _focusTrapFactory, _viewContainerRef, _renderer, clf) {
5930 this._element = _element;
5931 this._focusTrapFactory = _focusTrapFactory;
5932 this._renderer = _renderer;
5933 /** This event fires immediately when the `show` instance method is called. */
5934 // eslint-disable-next-line @angular-eslint/no-output-on-prefix
5935 this.onShow = new EventEmitter();
5936 this.open = new EventEmitter();
5937 /** This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete) */
5938 // eslint-disable-next-line @angular-eslint/no-output-on-prefix
5939 this.onShown = new EventEmitter();
5940 this.opened = new EventEmitter();
5941 /** This event is fired immediately when the hide instance method has been called. */
5942 // eslint-disable-next-line @angular-eslint/no-output-on-prefix
5943 this.onHide = new EventEmitter();
5944 this.close = new EventEmitter();
5945 /** This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete). */
5946 // eslint-disable-next-line @angular-eslint/no-output-on-prefix
5947 this.onHidden = new EventEmitter();
5948 this.closed = new EventEmitter();
5949 // seems like an Options
5950 this.isAnimated = true;
5951 this._isShown = false;
5952 this.isBodyOverflowing = false;
5953 this.originalBodyPadding = 0;
5954 this.scrollbarWidth = 0;
5955 this.timerHideModal = 0;
5956 this.timerRmBackDrop = 0;
5957 this.isNested = false;
5958 this.utils = new Utils();
5959 this._backdrop = clf.createLoader(_element, _viewContainerRef, _renderer);
5960 }
5961 /** allows to set modal configuration via element property */
5962 set config(conf) {
5963 this._config = this.getConfig(conf);
5964 }
5965 get config() {
5966 return this._config;
5967 }
5968 get isShown() {
5969 return this._isShown;
5970 }
5971 /* @HostListener('keydown', ['$event']) onKeyDown(event: any) {
5972 this.utils.focusTrapModal(event, this._element);
5973 }
5974 */
5975 onClick(event) {
5976 if (this.config.ignoreBackdropClick ||
5977 this.config.backdrop === 'static' ||
5978 event.target !== this._element.nativeElement) {
5979 return;
5980 }
5981 this.dismissReason = DISMISS_REASONS.BACKRDOP;
5982 this.hide(event);
5983 }
5984 // todo: consider preventing default and stopping propagation
5985 onEsc() {
5986 if (this.config.keyboard) {
5987 this.dismissReason = DISMISS_REASONS.ESC;
5988 this.hide();
5989 }
5990 }
5991 ngOnDestroy() {
5992 this.config = void 0;
5993 if (this._isShown) {
5994 this._isShown = false;
5995 this.hideModal();
5996 this._backdrop.dispose();
5997 }
5998 }
5999 ngAfterViewInit() {
6000 this._config = this._config || this.getConfig();
6001 setTimeout(() => {
6002 if (this._config.show) {
6003 this.show();
6004 }
6005 }, 0);
6006 this._createFocusTrap();
6007 }
6008 ngOnChanges() {
6009 this.config.backdrop ? this.showBackdrop() : this.removeBackdrop();
6010 }
6011 /* Public methods */
6012 /** Allows to manually toggle modal visibility */
6013 toggle() {
6014 return this._isShown ? this.hide() : this.show();
6015 }
6016 /** Allows to manually open modal */
6017 show() {
6018 this.dismissReason = null;
6019 this.onShow.emit(this);
6020 this.open.emit(this);
6021 if (this._isShown) {
6022 return;
6023 }
6024 clearTimeout(this.timerHideModal);
6025 clearTimeout(this.timerRmBackDrop);
6026 this._isShown = true;
6027 this.checkScrollbar();
6028 this.setScrollbar();
6029 if (document$2 && document$2.body) {
6030 if (document$2.body.classList.contains(ClassName.OPEN)) {
6031 this.isNested = true;
6032 }
6033 else {
6034 this._renderer.addClass(document$2.body, ClassName.OPEN);
6035 }
6036 }
6037 this.showBackdrop(() => {
6038 this.showElement();
6039 });
6040 if (!this.config.backdrop && this.config.ignoreBackdropClick) {
6041 this._renderer.setStyle(this._element.nativeElement, 'position', 'fixed');
6042 if (navigator$1.userAgent.indexOf('Safari') !== -1 &&
6043 navigator$1.userAgent.indexOf('Chrome') === -1) {
6044 this._renderer.setStyle(this._element.nativeElement, 'overflow', 'unset');
6045 this._renderer.setStyle(this._element.nativeElement, 'overflow-y', 'unset');
6046 this._renderer.setStyle(this._element.nativeElement, 'overflow-x', 'unset');
6047 }
6048 }
6049 }
6050 /** Allows to manually close modal */
6051 hide(event) {
6052 if (event) {
6053 event.preventDefault();
6054 }
6055 // fix(modal): resolved problem with not pausing iframe/video when closing modal
6056 const iframeElements = Array.from(this._element.nativeElement.querySelectorAll('iframe'));
6057 const videoElements = Array.from(this._element.nativeElement.querySelectorAll('video'));
6058 iframeElements.forEach((iframe) => {
6059 const srcAttribute = iframe.getAttribute('src');
6060 this._renderer.setAttribute(iframe, 'src', srcAttribute);
6061 });
6062 videoElements.forEach((video) => {
6063 video.pause();
6064 });
6065 this.onHide.emit(this);
6066 this.close.emit(this);
6067 if (!this._isShown) {
6068 return;
6069 }
6070 clearTimeout(this.timerHideModal);
6071 clearTimeout(this.timerRmBackDrop);
6072 this._isShown = false;
6073 this._renderer.removeClass(this._element.nativeElement, ClassName.IN);
6074 if (!isBs3$1()) {
6075 this._renderer.removeClass(this._element.nativeElement, ClassName.SHOW);
6076 }
6077 if (this.isAnimated) {
6078 this.timerHideModal = setTimeout(() => this.hideModal(), TRANSITION_DURATION);
6079 }
6080 else {
6081 this.hideModal();
6082 }
6083 }
6084 /** Private methods @internal */
6085 getConfig(config) {
6086 return Object.assign({}, modalConfigDefaults, config);
6087 }
6088 /**
6089 * Show dialog
6090 * @internal
6091 */
6092 showElement() {
6093 if (!this._element.nativeElement.parentNode ||
6094 this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE) {
6095 // don't move modals dom position
6096 if (document$2 && document$2.body) {
6097 document$2.body.appendChild(this._element.nativeElement);
6098 }
6099 }
6100 this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'false');
6101 this._renderer.setStyle(this._element.nativeElement, 'display', 'block');
6102 this._renderer.setProperty(this._element.nativeElement, 'scrollTop', 0);
6103 if (this.isAnimated) {
6104 Utils.reflow(this._element.nativeElement);
6105 }
6106 this._renderer.addClass(this._element.nativeElement, ClassName.IN);
6107 if (!isBs3$1()) {
6108 this._renderer.addClass(this._element.nativeElement, ClassName.SHOW);
6109 }
6110 const transitionComplete = () => {
6111 if (this._config.focus) {
6112 this._element.nativeElement.focus();
6113 }
6114 this.onShown.emit(this);
6115 this.opened.emit(this);
6116 };
6117 if (this.isAnimated) {
6118 setTimeout(transitionComplete, TRANSITION_DURATION);
6119 }
6120 else {
6121 transitionComplete();
6122 }
6123 }
6124 _createFocusTrap() {
6125 if (!this._focusTrap) {
6126 this._focusTrap = this._focusTrapFactory.create(this._element.nativeElement);
6127 }
6128 }
6129 /** @internal */
6130 hideModal() {
6131 this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'true');
6132 this._renderer.setStyle(this._element.nativeElement, 'display', 'none');
6133 this.showBackdrop(() => {
6134 if (!this.isNested) {
6135 if (document$2 && document$2.body) {
6136 this._renderer.removeClass(document$2.body, ClassName.OPEN);
6137 }
6138 }
6139 this.resetAdjustments();
6140 this.focusOtherModal();
6141 this.onHidden.emit(this);
6142 this.closed.emit(this);
6143 });
6144 }
6145 /** @internal */
6146 showBackdrop(callback) {
6147 if (this._isShown &&
6148 this.config.backdrop &&
6149 (!this.backdrop || !this.backdrop.instance.isShown)) {
6150 this.removeBackdrop();
6151 this._backdrop
6152 .attach(ModalBackdropComponent)
6153 .to('body')
6154 .show({ isAnimated: this.isAnimated });
6155 this.backdrop = this._backdrop._componentRef;
6156 if (!callback) {
6157 return;
6158 }
6159 if (!this.isAnimated) {
6160 callback();
6161 return;
6162 }
6163 setTimeout(callback, BACKDROP_TRANSITION_DURATION);
6164 }
6165 else if (!this._isShown && this.backdrop) {
6166 this.backdrop.instance.isShown = false;
6167 const callbackRemove = () => {
6168 this.removeBackdrop();
6169 if (callback) {
6170 callback();
6171 }
6172 };
6173 if (this.backdrop.instance.isAnimated) {
6174 this.timerRmBackDrop = setTimeout(callbackRemove, BACKDROP_TRANSITION_DURATION);
6175 }
6176 else {
6177 callbackRemove();
6178 }
6179 }
6180 else if (callback) {
6181 callback();
6182 }
6183 }
6184 /** @internal */
6185 removeBackdrop() {
6186 this._backdrop.hide();
6187 this.backdrop = undefined;
6188 }
6189 focusOtherModal() {
6190 try {
6191 const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[mdbModal]');
6192 if (!otherOpenedModals.length) {
6193 return;
6194 }
6195 otherOpenedModals[otherOpenedModals.length - 1].nativeElement.focus();
6196 }
6197 catch (error) { }
6198 }
6199 /** @internal */
6200 resetAdjustments() {
6201 this._renderer.setStyle(this._element.nativeElement, 'paddingLeft', '');
6202 this._renderer.setStyle(this._element.nativeElement, 'paddingRight', '');
6203 }
6204 /** Scroll bar tricks */
6205 /** @internal */
6206 checkScrollbar() {
6207 this.isBodyOverflowing = document$2.body.clientWidth < win$1.innerWidth;
6208 this.scrollbarWidth = this.getScrollbarWidth();
6209 }
6210 setScrollbar() {
6211 if (!document$2) {
6212 return;
6213 }
6214 this.originalBodyPadding = parseInt(win$1.getComputedStyle(document$2.body).getPropertyValue('padding-right') || 0, 10);
6215 }
6216 // thx d.walsh
6217 getScrollbarWidth() {
6218 const scrollDiv = this._renderer.createElement('div', void 0);
6219 this._renderer.appendChild(document$2.body, scrollDiv);
6220 scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
6221 const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
6222 document$2.body.removeChild(scrollDiv);
6223 return scrollbarWidth;
6224 }
6225}
6226ModalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalDirective, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
6227ModalDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ModalDirective, selector: "[mdbModal]", inputs: { config: "config" }, outputs: { onShow: "onShow", open: "open", onShown: "onShown", opened: "opened", onHide: "onHide", close: "close", onHidden: "onHidden", closed: "closed" }, host: { listeners: { "click": "onClick($event)", "keydown.esc": "onEsc()" } }, exportAs: ["mdb-modal", "mdbModal"], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".img-fluid,.modal-dialog.cascading-modal.modal-avatar .modal-header,.video-fluid{max-width:100%;height:auto}.flex-center{display:flex;justify-content:center;align-items:center;height:100%}.flex-center p{margin:0}.flex-center ul{text-align:center}.flex-center ul li{margin-bottom:1rem}.flex-center ul li:last-of-type{margin-bottom:0}.hr-light{border-top:1px solid #fff}.hr-dark{border-top:1px solid #666}.w-responsive{width:75%}@media (max-width: 740px){.w-responsive{width:100%}}.collapsible-body{display:none}.jumbotron{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border-radius:.125rem;background-color:#fff}.bg-primary{background-color:#4285f4!important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1266f1!important}.border-primary{border-color:#4285f4!important}.bg-danger{background-color:#ff3547!important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#ff0219!important}.border-danger{border-color:#ff3547!important}.bg-warning{background-color:#fb3!important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#fa0!important}.border-warning{border-color:#fb3!important}.bg-success{background-color:#00c851!important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00953c!important}.border-success{border-color:#00c851!important}.bg-info{background-color:#33b5e5!important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#1a9bcb!important}.border-info{border-color:#33b5e5!important}.bg-default{background-color:#2bbbad!important}a.bg-default:hover,a.bg-default:focus,button.bg-default:hover,button.bg-default:focus{background-color:#219287!important}.border-default{border-color:#2bbbad!important}.bg-secondary{background-color:#a6c!important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#9540bf!important}.border-secondary{border-color:#a6c!important}.bg-dark{background-color:#212121!important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#080808!important}.border-dark{border-color:#212121!important}.bg-light{background-color:#e0e0e0!important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#c7c7c7!important}.border-light{border-color:#e0e0e0!important}.card-img-100{width:100px;height:100px}.card-img-64{width:64px;height:64px}.mml-1{margin-left:-.25rem!important}.flex-1{flex:1}body.modal-open{overflow:auto}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;border:0;border-radius:.125rem}.modal-dialog .modal-content .modal-header{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .close{opacity:1;text-shadow:none;color:#fff;outline:0}.modal-dialog.cascading-modal .modal-header{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;margin:-2rem 1rem 1rem;border:none;border-radius:.125rem;padding:1.5rem;text-align:center}.modal-dialog.cascading-modal .modal-header .close{margin-right:1rem}.modal-dialog.cascading-modal .modal-header .title{margin-bottom:0;width:100%;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fas,.modal-dialog.cascading-modal .modal-header .title .fab,.modal-dialog.cascading-modal .modal-header .title .far{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;margin:-1.5rem 1rem 0;display:flex}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li{flex:1}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li a{text-align:center}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0;box-shadow:unset}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{padding-left:2rem;padding-right:2rem;color:#616161}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{margin-top:1rem;text-align:center}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{box-shadow:none;margin:-6rem 0 -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px;box-shadow:0 8px 17px #0003,0 6px 20px #00000030;margin-left:auto;margin-right:auto}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;font-size:1.15rem;color:#fff}.modal-dialog.modal-notify .modal-header{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify.modal-primary .modal-header{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .fas,.modal-dialog.modal-notify.modal-primary .fab,.modal-dialog.modal-notify.modal-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-primary .badge{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .btn .fas,.modal-dialog.modal-notify.modal-primary .btn .fab,.modal-dialog.modal-notify.modal-primary .btn .far{color:#fff}.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fas,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fab,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .fas,.modal-dialog.modal-notify.modal-danger .fab,.modal-dialog.modal-notify.modal-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .btn .fas,.modal-dialog.modal-notify.modal-danger .btn .fab,.modal-dialog.modal-notify.modal-danger .btn .far{color:#fff}.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fas,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fab,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .fas,.modal-dialog.modal-notify.modal-warning .fab,.modal-dialog.modal-notify.modal-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-warning .badge{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .btn .fas,.modal-dialog.modal-notify.modal-warning .btn .fab,.modal-dialog.modal-notify.modal-warning .btn .far{color:#fff}.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fas,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fab,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#00c851}.modal-dialog.modal-notify.modal-success .fas,.modal-dialog.modal-notify.modal-success .fab,.modal-dialog.modal-notify.modal-success .far{color:#00c851}.modal-dialog.modal-notify.modal-success .badge{background-color:#00c851}.modal-dialog.modal-notify.modal-success .btn .fas,.modal-dialog.modal-notify.modal-success .btn .fab,.modal-dialog.modal-notify.modal-success .btn .far{color:#fff}.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fas,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fab,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .far{color:#00c851}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .fas,.modal-dialog.modal-notify.modal-info .fab,.modal-dialog.modal-notify.modal-info .far{color:#33b5e5}.modal-dialog.modal-notify.modal-info .badge{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .btn .fas,.modal-dialog.modal-notify.modal-info .btn .fab,.modal-dialog.modal-notify.modal-info .btn .far{color:#fff}.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fas,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fab,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .far{color:#33b5e5}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom{bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{bottom:10px;left:10px}.modal .modal-dialog.modal-bottom-right{bottom:10px;right:10px}}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}@media (min-width: 992px){.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;margin:0!important;width:100%;max-width:100%!important}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-frame.modal-dialog{height:inherit}.modal .modal-full-height{position:absolute;display:flex;margin:0;width:400px;height:auto;min-height:100%;top:0;right:0}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;max-width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{min-height:0;top:auto}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{width:90%;max-width:90%}}@media (min-width: 992px) and (min-width: 992px){.modal .modal-full-height.modal-lg{width:800px;max-width:800px}}@media (min-width: 992px) and (min-width: 1200px){.modal .modal-full-height.modal-lg{width:1000px;max-width:1000px}}@media (min-width: 992px){.modal .modal-side{position:absolute;bottom:10px;right:10px;margin:0;width:400px}}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{border:0}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0;left:0;right:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom>.modal-content{position:absolute;bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{left:10px;bottom:10px}.modal .modal-dialog.modal-bottom-right{right:10px;bottom:10px}}.modal .modal-side.modal-top{top:0}.modal .modal-side.modal-left{left:0}.modal .modal-side.modal-right{right:0}.modal .modal-side.modal-bottom{bottom:0}.modal .modal-side.modal-top-left{top:10px;left:10px}.modal .modal-side.modal-top-right{top:10px;right:10px}.modal .modal-side.modal-bottom-left{left:10px;bottom:10px}.modal .modal-side.modal-bottom-right{right:10px;bottom:10px}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}.modal.fade.in{opacity:1}.modal.fade.in .modal-dialog{transform:translate(0)}.modal.fade.in .modal-dialog .relative{display:inline-block}.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;width:100%;max-width:100%;margin:0}@media (max-width: 767px){.modal .modal-frame{padding:.5rem}}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-full-height{display:flex;position:absolute;width:400px;min-height:100%;margin:0;top:0;right:0}@media (max-width: 576px){.modal .modal-full-height{width:100%;padding:.5rem}}@media (max-width: 992px){.modal .modal-full-height{width:100%;height:unset;position:unset}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin:1.75rem auto;min-height:unset}}@media (max-width: 768px){.modal .modal-full-height.modal-bottom{margin-top:1.75rem}}@media (min-width: 768px) and (max-width: 992px){.modal .modal-full-height.modal-bottom{margin-bottom:1.75rem}.modal .modal-full-height.modal-bottom .modal-content{bottom:1rem}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin-left:auto;margin-right:auto}}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{bottom:0}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{max-width:90%;width:90%}@media (min-width: 992px){.modal .modal-full-height.modal-lg{max-width:800px;width:800px}}@media (min-width: 1200px){.modal .modal-full-height.modal-lg{max-width:1000px;width:1000px}}.modal .modal-side{position:absolute;right:10px;bottom:10px;margin:0;min-width:100px}@media (max-width: 768px){.modal .modal-side{padding-left:.5rem}}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .modal-header{text-align:center;margin:-2rem 1rem 1rem;padding:1.5rem;border:none;flex-direction:column}.modal-dialog.cascading-modal .modal-header .close{margin-right:2.5rem}.modal-dialog.cascading-modal .modal-header.white-text .close{color:#fff;opacity:1}.modal-dialog.cascading-modal .modal-header .title{width:100%;margin-bottom:0;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fa{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{margin:-1.5rem 1rem 0}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{color:#616161;padding-right:2rem;padding-left:2rem}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{text-align:center;margin-top:1rem}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{margin:-6rem 2rem -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;color:#fff;font-size:1.15rem}.modal-dialog.modal-notify .modal-header{border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify .btn-outline-secondary-modal{background-color:transparent}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .fa{color:#5394ff}.modal-dialog.modal-notify.modal-info .badge{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal{background:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-info .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-info .btn-primary-modal:active{background-color:#6da4ff!important}.modal-dialog.modal-notify.modal-info .btn-primary-modal.active{background-color:#0059ec!important}.modal-dialog.modal-notify.modal-info .btn-outline-secondary-modal{border:2px solid #5394ff;color:#5394ff!important}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .fa{color:#ff8e38}.modal-dialog.modal-notify.modal-warning .badge{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal{background:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:active{background-color:#ff9c52!important}.modal-dialog.modal-notify.modal-warning .btn-primary-modal.active{background-color:#d15a00!important}.modal-dialog.modal-notify.modal-warning .btn-outline-secondary-modal{border:2px solid #ff8e38;color:#ff8e38!important}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .fa{color:#01d36b}.modal-dialog.modal-notify.modal-success .badge{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal{background:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-success .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-success .btn-primary-modal:active{background-color:#01ec78!important}.modal-dialog.modal-notify.modal-success .btn-primary-modal.active{background-color:#016d38!important}.modal-dialog.modal-notify.modal-success .btn-outline-secondary-modal{border:2px solid #01d36b;color:#01d36b!important}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .fa{color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal{background:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:active{background-color:#ff6565!important}.modal-dialog.modal-notify.modal-danger .btn-primary-modal.active{background-color:#e40000!important}.modal-dialog.modal-notify.modal-danger .btn-outline-secondary-modal{border:2px solid #ff4b4b;color:#ff4b4b!important}.modal-sm .modal-content{margin:0 auto;max-width:300px}@media (min-width: 768px){.modal-sm{max-width:300px}}.modal .modal-fluid,.modal .modal-frame{width:100%;max-width:100%}.modal-ext .modal-content .modal-header{text-align:center}.modal-ext .modal-content .options{float:left}.modal-ext .modal-content .modal-body .text-xs-center fieldset{margin-top:20px}.modal-ext .modal-content .call{margin-top:1rem}.modal-ext .modal-content .modal-body{padding:2rem 2rem 1rem}.modal-content:not(.card-image) .close{position:absolute;right:15px}.modal-cart li p{margin:5px;font-weight:400}.modal-cart li p .badge{margin-left:10px;margin-top:3px;font-weight:400;position:absolute}.modal-cart li p .quantity{font-size:16px;margin-right:7px;font-weight:300}.modal-cart .cartPageLink{margin-left:10px}.modal-cart .cartPageLink a{text-decoration:underline;color:#666}.modal-cart .total{float:right;font-weight:400}.cf-phone{margin-left:7px}.side-modal{position:fixed;width:400px;height:100%;width:100%;z-index:9999}.side-modal .modal-dialog{position:absolute;bottom:10px;right:10px;width:400px;margin:10px}@media (max-width: 760px){.side-modal .modal-dialog{display:none}}.side-modal .modal-header{padding:1rem}.side-modal .modal-header .heading{margin:0;padding:0}.side-modal .modal-content{border:none}.modal-dynamic>:first-child{display:flex;flex-direction:column;height:100%}.side-modal.fade:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.transparent-bd{opacity:0!important}.modal-backdrop.in,.modal-backdrop{opacity:.5}#exampleModalScroll{overflow-x:hidden;overflow-y:auto}.modal-open .modal{overflow-x:hidden;overflow-y:hidden}.form-dark .card-image{background-size:100%}\n"], encapsulation: i0.ViewEncapsulation.None });
6228i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalDirective, decorators: [{
6229 type: Component,
6230 args: [{ selector: '[mdbModal]', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, exportAs: 'mdb-modal, mdbModal', styles: [".img-fluid,.modal-dialog.cascading-modal.modal-avatar .modal-header,.video-fluid{max-width:100%;height:auto}.flex-center{display:flex;justify-content:center;align-items:center;height:100%}.flex-center p{margin:0}.flex-center ul{text-align:center}.flex-center ul li{margin-bottom:1rem}.flex-center ul li:last-of-type{margin-bottom:0}.hr-light{border-top:1px solid #fff}.hr-dark{border-top:1px solid #666}.w-responsive{width:75%}@media (max-width: 740px){.w-responsive{width:100%}}.collapsible-body{display:none}.jumbotron{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border-radius:.125rem;background-color:#fff}.bg-primary{background-color:#4285f4!important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1266f1!important}.border-primary{border-color:#4285f4!important}.bg-danger{background-color:#ff3547!important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#ff0219!important}.border-danger{border-color:#ff3547!important}.bg-warning{background-color:#fb3!important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#fa0!important}.border-warning{border-color:#fb3!important}.bg-success{background-color:#00c851!important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00953c!important}.border-success{border-color:#00c851!important}.bg-info{background-color:#33b5e5!important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#1a9bcb!important}.border-info{border-color:#33b5e5!important}.bg-default{background-color:#2bbbad!important}a.bg-default:hover,a.bg-default:focus,button.bg-default:hover,button.bg-default:focus{background-color:#219287!important}.border-default{border-color:#2bbbad!important}.bg-secondary{background-color:#a6c!important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#9540bf!important}.border-secondary{border-color:#a6c!important}.bg-dark{background-color:#212121!important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#080808!important}.border-dark{border-color:#212121!important}.bg-light{background-color:#e0e0e0!important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#c7c7c7!important}.border-light{border-color:#e0e0e0!important}.card-img-100{width:100px;height:100px}.card-img-64{width:64px;height:64px}.mml-1{margin-left:-.25rem!important}.flex-1{flex:1}body.modal-open{overflow:auto}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;border:0;border-radius:.125rem}.modal-dialog .modal-content .modal-header{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .close{opacity:1;text-shadow:none;color:#fff;outline:0}.modal-dialog.cascading-modal .modal-header{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;margin:-2rem 1rem 1rem;border:none;border-radius:.125rem;padding:1.5rem;text-align:center}.modal-dialog.cascading-modal .modal-header .close{margin-right:1rem}.modal-dialog.cascading-modal .modal-header .title{margin-bottom:0;width:100%;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fas,.modal-dialog.cascading-modal .modal-header .title .fab,.modal-dialog.cascading-modal .modal-header .title .far{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;margin:-1.5rem 1rem 0;display:flex}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li{flex:1}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li a{text-align:center}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0;box-shadow:unset}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{padding-left:2rem;padding-right:2rem;color:#616161}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{margin-top:1rem;text-align:center}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{box-shadow:none;margin:-6rem 0 -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px;box-shadow:0 8px 17px #0003,0 6px 20px #00000030;margin-left:auto;margin-right:auto}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;font-size:1.15rem;color:#fff}.modal-dialog.modal-notify .modal-header{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify.modal-primary .modal-header{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .fas,.modal-dialog.modal-notify.modal-primary .fab,.modal-dialog.modal-notify.modal-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-primary .badge{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .btn .fas,.modal-dialog.modal-notify.modal-primary .btn .fab,.modal-dialog.modal-notify.modal-primary .btn .far{color:#fff}.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fas,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fab,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .fas,.modal-dialog.modal-notify.modal-danger .fab,.modal-dialog.modal-notify.modal-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .btn .fas,.modal-dialog.modal-notify.modal-danger .btn .fab,.modal-dialog.modal-notify.modal-danger .btn .far{color:#fff}.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fas,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fab,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .fas,.modal-dialog.modal-notify.modal-warning .fab,.modal-dialog.modal-notify.modal-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-warning .badge{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .btn .fas,.modal-dialog.modal-notify.modal-warning .btn .fab,.modal-dialog.modal-notify.modal-warning .btn .far{color:#fff}.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fas,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fab,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#00c851}.modal-dialog.modal-notify.modal-success .fas,.modal-dialog.modal-notify.modal-success .fab,.modal-dialog.modal-notify.modal-success .far{color:#00c851}.modal-dialog.modal-notify.modal-success .badge{background-color:#00c851}.modal-dialog.modal-notify.modal-success .btn .fas,.modal-dialog.modal-notify.modal-success .btn .fab,.modal-dialog.modal-notify.modal-success .btn .far{color:#fff}.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fas,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fab,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .far{color:#00c851}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .fas,.modal-dialog.modal-notify.modal-info .fab,.modal-dialog.modal-notify.modal-info .far{color:#33b5e5}.modal-dialog.modal-notify.modal-info .badge{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .btn .fas,.modal-dialog.modal-notify.modal-info .btn .fab,.modal-dialog.modal-notify.modal-info .btn .far{color:#fff}.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fas,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fab,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .far{color:#33b5e5}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom{bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{bottom:10px;left:10px}.modal .modal-dialog.modal-bottom-right{bottom:10px;right:10px}}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}@media (min-width: 992px){.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;margin:0!important;width:100%;max-width:100%!important}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-frame.modal-dialog{height:inherit}.modal .modal-full-height{position:absolute;display:flex;margin:0;width:400px;height:auto;min-height:100%;top:0;right:0}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;max-width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{min-height:0;top:auto}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{width:90%;max-width:90%}}@media (min-width: 992px) and (min-width: 992px){.modal .modal-full-height.modal-lg{width:800px;max-width:800px}}@media (min-width: 992px) and (min-width: 1200px){.modal .modal-full-height.modal-lg{width:1000px;max-width:1000px}}@media (min-width: 992px){.modal .modal-side{position:absolute;bottom:10px;right:10px;margin:0;width:400px}}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{border:0}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0;left:0;right:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom>.modal-content{position:absolute;bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{left:10px;bottom:10px}.modal .modal-dialog.modal-bottom-right{right:10px;bottom:10px}}.modal .modal-side.modal-top{top:0}.modal .modal-side.modal-left{left:0}.modal .modal-side.modal-right{right:0}.modal .modal-side.modal-bottom{bottom:0}.modal .modal-side.modal-top-left{top:10px;left:10px}.modal .modal-side.modal-top-right{top:10px;right:10px}.modal .modal-side.modal-bottom-left{left:10px;bottom:10px}.modal .modal-side.modal-bottom-right{right:10px;bottom:10px}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}.modal.fade.in{opacity:1}.modal.fade.in .modal-dialog{transform:translate(0)}.modal.fade.in .modal-dialog .relative{display:inline-block}.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;width:100%;max-width:100%;margin:0}@media (max-width: 767px){.modal .modal-frame{padding:.5rem}}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-full-height{display:flex;position:absolute;width:400px;min-height:100%;margin:0;top:0;right:0}@media (max-width: 576px){.modal .modal-full-height{width:100%;padding:.5rem}}@media (max-width: 992px){.modal .modal-full-height{width:100%;height:unset;position:unset}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin:1.75rem auto;min-height:unset}}@media (max-width: 768px){.modal .modal-full-height.modal-bottom{margin-top:1.75rem}}@media (min-width: 768px) and (max-width: 992px){.modal .modal-full-height.modal-bottom{margin-bottom:1.75rem}.modal .modal-full-height.modal-bottom .modal-content{bottom:1rem}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin-left:auto;margin-right:auto}}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{bottom:0}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{max-width:90%;width:90%}@media (min-width: 992px){.modal .modal-full-height.modal-lg{max-width:800px;width:800px}}@media (min-width: 1200px){.modal .modal-full-height.modal-lg{max-width:1000px;width:1000px}}.modal .modal-side{position:absolute;right:10px;bottom:10px;margin:0;min-width:100px}@media (max-width: 768px){.modal .modal-side{padding-left:.5rem}}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .modal-header{text-align:center;margin:-2rem 1rem 1rem;padding:1.5rem;border:none;flex-direction:column}.modal-dialog.cascading-modal .modal-header .close{margin-right:2.5rem}.modal-dialog.cascading-modal .modal-header.white-text .close{color:#fff;opacity:1}.modal-dialog.cascading-modal .modal-header .title{width:100%;margin-bottom:0;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fa{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{margin:-1.5rem 1rem 0}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{color:#616161;padding-right:2rem;padding-left:2rem}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{text-align:center;margin-top:1rem}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{margin:-6rem 2rem -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;color:#fff;font-size:1.15rem}.modal-dialog.modal-notify .modal-header{border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify .btn-outline-secondary-modal{background-color:transparent}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .fa{color:#5394ff}.modal-dialog.modal-notify.modal-info .badge{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal{background:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-info .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-info .btn-primary-modal:active{background-color:#6da4ff!important}.modal-dialog.modal-notify.modal-info .btn-primary-modal.active{background-color:#0059ec!important}.modal-dialog.modal-notify.modal-info .btn-outline-secondary-modal{border:2px solid #5394ff;color:#5394ff!important}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .fa{color:#ff8e38}.modal-dialog.modal-notify.modal-warning .badge{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal{background:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:active{background-color:#ff9c52!important}.modal-dialog.modal-notify.modal-warning .btn-primary-modal.active{background-color:#d15a00!important}.modal-dialog.modal-notify.modal-warning .btn-outline-secondary-modal{border:2px solid #ff8e38;color:#ff8e38!important}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .fa{color:#01d36b}.modal-dialog.modal-notify.modal-success .badge{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal{background:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-success .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-success .btn-primary-modal:active{background-color:#01ec78!important}.modal-dialog.modal-notify.modal-success .btn-primary-modal.active{background-color:#016d38!important}.modal-dialog.modal-notify.modal-success .btn-outline-secondary-modal{border:2px solid #01d36b;color:#01d36b!important}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .fa{color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal{background:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:active{background-color:#ff6565!important}.modal-dialog.modal-notify.modal-danger .btn-primary-modal.active{background-color:#e40000!important}.modal-dialog.modal-notify.modal-danger .btn-outline-secondary-modal{border:2px solid #ff4b4b;color:#ff4b4b!important}.modal-sm .modal-content{margin:0 auto;max-width:300px}@media (min-width: 768px){.modal-sm{max-width:300px}}.modal .modal-fluid,.modal .modal-frame{width:100%;max-width:100%}.modal-ext .modal-content .modal-header{text-align:center}.modal-ext .modal-content .options{float:left}.modal-ext .modal-content .modal-body .text-xs-center fieldset{margin-top:20px}.modal-ext .modal-content .call{margin-top:1rem}.modal-ext .modal-content .modal-body{padding:2rem 2rem 1rem}.modal-content:not(.card-image) .close{position:absolute;right:15px}.modal-cart li p{margin:5px;font-weight:400}.modal-cart li p .badge{margin-left:10px;margin-top:3px;font-weight:400;position:absolute}.modal-cart li p .quantity{font-size:16px;margin-right:7px;font-weight:300}.modal-cart .cartPageLink{margin-left:10px}.modal-cart .cartPageLink a{text-decoration:underline;color:#666}.modal-cart .total{float:right;font-weight:400}.cf-phone{margin-left:7px}.side-modal{position:fixed;width:400px;height:100%;width:100%;z-index:9999}.side-modal .modal-dialog{position:absolute;bottom:10px;right:10px;width:400px;margin:10px}@media (max-width: 760px){.side-modal .modal-dialog{display:none}}.side-modal .modal-header{padding:1rem}.side-modal .modal-header .heading{margin:0;padding:0}.side-modal .modal-content{border:none}.modal-dynamic>:first-child{display:flex;flex-direction:column;height:100%}.side-modal.fade:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.transparent-bd{opacity:0!important}.modal-backdrop.in,.modal-backdrop{opacity:.5}#exampleModalScroll{overflow-x:hidden;overflow-y:auto}.modal-open .modal{overflow-x:hidden;overflow-y:hidden}.form-dark .card-image{background-size:100%}\n"] }]
6231 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: ComponentLoaderFactory }]; }, propDecorators: { config: [{
6232 type: Input
6233 }], onShow: [{
6234 type: Output
6235 }], open: [{
6236 type: Output
6237 }], onShown: [{
6238 type: Output
6239 }], opened: [{
6240 type: Output
6241 }], onHide: [{
6242 type: Output
6243 }], close: [{
6244 type: Output
6245 }], onHidden: [{
6246 type: Output
6247 }], closed: [{
6248 type: Output
6249 }], onClick: [{
6250 type: HostListener,
6251 args: ['click', ['$event']]
6252 }], onEsc: [{
6253 type: HostListener,
6254 args: ['keydown.esc']
6255 }] } });
6256
6257class ModalContainerComponent {
6258 constructor(options, _element, _renderer) {
6259 // this.mdbModalService = msConfig.serviceInstance;
6260 this._renderer = _renderer;
6261 this.modalClass = 'modal';
6262 this.tabindex = -1;
6263 this.role = 'dialog';
6264 this.modal = true;
6265 this.isShown = false;
6266 this.isModalHiding = false;
6267 this._element = _element;
6268 this.config = Object.assign({}, options);
6269 }
6270 onClick(event) {
6271 if (this.config.ignoreBackdropClick ||
6272 this.config.backdrop === 'static' ||
6273 event.target !== this._element.nativeElement) {
6274 return;
6275 }
6276 this.mdbModalService.setDismissReason(DISMISS_REASONS.BACKRDOP);
6277 this.hide();
6278 }
6279 onEsc() {
6280 if (this.config.keyboard && this.level === this.mdbModalService.getModalsCount()) {
6281 this.mdbModalService.setDismissReason(DISMISS_REASONS.ESC);
6282 this.hide();
6283 }
6284 }
6285 ngOnInit() {
6286 if (this.config.animated) {
6287 this._renderer.addClass(this._element.nativeElement, 'fade');
6288 }
6289 this._renderer.setStyle(this._element.nativeElement, 'display', 'block');
6290 if ((window &&
6291 window.navigator.userAgent.indexOf('Edge') !== -1 &&
6292 this.config &&
6293 this.config.toString().indexOf('side-modal') === -1) ||
6294 (window &&
6295 window.navigator.userAgent.indexOf('Edge') !== -1 &&
6296 this.config &&
6297 this.config.toString().indexOf('modal-full-height') === -1)) {
6298 this.isShown = true;
6299 this._renderer.addClass(this._element.nativeElement, isBs3$1() ? ClassName.IN : ClassName.SHOW);
6300 this._renderer.setStyle(this._element.nativeElement, 'transition', 'transform 0.3s ease-out');
6301 this._renderer.setStyle(this._element.nativeElement, 'transform', 'translate(0, 25px)');
6302 }
6303 else {
6304 setTimeout(() => {
6305 this.isShown = true;
6306 this._renderer.addClass(this._element.nativeElement, isBs3$1() ? ClassName.IN : ClassName.SHOW);
6307 }, this.isAnimated ? TransitionDurations.BACKDROP : 0);
6308 }
6309 if (document && document.body) {
6310 if (this.mdbModalService.getModalsCount() === 1) {
6311 this.mdbModalService.checkScrollbar();
6312 this.mdbModalService.setScrollbar();
6313 }
6314 this._renderer.addClass(document.body, ClassName.OPEN);
6315 }
6316 if (this.config.containerClass) {
6317 this.updateContainerClass();
6318 }
6319 if (this.config.scroll) {
6320 this._renderer.setStyle(this._element.nativeElement, 'overflow-y', 'auto');
6321 }
6322 }
6323 focusModalElement() {
6324 if (this.config.focus) {
6325 this._element.nativeElement.focus();
6326 }
6327 }
6328 updateContainerClass() {
6329 if (this.config.containerClass) {
6330 const containerClasses = this.config.containerClass;
6331 const classArr = containerClasses.split(' ');
6332 for (let i = 0; i < classArr.length; i++) {
6333 this._renderer.addClass(this._element.nativeElement, classArr[i]);
6334 }
6335 }
6336 }
6337 ngOnDestroy() {
6338 if (this.isShown) {
6339 this.hide();
6340 }
6341 }
6342 hide() {
6343 if (this.isModalHiding || !this.isShown) {
6344 return;
6345 }
6346 this.isModalHiding = true;
6347 this._renderer.removeClass(this._element.nativeElement, isBs3$1() ? ClassName.IN : ClassName.SHOW);
6348 // fix(modal): resolved problem with not pausing iframe/video when closing modal
6349 const iframeElements = Array.from(this._element.nativeElement.querySelectorAll('iframe'));
6350 const videoElements = Array.from(this._element.nativeElement.querySelectorAll('video'));
6351 iframeElements.forEach((iframe) => {
6352 const srcAttribute = iframe.getAttribute('src');
6353 this._renderer.setAttribute(iframe, 'src', srcAttribute);
6354 });
6355 videoElements.forEach((video) => {
6356 video.pause();
6357 });
6358 setTimeout(() => {
6359 this.isShown = false;
6360 if (document && document.body && this.mdbModalService.getModalsCount() === 1) {
6361 this._renderer.removeClass(document.body, ClassName.OPEN);
6362 }
6363 this.mdbModalService.hide(this.level);
6364 this.isModalHiding = false;
6365 }, this.isAnimated ? TransitionDurations.MODAL : 0);
6366 }
6367}
6368ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalContainerComponent, deps: [{ token: ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
6369ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ModalContainerComponent, selector: "mdb-modal-container", host: { listeners: { "click": "onClick($event)", "window:keydown.esc": "onEsc()" }, properties: { "tabindex": "this.tabindex", "attr.role": "this.role", "class.modal": "this.modal" } }, ngImport: i0, template: "<div\n [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\"\n role=\"document\"\n cdkTrapFocus\n>\n <div class=\"modal-content modal-dynamic\"><ng-content></ng-content></div>\n</div>\n", styles: [".img-fluid,.modal-dialog.cascading-modal.modal-avatar .modal-header,.video-fluid{max-width:100%;height:auto}.flex-center{display:flex;justify-content:center;align-items:center;height:100%}.flex-center p{margin:0}.flex-center ul{text-align:center}.flex-center ul li{margin-bottom:1rem}.flex-center ul li:last-of-type{margin-bottom:0}.hr-light{border-top:1px solid #fff}.hr-dark{border-top:1px solid #666}.w-responsive{width:75%}@media (max-width: 740px){.w-responsive{width:100%}}.collapsible-body{display:none}.jumbotron{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border-radius:.125rem;background-color:#fff}.bg-primary{background-color:#4285f4!important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1266f1!important}.border-primary{border-color:#4285f4!important}.bg-danger{background-color:#ff3547!important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#ff0219!important}.border-danger{border-color:#ff3547!important}.bg-warning{background-color:#fb3!important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#fa0!important}.border-warning{border-color:#fb3!important}.bg-success{background-color:#00c851!important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00953c!important}.border-success{border-color:#00c851!important}.bg-info{background-color:#33b5e5!important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#1a9bcb!important}.border-info{border-color:#33b5e5!important}.bg-default{background-color:#2bbbad!important}a.bg-default:hover,a.bg-default:focus,button.bg-default:hover,button.bg-default:focus{background-color:#219287!important}.border-default{border-color:#2bbbad!important}.bg-secondary{background-color:#a6c!important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#9540bf!important}.border-secondary{border-color:#a6c!important}.bg-dark{background-color:#212121!important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#080808!important}.border-dark{border-color:#212121!important}.bg-light{background-color:#e0e0e0!important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#c7c7c7!important}.border-light{border-color:#e0e0e0!important}.card-img-100{width:100px;height:100px}.card-img-64{width:64px;height:64px}.mml-1{margin-left:-.25rem!important}.flex-1{flex:1}body.modal-open{overflow:auto}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;border:0;border-radius:.125rem}.modal-dialog .modal-content .modal-header{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .close{opacity:1;text-shadow:none;color:#fff;outline:0}.modal-dialog.cascading-modal .modal-header{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;margin:-2rem 1rem 1rem;border:none;border-radius:.125rem;padding:1.5rem;text-align:center}.modal-dialog.cascading-modal .modal-header .close{margin-right:1rem}.modal-dialog.cascading-modal .modal-header .title{margin-bottom:0;width:100%;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fas,.modal-dialog.cascading-modal .modal-header .title .fab,.modal-dialog.cascading-modal .modal-header .title .far{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;margin:-1.5rem 1rem 0;display:flex}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li{flex:1}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li a{text-align:center}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0;box-shadow:unset}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{padding-left:2rem;padding-right:2rem;color:#616161}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{margin-top:1rem;text-align:center}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{box-shadow:none;margin:-6rem 0 -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px;box-shadow:0 8px 17px #0003,0 6px 20px #00000030;margin-left:auto;margin-right:auto}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;font-size:1.15rem;color:#fff}.modal-dialog.modal-notify .modal-header{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify.modal-primary .modal-header{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .fas,.modal-dialog.modal-notify.modal-primary .fab,.modal-dialog.modal-notify.modal-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-primary .badge{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .btn .fas,.modal-dialog.modal-notify.modal-primary .btn .fab,.modal-dialog.modal-notify.modal-primary .btn .far{color:#fff}.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fas,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fab,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .fas,.modal-dialog.modal-notify.modal-danger .fab,.modal-dialog.modal-notify.modal-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .btn .fas,.modal-dialog.modal-notify.modal-danger .btn .fab,.modal-dialog.modal-notify.modal-danger .btn .far{color:#fff}.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fas,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fab,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .fas,.modal-dialog.modal-notify.modal-warning .fab,.modal-dialog.modal-notify.modal-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-warning .badge{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .btn .fas,.modal-dialog.modal-notify.modal-warning .btn .fab,.modal-dialog.modal-notify.modal-warning .btn .far{color:#fff}.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fas,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fab,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#00c851}.modal-dialog.modal-notify.modal-success .fas,.modal-dialog.modal-notify.modal-success .fab,.modal-dialog.modal-notify.modal-success .far{color:#00c851}.modal-dialog.modal-notify.modal-success .badge{background-color:#00c851}.modal-dialog.modal-notify.modal-success .btn .fas,.modal-dialog.modal-notify.modal-success .btn .fab,.modal-dialog.modal-notify.modal-success .btn .far{color:#fff}.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fas,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fab,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .far{color:#00c851}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .fas,.modal-dialog.modal-notify.modal-info .fab,.modal-dialog.modal-notify.modal-info .far{color:#33b5e5}.modal-dialog.modal-notify.modal-info .badge{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .btn .fas,.modal-dialog.modal-notify.modal-info .btn .fab,.modal-dialog.modal-notify.modal-info .btn .far{color:#fff}.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fas,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fab,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .far{color:#33b5e5}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom{bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{bottom:10px;left:10px}.modal .modal-dialog.modal-bottom-right{bottom:10px;right:10px}}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}@media (min-width: 992px){.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;margin:0!important;width:100%;max-width:100%!important}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-frame.modal-dialog{height:inherit}.modal .modal-full-height{position:absolute;display:flex;margin:0;width:400px;height:auto;min-height:100%;top:0;right:0}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;max-width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{min-height:0;top:auto}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{width:90%;max-width:90%}}@media (min-width: 992px) and (min-width: 992px){.modal .modal-full-height.modal-lg{width:800px;max-width:800px}}@media (min-width: 992px) and (min-width: 1200px){.modal .modal-full-height.modal-lg{width:1000px;max-width:1000px}}@media (min-width: 992px){.modal .modal-side{position:absolute;bottom:10px;right:10px;margin:0;width:400px}}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{border:0}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0;left:0;right:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom>.modal-content{position:absolute;bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{left:10px;bottom:10px}.modal .modal-dialog.modal-bottom-right{right:10px;bottom:10px}}.modal .modal-side.modal-top{top:0}.modal .modal-side.modal-left{left:0}.modal .modal-side.modal-right{right:0}.modal .modal-side.modal-bottom{bottom:0}.modal .modal-side.modal-top-left{top:10px;left:10px}.modal .modal-side.modal-top-right{top:10px;right:10px}.modal .modal-side.modal-bottom-left{left:10px;bottom:10px}.modal .modal-side.modal-bottom-right{right:10px;bottom:10px}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}.modal.fade.in{opacity:1}.modal.fade.in .modal-dialog{transform:translate(0)}.modal.fade.in .modal-dialog .relative{display:inline-block}.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;width:100%;max-width:100%;margin:0}@media (max-width: 767px){.modal .modal-frame{padding:.5rem}}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-full-height{display:flex;position:absolute;width:400px;min-height:100%;margin:0;top:0;right:0}@media (max-width: 576px){.modal .modal-full-height{width:100%;padding:.5rem}}@media (max-width: 992px){.modal .modal-full-height{width:100%;height:unset;position:unset}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin:1.75rem auto;min-height:unset}}@media (max-width: 768px){.modal .modal-full-height.modal-bottom{margin-top:1.75rem}}@media (min-width: 768px) and (max-width: 992px){.modal .modal-full-height.modal-bottom{margin-bottom:1.75rem}.modal .modal-full-height.modal-bottom .modal-content{bottom:1rem}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin-left:auto;margin-right:auto}}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{bottom:0}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{max-width:90%;width:90%}@media (min-width: 992px){.modal .modal-full-height.modal-lg{max-width:800px;width:800px}}@media (min-width: 1200px){.modal .modal-full-height.modal-lg{max-width:1000px;width:1000px}}.modal .modal-side{position:absolute;right:10px;bottom:10px;margin:0;min-width:100px}@media (max-width: 768px){.modal .modal-side{padding-left:.5rem}}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .modal-header{text-align:center;margin:-2rem 1rem 1rem;padding:1.5rem;border:none;flex-direction:column}.modal-dialog.cascading-modal .modal-header .close{margin-right:2.5rem}.modal-dialog.cascading-modal .modal-header.white-text .close{color:#fff;opacity:1}.modal-dialog.cascading-modal .modal-header .title{width:100%;margin-bottom:0;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fa{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{margin:-1.5rem 1rem 0}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{color:#616161;padding-right:2rem;padding-left:2rem}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{text-align:center;margin-top:1rem}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{margin:-6rem 2rem -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;color:#fff;font-size:1.15rem}.modal-dialog.modal-notify .modal-header{border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify .btn-outline-secondary-modal{background-color:transparent}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .fa{color:#5394ff}.modal-dialog.modal-notify.modal-info .badge{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal{background:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-info .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-info .btn-primary-modal:active{background-color:#6da4ff!important}.modal-dialog.modal-notify.modal-info .btn-primary-modal.active{background-color:#0059ec!important}.modal-dialog.modal-notify.modal-info .btn-outline-secondary-modal{border:2px solid #5394ff;color:#5394ff!important}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .fa{color:#ff8e38}.modal-dialog.modal-notify.modal-warning .badge{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal{background:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:active{background-color:#ff9c52!important}.modal-dialog.modal-notify.modal-warning .btn-primary-modal.active{background-color:#d15a00!important}.modal-dialog.modal-notify.modal-warning .btn-outline-secondary-modal{border:2px solid #ff8e38;color:#ff8e38!important}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .fa{color:#01d36b}.modal-dialog.modal-notify.modal-success .badge{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal{background:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-success .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-success .btn-primary-modal:active{background-color:#01ec78!important}.modal-dialog.modal-notify.modal-success .btn-primary-modal.active{background-color:#016d38!important}.modal-dialog.modal-notify.modal-success .btn-outline-secondary-modal{border:2px solid #01d36b;color:#01d36b!important}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .fa{color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal{background:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:active{background-color:#ff6565!important}.modal-dialog.modal-notify.modal-danger .btn-primary-modal.active{background-color:#e40000!important}.modal-dialog.modal-notify.modal-danger .btn-outline-secondary-modal{border:2px solid #ff4b4b;color:#ff4b4b!important}.modal-sm .modal-content{margin:0 auto;max-width:300px}@media (min-width: 768px){.modal-sm{max-width:300px}}.modal .modal-fluid,.modal .modal-frame{width:100%;max-width:100%}.modal-ext .modal-content .modal-header{text-align:center}.modal-ext .modal-content .options{float:left}.modal-ext .modal-content .modal-body .text-xs-center fieldset{margin-top:20px}.modal-ext .modal-content .call{margin-top:1rem}.modal-ext .modal-content .modal-body{padding:2rem 2rem 1rem}.modal-content:not(.card-image) .close{position:absolute;right:15px}.modal-cart li p{margin:5px;font-weight:400}.modal-cart li p .badge{margin-left:10px;margin-top:3px;font-weight:400;position:absolute}.modal-cart li p .quantity{font-size:16px;margin-right:7px;font-weight:300}.modal-cart .cartPageLink{margin-left:10px}.modal-cart .cartPageLink a{text-decoration:underline;color:#666}.modal-cart .total{float:right;font-weight:400}.cf-phone{margin-left:7px}.side-modal{position:fixed;width:400px;height:100%;width:100%;z-index:9999}.side-modal .modal-dialog{position:absolute;bottom:10px;right:10px;width:400px;margin:10px}@media (max-width: 760px){.side-modal .modal-dialog{display:none}}.side-modal .modal-header{padding:1rem}.side-modal .modal-header .heading{margin:0;padding:0}.side-modal .modal-content{border:none}.modal-dynamic>:first-child{display:flex;flex-direction:column;height:100%}.side-modal.fade:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.transparent-bd{opacity:0!important}.modal-backdrop.in,.modal-backdrop{opacity:.5}#exampleModalScroll{overflow-x:hidden;overflow-y:auto}.modal-open .modal{overflow-x:hidden;overflow-y:hidden}.form-dark .card-image{background-size:100%}\n"], directives: [{ type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], encapsulation: i0.ViewEncapsulation.None });
6370i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalContainerComponent, decorators: [{
6371 type: Component,
6372 args: [{ selector: 'mdb-modal-container', encapsulation: ViewEncapsulation.None, template: "<div\n [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\"\n role=\"document\"\n cdkTrapFocus\n>\n <div class=\"modal-content modal-dynamic\"><ng-content></ng-content></div>\n</div>\n", styles: [".img-fluid,.modal-dialog.cascading-modal.modal-avatar .modal-header,.video-fluid{max-width:100%;height:auto}.flex-center{display:flex;justify-content:center;align-items:center;height:100%}.flex-center p{margin:0}.flex-center ul{text-align:center}.flex-center ul li{margin-bottom:1rem}.flex-center ul li:last-of-type{margin-bottom:0}.hr-light{border-top:1px solid #fff}.hr-dark{border-top:1px solid #666}.w-responsive{width:75%}@media (max-width: 740px){.w-responsive{width:100%}}.collapsible-body{display:none}.jumbotron{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border-radius:.125rem;background-color:#fff}.bg-primary{background-color:#4285f4!important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1266f1!important}.border-primary{border-color:#4285f4!important}.bg-danger{background-color:#ff3547!important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#ff0219!important}.border-danger{border-color:#ff3547!important}.bg-warning{background-color:#fb3!important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#fa0!important}.border-warning{border-color:#fb3!important}.bg-success{background-color:#00c851!important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00953c!important}.border-success{border-color:#00c851!important}.bg-info{background-color:#33b5e5!important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#1a9bcb!important}.border-info{border-color:#33b5e5!important}.bg-default{background-color:#2bbbad!important}a.bg-default:hover,a.bg-default:focus,button.bg-default:hover,button.bg-default:focus{background-color:#219287!important}.border-default{border-color:#2bbbad!important}.bg-secondary{background-color:#a6c!important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#9540bf!important}.border-secondary{border-color:#a6c!important}.bg-dark{background-color:#212121!important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#080808!important}.border-dark{border-color:#212121!important}.bg-light{background-color:#e0e0e0!important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#c7c7c7!important}.border-light{border-color:#e0e0e0!important}.card-img-100{width:100px;height:100px}.card-img-64{width:64px;height:64px}.mml-1{margin-left:-.25rem!important}.flex-1{flex:1}body.modal-open{overflow:auto}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;border:0;border-radius:.125rem}.modal-dialog .modal-content .modal-header{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .close{opacity:1;text-shadow:none;color:#fff;outline:0}.modal-dialog.cascading-modal .modal-header{box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;margin:-2rem 1rem 1rem;border:none;border-radius:.125rem;padding:1.5rem;text-align:center}.modal-dialog.cascading-modal .modal-header .close{margin-right:1rem}.modal-dialog.cascading-modal .modal-header .title{margin-bottom:0;width:100%;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fas,.modal-dialog.cascading-modal .modal-header .title .fab,.modal-dialog.cascading-modal .modal-header .title .far{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;margin:-1.5rem 1rem 0;display:flex}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li{flex:1}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs li a{text-align:center}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0;box-shadow:unset}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{padding-left:2rem;padding-right:2rem;color:#616161}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{margin-top:1rem;text-align:center}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{box-shadow:none;margin:-6rem 0 -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px;box-shadow:0 8px 17px #0003,0 6px 20px #00000030;margin-left:auto;margin-right:auto}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;font-size:1.15rem;color:#fff}.modal-dialog.modal-notify .modal-header{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify.modal-primary .modal-header{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .fas,.modal-dialog.modal-notify.modal-primary .fab,.modal-dialog.modal-notify.modal-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-primary .badge{background-color:#4285f4}.modal-dialog.modal-notify.modal-primary .btn .fas,.modal-dialog.modal-notify.modal-primary .btn .fab,.modal-dialog.modal-notify.modal-primary .btn .far{color:#fff}.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fas,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .fab,.modal-dialog.modal-notify.modal-primary .btn.btn-outline-primary .far{color:#4285f4}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .fas,.modal-dialog.modal-notify.modal-danger .fab,.modal-dialog.modal-notify.modal-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff3547}.modal-dialog.modal-notify.modal-danger .btn .fas,.modal-dialog.modal-notify.modal-danger .btn .fab,.modal-dialog.modal-notify.modal-danger .btn .far{color:#fff}.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fas,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .fab,.modal-dialog.modal-notify.modal-danger .btn.btn-outline-danger .far{color:#ff3547}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .fas,.modal-dialog.modal-notify.modal-warning .fab,.modal-dialog.modal-notify.modal-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-warning .badge{background-color:#fb3}.modal-dialog.modal-notify.modal-warning .btn .fas,.modal-dialog.modal-notify.modal-warning .btn .fab,.modal-dialog.modal-notify.modal-warning .btn .far{color:#fff}.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fas,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .fab,.modal-dialog.modal-notify.modal-warning .btn.btn-outline-warning .far{color:#fb3}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#00c851}.modal-dialog.modal-notify.modal-success .fas,.modal-dialog.modal-notify.modal-success .fab,.modal-dialog.modal-notify.modal-success .far{color:#00c851}.modal-dialog.modal-notify.modal-success .badge{background-color:#00c851}.modal-dialog.modal-notify.modal-success .btn .fas,.modal-dialog.modal-notify.modal-success .btn .fab,.modal-dialog.modal-notify.modal-success .btn .far{color:#fff}.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fas,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .fab,.modal-dialog.modal-notify.modal-success .btn.btn-outline-success .far{color:#00c851}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .fas,.modal-dialog.modal-notify.modal-info .fab,.modal-dialog.modal-notify.modal-info .far{color:#33b5e5}.modal-dialog.modal-notify.modal-info .badge{background-color:#33b5e5}.modal-dialog.modal-notify.modal-info .btn .fas,.modal-dialog.modal-notify.modal-info .btn .fab,.modal-dialog.modal-notify.modal-info .btn .far{color:#fff}.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fas,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .fab,.modal-dialog.modal-notify.modal-info .btn.btn-outline-info .far{color:#33b5e5}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom{bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{bottom:10px;left:10px}.modal .modal-dialog.modal-bottom-right{bottom:10px;right:10px}}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}@media (min-width: 992px){.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;margin:0!important;width:100%;max-width:100%!important}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-frame.modal-dialog{height:inherit}.modal .modal-full-height{position:absolute;display:flex;margin:0;width:400px;height:auto;min-height:100%;top:0;right:0}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;max-width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{min-height:0;top:auto}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{width:90%;max-width:90%}}@media (min-width: 992px) and (min-width: 992px){.modal .modal-full-height.modal-lg{width:800px;max-width:800px}}@media (min-width: 992px) and (min-width: 1200px){.modal .modal-full-height.modal-lg{width:1000px;max-width:1000px}}@media (min-width: 992px){.modal .modal-side{position:absolute;bottom:10px;right:10px;margin:0;width:400px}}body.scrollable{overflow-y:auto}.modal-dialog .modal-content{border:0}.modal{padding-right:0!important}@media (min-width: 768px){.modal .modal-dialog.modal-top{top:0;left:0;right:0}.modal .modal-dialog.modal-left{left:0}.modal .modal-dialog.modal-right{right:0}.modal .modal-dialog.modal-bottom>.modal-content{position:absolute;bottom:0}.modal .modal-dialog.modal-top-left{top:10px;left:10px}.modal .modal-dialog.modal-top-right{top:10px;right:10px}.modal .modal-dialog.modal-bottom-left{left:10px;bottom:10px}.modal .modal-dialog.modal-bottom-right{right:10px;bottom:10px}}.modal .modal-side.modal-top{top:0}.modal .modal-side.modal-left{left:0}.modal .modal-side.modal-right{right:0}.modal .modal-side.modal-bottom{bottom:0}.modal .modal-side.modal-top-left{top:10px;left:10px}.modal .modal-side.modal-top-right{top:10px;right:10px}.modal .modal-side.modal-bottom-left{left:10px;bottom:10px}.modal .modal-side.modal-bottom-right{right:10px;bottom:10px}.modal.fade.top:not(.show) .modal-dialog{transform:translate3d(0,-25%,0)}.modal.fade.left:not(.show) .modal-dialog{transform:translate3d(-25%,0,0)}.modal.fade.right:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.modal.fade.bottom:not(.show) .modal-dialog{transform:translate3d(0,25%,0)}.modal.fade.in{opacity:1}.modal.fade.in .modal-dialog{transform:translate(0)}.modal.fade.in .modal-dialog .relative{display:inline-block}.modal.modal-scrolling{position:relative}.modal.modal-scrolling .modal-dialog{position:fixed;z-index:1050}.modal.modal-content-clickable{top:auto;bottom:auto}.modal.modal-content-clickable .modal-dialog{position:fixed}.modal .modal-fluid{width:100%;max-width:100%}.modal .modal-fluid .modal-content{width:100%}.modal .modal-frame{position:absolute;width:100%;max-width:100%;margin:0}@media (max-width: 767px){.modal .modal-frame{padding:.5rem}}.modal .modal-frame.modal-bottom{bottom:0}.modal .modal-full-height{display:flex;position:absolute;width:400px;min-height:100%;margin:0;top:0;right:0}@media (max-width: 576px){.modal .modal-full-height{width:100%;padding:.5rem}}@media (max-width: 992px){.modal .modal-full-height{width:100%;height:unset;position:unset}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin:1.75rem auto;min-height:unset}}@media (max-width: 768px){.modal .modal-full-height.modal-bottom{margin-top:1.75rem}}@media (min-width: 768px) and (max-width: 992px){.modal .modal-full-height.modal-bottom{margin-bottom:1.75rem}.modal .modal-full-height.modal-bottom .modal-content{bottom:1rem}}@media (max-width: 992px){.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom,.modal .modal-full-height.modal-left,.modal .modal-full-height.modal-right{margin-left:auto;margin-right:auto}}.modal .modal-full-height.modal-top,.modal .modal-full-height.modal-bottom{display:block;width:100%;height:auto}.modal .modal-full-height.modal-top{bottom:auto}.modal .modal-full-height.modal-bottom{bottom:0}.modal .modal-full-height .modal-content{width:100%}.modal .modal-full-height.modal-lg{max-width:90%;width:90%}@media (min-width: 992px){.modal .modal-full-height.modal-lg{max-width:800px;width:800px}}@media (min-width: 1200px){.modal .modal-full-height.modal-lg{max-width:1000px;width:1000px}}.modal .modal-side{position:absolute;right:10px;bottom:10px;margin:0;min-width:100px}@media (max-width: 768px){.modal .modal-side{padding-left:.5rem}}.modal-dialog.cascading-modal{margin-top:10%}.modal-dialog.cascading-modal .modal-header{text-align:center;margin:-2rem 1rem 1rem;padding:1.5rem;border:none;flex-direction:column}.modal-dialog.cascading-modal .modal-header .close{margin-right:2.5rem}.modal-dialog.cascading-modal .modal-header.white-text .close{color:#fff;opacity:1}.modal-dialog.cascading-modal .modal-header .title{width:100%;margin-bottom:0;font-size:1.25rem}.modal-dialog.cascading-modal .modal-header .title .fa{margin-right:9px}.modal-dialog.cascading-modal .modal-header .social-buttons{margin-top:1.5rem}.modal-dialog.cascading-modal .modal-header .social-buttons a{font-size:1rem}.modal-dialog.cascading-modal .modal-c-tabs .md-tabs{margin:-1.5rem 1rem 0}.modal-dialog.cascading-modal .modal-c-tabs .tab-content{padding:1.7rem 0 0}.modal-dialog.cascading-modal .modal-body,.modal-dialog.cascading-modal .modal-footer{color:#616161;padding-right:2rem;padding-left:2rem}.modal-dialog.cascading-modal .modal-body .additional-option,.modal-dialog.cascading-modal .modal-footer .additional-option{text-align:center;margin-top:1rem}.modal-dialog.cascading-modal.modal-avatar{margin-top:6rem}.modal-dialog.cascading-modal.modal-avatar .modal-header{margin:-6rem 2rem -1rem}.modal-dialog.cascading-modal.modal-avatar .modal-header img{width:130px}.modal-dialog.modal-notify .heading{margin:0;padding:.3rem;color:#fff;font-size:1.15rem}.modal-dialog.modal-notify .modal-header{border:0}.modal-dialog.modal-notify .close{opacity:1}.modal-dialog.modal-notify .modal-body{padding:1.5rem;color:#616161}.modal-dialog.modal-notify .btn-outline-secondary-modal{background-color:transparent}.modal-dialog.modal-notify.modal-info .modal-header{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .fa{color:#5394ff}.modal-dialog.modal-notify.modal-info .badge{background-color:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal{background:#5394ff}.modal-dialog.modal-notify.modal-info .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-info .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-info .btn-primary-modal:active{background-color:#6da4ff!important}.modal-dialog.modal-notify.modal-info .btn-primary-modal.active{background-color:#0059ec!important}.modal-dialog.modal-notify.modal-info .btn-outline-secondary-modal{border:2px solid #5394ff;color:#5394ff!important}.modal-dialog.modal-notify.modal-warning .modal-header{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .fa{color:#ff8e38}.modal-dialog.modal-notify.modal-warning .badge{background-color:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal{background:#ff8e38}.modal-dialog.modal-notify.modal-warning .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-warning .btn-primary-modal:active{background-color:#ff9c52!important}.modal-dialog.modal-notify.modal-warning .btn-primary-modal.active{background-color:#d15a00!important}.modal-dialog.modal-notify.modal-warning .btn-outline-secondary-modal{border:2px solid #ff8e38;color:#ff8e38!important}.modal-dialog.modal-notify.modal-success .modal-header{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .fa{color:#01d36b}.modal-dialog.modal-notify.modal-success .badge{background-color:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal{background:#01d36b}.modal-dialog.modal-notify.modal-success .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-success .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-success .btn-primary-modal:active{background-color:#01ec78!important}.modal-dialog.modal-notify.modal-success .btn-primary-modal.active{background-color:#016d38!important}.modal-dialog.modal-notify.modal-success .btn-outline-secondary-modal{border:2px solid #01d36b;color:#01d36b!important}.modal-dialog.modal-notify.modal-danger .modal-header{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .fa{color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .badge{background-color:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal{background:#ff4b4b}.modal-dialog.modal-notify.modal-danger .btn-primary-modal:hover,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:focus,.modal-dialog.modal-notify.modal-danger .btn-primary-modal:active{background-color:#ff6565!important}.modal-dialog.modal-notify.modal-danger .btn-primary-modal.active{background-color:#e40000!important}.modal-dialog.modal-notify.modal-danger .btn-outline-secondary-modal{border:2px solid #ff4b4b;color:#ff4b4b!important}.modal-sm .modal-content{margin:0 auto;max-width:300px}@media (min-width: 768px){.modal-sm{max-width:300px}}.modal .modal-fluid,.modal .modal-frame{width:100%;max-width:100%}.modal-ext .modal-content .modal-header{text-align:center}.modal-ext .modal-content .options{float:left}.modal-ext .modal-content .modal-body .text-xs-center fieldset{margin-top:20px}.modal-ext .modal-content .call{margin-top:1rem}.modal-ext .modal-content .modal-body{padding:2rem 2rem 1rem}.modal-content:not(.card-image) .close{position:absolute;right:15px}.modal-cart li p{margin:5px;font-weight:400}.modal-cart li p .badge{margin-left:10px;margin-top:3px;font-weight:400;position:absolute}.modal-cart li p .quantity{font-size:16px;margin-right:7px;font-weight:300}.modal-cart .cartPageLink{margin-left:10px}.modal-cart .cartPageLink a{text-decoration:underline;color:#666}.modal-cart .total{float:right;font-weight:400}.cf-phone{margin-left:7px}.side-modal{position:fixed;width:400px;height:100%;width:100%;z-index:9999}.side-modal .modal-dialog{position:absolute;bottom:10px;right:10px;width:400px;margin:10px}@media (max-width: 760px){.side-modal .modal-dialog{display:none}}.side-modal .modal-header{padding:1rem}.side-modal .modal-header .heading{margin:0;padding:0}.side-modal .modal-content{border:none}.modal-dynamic>:first-child{display:flex;flex-direction:column;height:100%}.side-modal.fade:not(.show) .modal-dialog{transform:translate3d(25%,0,0)}.transparent-bd{opacity:0!important}.modal-backdrop.in,.modal-backdrop{opacity:.5}#exampleModalScroll{overflow-x:hidden;overflow-y:auto}.modal-open .modal{overflow-x:hidden;overflow-y:hidden}.form-dark .card-image{background-size:100%}\n"] }]
6373 }], ctorParameters: function () { return [{ type: ModalOptions }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { tabindex: [{
6374 type: HostBinding,
6375 args: ['tabindex']
6376 }], role: [{
6377 type: HostBinding,
6378 args: ['attr.role']
6379 }], modal: [{
6380 type: HostBinding,
6381 args: ['class.modal']
6382 }], onClick: [{
6383 type: HostListener,
6384 args: ['click', ['$event']]
6385 }], onEsc: [{
6386 type: HostListener,
6387 args: ['window:keydown.esc']
6388 }] } });
6389
6390class MDBModalService {
6391 constructor(rendererFactory, clf) {
6392 this.clf = clf;
6393 this.config = modalConfigDefaults;
6394 this.open = new EventEmitter();
6395 this.opened = new EventEmitter();
6396 this.close = new EventEmitter();
6397 this.closed = new EventEmitter();
6398 this.isBodyOverflowing = false;
6399 this.originalBodyPadding = 0;
6400 this.scrollbarWidth = 0;
6401 this.modalsCount = 0;
6402 this.lastDismissReason = '';
6403 this.loaders = [];
6404 this._backdropLoader = this.clf.createLoader(this.el, this.vcr, this.renderer);
6405 this.renderer = rendererFactory.createRenderer(null, null);
6406 }
6407 /** Shows a modal */
6408 show(content, config) {
6409 this.modalsCount++;
6410 this._createLoaders();
6411 this.config = Object.assign({}, modalConfigDefaults, config);
6412 this._showBackdrop();
6413 this.lastDismissReason = null;
6414 return this._showModal(content);
6415 }
6416 hide(level) {
6417 if (this.modalsCount === 1) {
6418 this._hideBackdrop();
6419 this.resetScrollbar();
6420 }
6421 this.modalsCount = this.modalsCount >= 1 ? this.modalsCount - 1 : 0;
6422 setTimeout(() => {
6423 this._hideModal(level);
6424 this.removeLoaders(level);
6425 }, this.config.animated ? TransitionDurations.BACKDROP : 0);
6426 }
6427 _showBackdrop() {
6428 const isBackdropEnabled = this.config.backdrop || this.config.backdrop === 'static';
6429 const isBackdropInDOM = !this.backdropRef || !this.backdropRef.instance.isShown;
6430 if (this.modalsCount === 1) {
6431 this.removeBackdrop();
6432 if (isBackdropEnabled && isBackdropInDOM) {
6433 this._backdropLoader
6434 .attach(ModalBackdropComponent)
6435 .to('body')
6436 .show({ isAnimated: this.config.animated });
6437 this.backdropRef = this._backdropLoader._componentRef;
6438 }
6439 }
6440 }
6441 _hideBackdrop() {
6442 if (!this.backdropRef) {
6443 return;
6444 }
6445 this.backdropRef.instance.isShown = false;
6446 const duration = this.config.animated ? TransitionDurations.BACKDROP : 0;
6447 setTimeout(() => this.removeBackdrop(), duration);
6448 }
6449 _showModal(content) {
6450 const modalLoader = this.loaders[this.loaders.length - 1];
6451 const mdbModalRef = new MDBModalRef();
6452 const modalContainerRef = modalLoader
6453 .provide({ provide: ModalOptions, useValue: this.config })
6454 .provide({ provide: MDBModalRef, useValue: mdbModalRef })
6455 .attach(ModalContainerComponent)
6456 .to('body')
6457 .show({
6458 content,
6459 isAnimated: this.config.animated,
6460 data: this.config.data,
6461 mdbModalService: this,
6462 });
6463 modalContainerRef.instance.focusModalElement();
6464 modalContainerRef.instance.level = this.getModalsCount();
6465 mdbModalRef.hide = () => {
6466 modalContainerRef.instance.hide();
6467 };
6468 mdbModalRef.content = modalLoader.getInnerComponent() || null;
6469 return mdbModalRef;
6470 }
6471 _hideModal(level) {
6472 const modalLoader = this.loaders[level - 1];
6473 if (modalLoader) {
6474 modalLoader.hide();
6475 }
6476 }
6477 getModalsCount() {
6478 return this.modalsCount;
6479 }
6480 setDismissReason(reason) {
6481 this.lastDismissReason = reason;
6482 }
6483 removeBackdrop() {
6484 this._backdropLoader.hide();
6485 this.backdropRef = null;
6486 }
6487 /** AFTER PR MERGE MODAL.COMPONENT WILL BE USING THIS CODE*/
6488 /** Scroll bar tricks */
6489 /** @internal */
6490 checkScrollbar() {
6491 this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;
6492 this.scrollbarWidth = this.getScrollbarWidth();
6493 }
6494 setScrollbar() {
6495 if (!document) {
6496 return;
6497 }
6498 this.originalBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right') || '0', 10);
6499 }
6500 resetScrollbar() {
6501 document.body.style.paddingRight = this.originalBodyPadding + 'px';
6502 }
6503 // thx d.walsh
6504 getScrollbarWidth() {
6505 const scrollDiv = this.renderer.createElement('div');
6506 this.renderer.addClass(scrollDiv, ClassName.SCROLLBAR_MEASURER);
6507 this.renderer.appendChild(document.body, scrollDiv);
6508 const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
6509 this.renderer.removeChild(document.body, scrollDiv);
6510 return scrollbarWidth;
6511 }
6512 _createLoaders() {
6513 const loader = this.clf.createLoader(this.el, this.vcr, this.renderer);
6514 this.copyEvent(loader.onBeforeShow, this.open);
6515 this.copyEvent(loader.onShown, this.opened);
6516 this.copyEvent(loader.onBeforeHide, this.close);
6517 this.copyEvent(loader.onHidden, this.closed);
6518 this.loaders.push(loader);
6519 }
6520 removeLoaders(level) {
6521 this.loaders.splice(level - 1, 1);
6522 this.loaders.forEach((loader, i) => {
6523 loader.instance.level = i + 1;
6524 });
6525 }
6526 copyEvent(from, to) {
6527 from.subscribe(() => {
6528 to.emit(this.lastDismissReason);
6529 });
6530 }
6531}
6532MDBModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBModalService, deps: [{ token: i0.RendererFactory2 }, { token: ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Injectable });
6533MDBModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBModalService });
6534i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBModalService, decorators: [{
6535 type: Injectable
6536 }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: ComponentLoaderFactory }]; } });
6537
6538class ModalModule {
6539 static forRoot() {
6540 return {
6541 ngModule: ModalModule,
6542 providers: [MDBModalService, ComponentLoaderFactory, PositioningService],
6543 };
6544 }
6545}
6546ModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6547ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalModule, declarations: [ModalBackdropComponent, ModalDirective, ModalContainerComponent], imports: [A11yModule], exports: [ModalBackdropComponent, ModalDirective] });
6548ModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalModule, imports: [[A11yModule]] });
6549i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalModule, decorators: [{
6550 type: NgModule,
6551 args: [{
6552 declarations: [ModalBackdropComponent, ModalDirective, ModalContainerComponent],
6553 imports: [A11yModule],
6554 exports: [ModalBackdropComponent, ModalDirective],
6555 entryComponents: [ModalBackdropComponent, ModalContainerComponent],
6556 schemas: [NO_ERRORS_SCHEMA],
6557 }]
6558 }] });
6559
6560class NavbarService {
6561 constructor() {
6562 this.navbarLinkClicks = new Subject();
6563 }
6564 getNavbarLinkClicks() {
6565 return this.navbarLinkClicks.asObservable();
6566 }
6567 setNavbarLinkClicks() {
6568 this.navbarLinkClicks.next();
6569 }
6570}
6571NavbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6572NavbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarService });
6573i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarService, decorators: [{
6574 type: Injectable
6575 }] });
6576
6577class LinksComponent {
6578 constructor(_navbarService, renderer) {
6579 this._navbarService = _navbarService;
6580 this.renderer = renderer;
6581 this.linkClick = new EventEmitter();
6582 }
6583 ngAfterContentInit() {
6584 setTimeout(() => {
6585 this.links.forEach((link) => {
6586 this.renderer.listen(link.nativeElement, 'click', () => {
6587 this._navbarService.setNavbarLinkClicks();
6588 });
6589 });
6590 }, 0);
6591 }
6592}
6593LinksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LinksComponent, deps: [{ token: NavbarService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
6594LinksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: LinksComponent, selector: "links", outputs: { linkClick: "linkClick" }, queries: [{ propertyName: "links", predicate: RouterLinkWithHref, descendants: true, read: ElementRef }], ngImport: i0, template: `
6595 <ng-content></ng-content>
6596 `, isInline: true });
6597i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LinksComponent, decorators: [{
6598 type: Component,
6599 args: [{
6600 // eslint-disable-next-line @angular-eslint/component-selector
6601 selector: 'links',
6602 template: `
6603 <ng-content></ng-content>
6604 `,
6605 }]
6606 }], ctorParameters: function () { return [{ type: NavbarService }, { type: i0.Renderer2 }]; }, propDecorators: { links: [{
6607 type: ContentChildren,
6608 args: [RouterLinkWithHref, { read: ElementRef, descendants: true }]
6609 }], linkClick: [{
6610 type: Output
6611 }] } });
6612
6613class NavbarComponent {
6614 constructor(renderer, _navbarService, _cdRef, _ngZone, _document) {
6615 this.renderer = renderer;
6616 this._navbarService = _navbarService;
6617 this._cdRef = _cdRef;
6618 this._ngZone = _ngZone;
6619 this._document = _document;
6620 this._containerInside = true;
6621 this.collapseId = 'navbarCollapse';
6622 this._scrollSensitivity = 120;
6623 this._scrollableNavbar = false;
6624 this.shown = new EventEmitter();
6625 this.hidden = new EventEmitter();
6626 this._destroy$ = new Subject();
6627 this.isShown = false;
6628 this.duration = 350; // ms
6629 this.collapse = true;
6630 this.showClass = false;
6631 this.collapsing = false;
6632 this._itemsLength = 0;
6633 this.ariaExpanded = false;
6634 this._navbarService
6635 .getNavbarLinkClicks()
6636 .pipe(takeUntil(this._destroy$))
6637 .subscribe((navbarLinkClicks) => {
6638 this.closeNavbarOnClick(navbarLinkClicks);
6639 });
6640 }
6641 get containerInside() {
6642 return this._containerInside;
6643 }
6644 set containerInside(value) {
6645 this._containerInside = coerceBooleanProperty(value);
6646 }
6647 get scrollSensitivity() {
6648 return this._scrollSensitivity;
6649 }
6650 set scrollSensitivity(value) {
6651 this._scrollSensitivity = coerceNumberProperty(value);
6652 }
6653 get scrollableNavbar() {
6654 return this._scrollableNavbar;
6655 }
6656 set scrollableNavbar(value) {
6657 this._scrollableNavbar = coerceBooleanProperty(value);
6658 }
6659 closeNavbarOnClick(navbarLinkClicks) {
6660 this.navbarLinkClicks = navbarLinkClicks;
6661 if (this.showClass) {
6662 this.hide();
6663 }
6664 }
6665 addTogglerIconClasses() {
6666 if (this.iconBackground) {
6667 if (Array.isArray(this.iconBackground)) {
6668 this.iconBackground.forEach((iconClass) => {
6669 this.renderer.addClass(this.toggler.nativeElement, iconClass);
6670 });
6671 }
6672 else {
6673 this.renderer.addClass(this.toggler.nativeElement, this.iconBackground);
6674 }
6675 }
6676 }
6677 _listenToScroll() {
6678 this._ngZone.runOutsideAngular(() => {
6679 fromEvent(this._document, 'scroll')
6680 .pipe(takeUntil(this._destroy$))
6681 .subscribe(() => {
6682 if (window.pageYOffset > this.scrollSensitivity) {
6683 this.renderer.addClass(this.navbar.nativeElement, 'top-nav-collapse');
6684 }
6685 else {
6686 this.renderer.removeClass(this.navbar.nativeElement, 'top-nav-collapse');
6687 }
6688 });
6689 });
6690 }
6691 ngOnInit() {
6692 const isDoubleNav = this.SideClass.split(' ');
6693 this.doubleNav = isDoubleNav.indexOf('double-nav') !== -1;
6694 }
6695 ngAfterViewInit() {
6696 if (!this.containerInside) {
6697 const childrens = Array.from(this.container.nativeElement.children);
6698 childrens.forEach((child) => {
6699 this.renderer.appendChild(this.navbar.nativeElement, child);
6700 this.container.nativeElement.remove();
6701 });
6702 }
6703 if (this.el.nativeElement.children.length === 0) {
6704 this.el.nativeElement.remove();
6705 }
6706 this.addTogglerIconClasses();
6707 if (this.scrollableNavbar) {
6708 this.renderer.addClass(this.el.nativeElement, 'collapsed-navbar-scroll');
6709 }
6710 if (this.navbar.nativeElement.classList.contains('scrolling-navbar')) {
6711 this._listenToScroll();
6712 }
6713 }
6714 toggle() {
6715 if (!this.collapsing) {
6716 if (this.isShown) {
6717 this.hide();
6718 }
6719 else {
6720 this.show();
6721 }
6722 }
6723 }
6724 show() {
6725 this.isShown = true;
6726 this.collapse = false;
6727 this.collapsing = true;
6728 this.ariaExpanded = true;
6729 setTimeout(() => {
6730 this.height = this.el.nativeElement.scrollHeight;
6731 this.renderer.setStyle(this.el.nativeElement, 'height', this.height + 'px');
6732 }, 0);
6733 setTimeout(() => {
6734 this.collapsing = false;
6735 this.collapse = true;
6736 this.showClass = true;
6737 this.shown.emit();
6738 }, this.duration);
6739 this._cdRef.markForCheck();
6740 }
6741 hide() {
6742 if (this.isShown) {
6743 this.isShown = false;
6744 this.collapse = false;
6745 this.showClass = false;
6746 this.collapsing = true;
6747 this.ariaExpanded = false;
6748 setTimeout(() => {
6749 this.renderer.setStyle(this.el.nativeElement, 'height', '0px');
6750 }, 0);
6751 setTimeout(() => {
6752 this.collapsing = false;
6753 this.collapse = true;
6754 this.hidden.emit();
6755 }, this.duration);
6756 }
6757 this._cdRef.markForCheck();
6758 }
6759 get displayStyle() {
6760 if (!this.containerInside) {
6761 return 'flex';
6762 }
6763 else {
6764 return '';
6765 }
6766 }
6767 onResize(event) {
6768 let breakpoint = 0;
6769 if (this.SideClass.includes('navbar-expand-xl')) {
6770 breakpoint = 1200;
6771 }
6772 else if (this.SideClass.includes('navbar-expand-lg')) {
6773 breakpoint = 992;
6774 }
6775 else if (this.SideClass.includes('navbar-expand-md')) {
6776 breakpoint = 768;
6777 }
6778 else if (this.SideClass.includes('navbar-expand-sm')) {
6779 breakpoint = 576;
6780 }
6781 else {
6782 breakpoint = event.target.innerWidth + 1;
6783 }
6784 if (event.target.innerWidth < breakpoint) {
6785 if (!this.isShown) {
6786 this.collapse = false;
6787 this.renderer.setStyle(this.el.nativeElement, 'height', '0px');
6788 this.renderer.setStyle(this.el.nativeElement, 'opacity', '0');
6789 setTimeout(() => {
6790 this.height = this.el.nativeElement.scrollHeight;
6791 this.collapse = true;
6792 this.renderer.setStyle(this.el.nativeElement, 'opacity', '');
6793 }, 4);
6794 }
6795 }
6796 else {
6797 this.collapsing = false;
6798 this.isShown = false;
6799 this.showClass = false;
6800 this.collapse = true;
6801 this.ariaExpanded = false;
6802 this.renderer.setStyle(this.el.nativeElement, 'height', '');
6803 }
6804 }
6805 ngAfterContentChecked() {
6806 if (this.el.nativeElement.firstElementChild) {
6807 if (this._itemsLength !==
6808 this.el.nativeElement.firstElementChild.firstElementChild.children.length) {
6809 this.height = this.el.nativeElement.firstElementChild.firstElementChild.clientHeight;
6810 this.renderer.setStyle(this.el.nativeElement, 'height', this.height + 'px');
6811 }
6812 this._itemsLength = this.el.nativeElement.firstElementChild.firstElementChild.children.length;
6813 }
6814 this._cdRef.markForCheck();
6815 }
6816 ngOnDestroy() {
6817 this._destroy$.next();
6818 this._destroy$.complete();
6819 }
6820}
6821NavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarComponent, deps: [{ token: i0.Renderer2 }, { token: NavbarService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
6822NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: NavbarComponent, selector: "mdb-navbar", inputs: { iconBackground: "iconBackground", SideClass: "SideClass", containerInside: "containerInside", collapseId: "collapseId", scrollSensitivity: "scrollSensitivity", scrollableNavbar: "scrollableNavbar" }, outputs: { shown: "shown", hidden: "hidden" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "links", first: true, predicate: LinksComponent, descendants: true }], viewQueries: [{ propertyName: "el", first: true, predicate: ["navbar"], descendants: true, static: true }, { propertyName: "mobile", first: true, predicate: ["mobile"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["nav"], descendants: true, static: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "toggler", first: true, predicate: ["toggler"], descendants: true }], ngImport: i0, template: "<nav class=\"{{ SideClass }}\" #nav>\n <div [ngClass]=\"{ container: containerInside }\" [ngStyle]=\"{ display: displayStyle }\" #container>\n <ng-content select=\"mdb-navbar-brand\"></ng-content>\n <ng-content select=\"logo\"></ng-content>\n <ng-content></ng-content>\n <ng-content *ngIf=\"this.doubleNav == true\" select=\"navlinks\"></ng-content>\n <div *ngIf=\"this.doubleNav == false\">\n <button\n #toggler\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-controls]=\"collapseId\"\n [attr.aria-expanded]=\"ariaExpanded\"\n aria-label=\"Toggle navigation\"\n (click)=\"toggle(); $event.preventDefault()\"\n mdbWavesEffect\n *ngIf=\"this.el.nativeElement.children.length !== 0\"\n >\n <span class=\"navbar-toggler-icon\"> </span>\n </button>\n </div>\n <div\n #navbar\n [attr.id]=\"collapseId\"\n [style.height]=\"height\"\n class=\"navbar-collapse collapse\"\n [ngClass]=\"{ collapse: collapse, show: showClass, collapsing: collapsing }\"\n >\n <ng-content select=\"links\"></ng-content>\n </div>\n </div>\n</nav>\n", styles: [".navbar{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;font-weight:300}.navbar form .md-form input{margin:0 5px 1px 8px}.navbar .breadcrumb{margin:0;padding:.3rem 0 0 1rem;background-color:inherit;font-size:15px;font-weight:300}.navbar .breadcrumb .breadcrumb-item{color:#fff}.navbar .breadcrumb .breadcrumb-item.active{color:#ffffffa6}.navbar .breadcrumb .breadcrumb-item:before{color:#ffffffa6}.navbar .navbar-toggler{outline:0;border-width:0}.navbar .nav-flex-icons{flex-direction:row}@media (max-width: 992px){.navbar .container{width:100%}.navbar .container .navbar-toggler-right{right:0}}.navbar .nav-item .nav-link{display:block}.navbar .nav-item .nav-link.disabled:active{pointer-events:none}.navbar .nav-item .nav-link .fas,.navbar .nav-item .nav-link .fab,.navbar .nav-item .nav-link .far{padding-right:3px;padding-left:3px}@media (max-width: 992px){.navbar .nav-item .nav-link{padding-right:6px;padding-left:6px}}.navbar .dropdown-menu{position:absolute!important;margin-top:0}.navbar .dropdown-menu a{padding:10px;font-size:.9375rem;font-weight:300;color:#000}@media (max-width: 600px){.navbar .dropdown-menu form{width:17rem}}@media (min-width: 600px){.navbar .dropdown-menu form{width:22rem}}.navbar.navbar-light .navbar-nav .nav-item .nav-link.disbled,.navbar.navbar-light .navbar-nav .nav-item .nav-link.disbled:hover{color:#00000080}.navbar.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.9)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\");cursor:pointer}.navbar.navbar-light .breadcrumb .nav-item .nav-link,.navbar.navbar-light .navbar-nav .nav-item .nav-link{color:#000;transition:.35s}.navbar.navbar-light .breadcrumb .nav-item .nav-link:hover,.navbar.navbar-light .navbar-nav .nav-item .nav-link:hover{color:#000000bf}.navbar.navbar-light .breadcrumb .nav-item.active>.nav-link,.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link{background-color:#0000001a}.navbar.navbar-light .breadcrumb .nav-item.active>.nav-link:hover,.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link:hover{color:#000}.navbar.navbar-light .navbar-toggler{color:#000}.navbar.navbar-light form .md-form input{border-bottom:1px solid #000}.navbar.navbar-light form .md-form input:focus:not([readonly]){border-color:#4285f4}.navbar.navbar-light form .md-form .form-control{color:#000}.navbar.navbar-light form .md-form .form-control::placeholder{color:#000;font-weight:300}.navbar.navbar-dark .navbar-nav .nav-item .nav-link.disbled,.navbar.navbar-dark .navbar-nav .nav-item .nav-link.disbled:hover{color:#ffffff80}.navbar.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.9)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\");cursor:pointer}.navbar.navbar-dark .breadcrumb .nav-item .nav-link,.navbar.navbar-dark .navbar-nav .nav-item .nav-link{color:#fff;transition:.35s}.navbar.navbar-dark .breadcrumb .nav-item .nav-link:hover,.navbar.navbar-dark .navbar-nav .nav-item .nav-link:hover{color:#ffffffbf}.navbar.navbar-dark .breadcrumb .nav-item.active>.nav-link,.navbar.navbar-dark .navbar-nav .nav-item.active>.nav-link{background-color:#ffffff1a}.navbar.navbar-dark .breadcrumb .nav-item.active>.nav-link:hover,.navbar.navbar-dark .navbar-nav .nav-item.active>.nav-link:hover{color:#fff}.navbar.navbar-dark .navbar-toggler{color:#fff}.navbar.navbar-dark form .md-form input{border-bottom:1px solid #fff}.navbar.navbar-dark form .md-form input:focus:not([readonly]){border-color:#4285f4}.navbar.navbar-dark form .md-form .form-control{color:#fff}.navbar.navbar-dark form .md-form .form-control::placeholder{color:#fff;font-weight:300}@media (min-width: 600px){.navbar.scrolling-navbar{transition:background .5s ease-in-out,padding .5s ease-in-out;padding-top:12px;padding-bottom:12px}.navbar.scrolling-navbar .navbar-nav>li{transition-duration:1s}.navbar.scrolling-navbar.top-nav-collapse{padding-top:5px;padding-bottom:5px}}@media (min-width: 1200px){.navbar.navbar-expand-xl links,.navbar.navbar-expand-xl navlinks{display:flex;flex-direction:row;align-items:center!important;align-self:center!important;width:100%}}@media (min-width: 992px){.navbar>logo>div>a img{margin-left:20px}.navbar.navbar-expand-lg links,.navbar.navbar-expand-lg navlinks{display:flex;flex-direction:row;align-items:center!important;align-self:center!important;width:100%}}@media (min-width: 768px){.navbar.navbar-expand-md links,.navbar.navbar-expand-md navlinks{display:flex;flex-direction:row;width:100%}}@media (min-width: 576px){.navbar.navbar-expand-sm links,.navbar.navbar-expand-sm navlinks{display:flex;flex-direction:row;width:100%}}@media all and (max-width: 992px){.collapsed-navbar-scroll{max-height:calc(100vh - 40px);overflow-y:scroll}}.navbar-container{order:-1;width:50px!important;padding-left:5px;padding-right:5px}.navbar-nav .dropdown-menu-right.dropdown-menu{left:unset}.navbar-nav .dropdown-menu{top:100%!important;transform:translateZ(0)!important}.breadcrumbs{display:flex;padding-left:5px;padding-right:5px;order:0;align-items:center}@media (min-width: 1441px){.breadcrumbs{margin-left:-.6rem}}@supports (-ms-ime-align: auto){@media all and (min-width: 992px){.ie-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.ie-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.ie-nav .navbar-brand>img{margin-top:-2px;padding-right:16px}}.ie-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}@media all and (min-width: 992px){.intro-non-fixed-nav>links .navbar-collapse{display:inline-flex!important;align-items:center!important;justify-content:space-between!important}}@media all and (min-width: 992px){.intro-fixed-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.intro-fixed-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.intro-fixed-nav .navbar-brand img{margin-top:-2px;padding-right:16px}}.intro-fixed-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}}@media all and (-ms-high-contrast: none) and (min-width: 992px),(-ms-high-contrast: active) and (min-width: 992px){.ie-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.ie-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.ie-nav .navbar-brand>img{margin-top:-2px;padding-right:16px}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ie-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}}@media all and (-ms-high-contrast: none) and (min-width: 992px),(-ms-high-contrast: active) and (min-width: 992px){.intro-non-fixed-nav>links .navbar-collapse{display:inline-flex!important;align-items:center!important;justify-content:space-between!important}}@media all and (-ms-high-contrast: none) and (min-width: 992px),(-ms-high-contrast: active) and (min-width: 992px){.intro-fixed-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.intro-fixed-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.intro-fixed-nav .navbar-brand img{margin-top:-2px;padding-right:16px}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.intro-fixed-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:none}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6823i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarComponent, decorators: [{
6824 type: Component,
6825 args: [{ selector: 'mdb-navbar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"{{ SideClass }}\" #nav>\n <div [ngClass]=\"{ container: containerInside }\" [ngStyle]=\"{ display: displayStyle }\" #container>\n <ng-content select=\"mdb-navbar-brand\"></ng-content>\n <ng-content select=\"logo\"></ng-content>\n <ng-content></ng-content>\n <ng-content *ngIf=\"this.doubleNav == true\" select=\"navlinks\"></ng-content>\n <div *ngIf=\"this.doubleNav == false\">\n <button\n #toggler\n class=\"navbar-toggler\"\n type=\"button\"\n [attr.aria-controls]=\"collapseId\"\n [attr.aria-expanded]=\"ariaExpanded\"\n aria-label=\"Toggle navigation\"\n (click)=\"toggle(); $event.preventDefault()\"\n mdbWavesEffect\n *ngIf=\"this.el.nativeElement.children.length !== 0\"\n >\n <span class=\"navbar-toggler-icon\"> </span>\n </button>\n </div>\n <div\n #navbar\n [attr.id]=\"collapseId\"\n [style.height]=\"height\"\n class=\"navbar-collapse collapse\"\n [ngClass]=\"{ collapse: collapse, show: showClass, collapsing: collapsing }\"\n >\n <ng-content select=\"links\"></ng-content>\n </div>\n </div>\n</nav>\n", styles: [".navbar{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f;font-weight:300}.navbar form .md-form input{margin:0 5px 1px 8px}.navbar .breadcrumb{margin:0;padding:.3rem 0 0 1rem;background-color:inherit;font-size:15px;font-weight:300}.navbar .breadcrumb .breadcrumb-item{color:#fff}.navbar .breadcrumb .breadcrumb-item.active{color:#ffffffa6}.navbar .breadcrumb .breadcrumb-item:before{color:#ffffffa6}.navbar .navbar-toggler{outline:0;border-width:0}.navbar .nav-flex-icons{flex-direction:row}@media (max-width: 992px){.navbar .container{width:100%}.navbar .container .navbar-toggler-right{right:0}}.navbar .nav-item .nav-link{display:block}.navbar .nav-item .nav-link.disabled:active{pointer-events:none}.navbar .nav-item .nav-link .fas,.navbar .nav-item .nav-link .fab,.navbar .nav-item .nav-link .far{padding-right:3px;padding-left:3px}@media (max-width: 992px){.navbar .nav-item .nav-link{padding-right:6px;padding-left:6px}}.navbar .dropdown-menu{position:absolute!important;margin-top:0}.navbar .dropdown-menu a{padding:10px;font-size:.9375rem;font-weight:300;color:#000}@media (max-width: 600px){.navbar .dropdown-menu form{width:17rem}}@media (min-width: 600px){.navbar .dropdown-menu form{width:22rem}}.navbar.navbar-light .navbar-nav .nav-item .nav-link.disbled,.navbar.navbar-light .navbar-nav .nav-item .nav-link.disbled:hover{color:#00000080}.navbar.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.9)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\");cursor:pointer}.navbar.navbar-light .breadcrumb .nav-item .nav-link,.navbar.navbar-light .navbar-nav .nav-item .nav-link{color:#000;transition:.35s}.navbar.navbar-light .breadcrumb .nav-item .nav-link:hover,.navbar.navbar-light .navbar-nav .nav-item .nav-link:hover{color:#000000bf}.navbar.navbar-light .breadcrumb .nav-item.active>.nav-link,.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link{background-color:#0000001a}.navbar.navbar-light .breadcrumb .nav-item.active>.nav-link:hover,.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link:hover{color:#000}.navbar.navbar-light .navbar-toggler{color:#000}.navbar.navbar-light form .md-form input{border-bottom:1px solid #000}.navbar.navbar-light form .md-form input:focus:not([readonly]){border-color:#4285f4}.navbar.navbar-light form .md-form .form-control{color:#000}.navbar.navbar-light form .md-form .form-control::placeholder{color:#000;font-weight:300}.navbar.navbar-dark .navbar-nav .nav-item .nav-link.disbled,.navbar.navbar-dark .navbar-nav .nav-item .nav-link.disbled:hover{color:#ffffff80}.navbar.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.9)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\");cursor:pointer}.navbar.navbar-dark .breadcrumb .nav-item .nav-link,.navbar.navbar-dark .navbar-nav .nav-item .nav-link{color:#fff;transition:.35s}.navbar.navbar-dark .breadcrumb .nav-item .nav-link:hover,.navbar.navbar-dark .navbar-nav .nav-item .nav-link:hover{color:#ffffffbf}.navbar.navbar-dark .breadcrumb .nav-item.active>.nav-link,.navbar.navbar-dark .navbar-nav .nav-item.active>.nav-link{background-color:#ffffff1a}.navbar.navbar-dark .breadcrumb .nav-item.active>.nav-link:hover,.navbar.navbar-dark .navbar-nav .nav-item.active>.nav-link:hover{color:#fff}.navbar.navbar-dark .navbar-toggler{color:#fff}.navbar.navbar-dark form .md-form input{border-bottom:1px solid #fff}.navbar.navbar-dark form .md-form input:focus:not([readonly]){border-color:#4285f4}.navbar.navbar-dark form .md-form .form-control{color:#fff}.navbar.navbar-dark form .md-form .form-control::placeholder{color:#fff;font-weight:300}@media (min-width: 600px){.navbar.scrolling-navbar{transition:background .5s ease-in-out,padding .5s ease-in-out;padding-top:12px;padding-bottom:12px}.navbar.scrolling-navbar .navbar-nav>li{transition-duration:1s}.navbar.scrolling-navbar.top-nav-collapse{padding-top:5px;padding-bottom:5px}}@media (min-width: 1200px){.navbar.navbar-expand-xl links,.navbar.navbar-expand-xl navlinks{display:flex;flex-direction:row;align-items:center!important;align-self:center!important;width:100%}}@media (min-width: 992px){.navbar>logo>div>a img{margin-left:20px}.navbar.navbar-expand-lg links,.navbar.navbar-expand-lg navlinks{display:flex;flex-direction:row;align-items:center!important;align-self:center!important;width:100%}}@media (min-width: 768px){.navbar.navbar-expand-md links,.navbar.navbar-expand-md navlinks{display:flex;flex-direction:row;width:100%}}@media (min-width: 576px){.navbar.navbar-expand-sm links,.navbar.navbar-expand-sm navlinks{display:flex;flex-direction:row;width:100%}}@media all and (max-width: 992px){.collapsed-navbar-scroll{max-height:calc(100vh - 40px);overflow-y:scroll}}.navbar-container{order:-1;width:50px!important;padding-left:5px;padding-right:5px}.navbar-nav .dropdown-menu-right.dropdown-menu{left:unset}.navbar-nav .dropdown-menu{top:100%!important;transform:translateZ(0)!important}.breadcrumbs{display:flex;padding-left:5px;padding-right:5px;order:0;align-items:center}@media (min-width: 1441px){.breadcrumbs{margin-left:-.6rem}}@supports (-ms-ime-align: auto){@media all and (min-width: 992px){.ie-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.ie-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.ie-nav .navbar-brand>img{margin-top:-2px;padding-right:16px}}.ie-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}@media all and (min-width: 992px){.intro-non-fixed-nav>links .navbar-collapse{display:inline-flex!important;align-items:center!important;justify-content:space-between!important}}@media all and (min-width: 992px){.intro-fixed-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.intro-fixed-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.intro-fixed-nav .navbar-brand img{margin-top:-2px;padding-right:16px}}.intro-fixed-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}}@media all and (-ms-high-contrast: none) and (min-width: 992px),(-ms-high-contrast: active) and (min-width: 992px){.ie-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.ie-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.ie-nav .navbar-brand>img{margin-top:-2px;padding-right:16px}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ie-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}}@media all and (-ms-high-contrast: none) and (min-width: 992px),(-ms-high-contrast: active) and (min-width: 992px){.intro-non-fixed-nav>links .navbar-collapse{display:inline-flex!important;align-items:center!important;justify-content:space-between!important}}@media all and (-ms-high-contrast: none) and (min-width: 992px),(-ms-high-contrast: active) and (min-width: 992px){.intro-fixed-nav .navbar-nav.nav-flex-icons{position:absolute;top:30%;right:0}.intro-fixed-nav .navbar-nav{position:absolute;top:30%;margin-left:88px}.intro-fixed-nav .navbar-brand img{margin-top:-2px;padding-right:16px}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.intro-fixed-nav .navbar-toggler{position:absolute;margin-top:-40px;right:0}}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:none}\n"] }]
6826 }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: NavbarService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
6827 type: Inject,
6828 args: [DOCUMENT]
6829 }] }]; }, propDecorators: { iconBackground: [{
6830 type: Input
6831 }], SideClass: [{
6832 type: Input
6833 }], containerInside: [{
6834 type: Input
6835 }], collapseId: [{
6836 type: Input
6837 }], scrollSensitivity: [{
6838 type: Input
6839 }], scrollableNavbar: [{
6840 type: Input
6841 }], shown: [{
6842 type: Output
6843 }], hidden: [{
6844 type: Output
6845 }], el: [{
6846 type: ViewChild,
6847 args: ['navbar', { static: true }]
6848 }], mobile: [{
6849 type: ViewChild,
6850 args: ['mobile']
6851 }], navbar: [{
6852 type: ViewChild,
6853 args: ['nav', { static: true }]
6854 }], container: [{
6855 type: ViewChild,
6856 args: ['container', { static: true }]
6857 }], toggler: [{
6858 type: ViewChild,
6859 args: ['toggler']
6860 }], links: [{
6861 type: ContentChild,
6862 args: [LinksComponent]
6863 }], onResize: [{
6864 type: HostListener,
6865 args: ['window:resize', ['$event']]
6866 }] } });
6867
6868class LogoComponent {
6869}
6870LogoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6871LogoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: LogoComponent, selector: "logo, mdb-navbar-brand", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
6872i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LogoComponent, decorators: [{
6873 type: Component,
6874 args: [{
6875 selector: 'logo, mdb-navbar-brand',
6876 template: `<ng-content></ng-content>`
6877 }]
6878 }] });
6879
6880class NavlinksComponent {
6881 constructor(_navbarService, renderer) {
6882 this._navbarService = _navbarService;
6883 this.renderer = renderer;
6884 this.linkClick = new EventEmitter();
6885 }
6886 ngAfterContentInit() {
6887 setTimeout(() => {
6888 this.links.forEach((link) => {
6889 this.renderer.listen(link.nativeElement, 'click', () => {
6890 this._navbarService.setNavbarLinkClicks();
6891 });
6892 });
6893 }, 0);
6894 }
6895}
6896NavlinksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavlinksComponent, deps: [{ token: NavbarService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
6897NavlinksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: NavlinksComponent, selector: "navlinks", outputs: { linkClick: "linkClick" }, queries: [{ propertyName: "links", predicate: RouterLinkWithHref, descendants: true, read: ElementRef }], ngImport: i0, template: `
6898 <ng-content></ng-content>
6899 `, isInline: true });
6900i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavlinksComponent, decorators: [{
6901 type: Component,
6902 args: [{
6903 // eslint-disable-next-line @angular-eslint/component-selector
6904 selector: 'navlinks',
6905 template: `
6906 <ng-content></ng-content>
6907 `,
6908 }]
6909 }], ctorParameters: function () { return [{ type: NavbarService }, { type: i0.Renderer2 }]; }, propDecorators: { links: [{
6910 type: ContentChildren,
6911 args: [RouterLinkWithHref, { read: ElementRef, descendants: true }]
6912 }], linkClick: [{
6913 type: Output
6914 }] } });
6915
6916class NavbarModule {
6917}
6918NavbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6919NavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarModule, declarations: [NavbarComponent, LinksComponent, LogoComponent, NavlinksComponent], imports: [CommonModule], exports: [NavbarComponent, LinksComponent, LogoComponent, NavlinksComponent] });
6920NavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarModule, providers: [NavbarService], imports: [[CommonModule]] });
6921i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NavbarModule, decorators: [{
6922 type: NgModule,
6923 args: [{
6924 imports: [CommonModule],
6925 declarations: [NavbarComponent, LinksComponent, LogoComponent, NavlinksComponent],
6926 exports: [NavbarComponent, LinksComponent, LogoComponent, NavlinksComponent],
6927 providers: [NavbarService]
6928 }]
6929 }] });
6930
6931/**
6932 * Configuration service for the Popover directive.
6933 * You can inject this service, typically in your root component, and customize
6934 * the values of its properties in order to provide default values for all the
6935 * popovers used in the application.
6936 */
6937class PopoverConfig {
6938 constructor() {
6939 /**
6940 * Placement of a popover. Accepts: "top", "bottom", "left", "right"
6941 */
6942 this.placement = 'top';
6943 /**
6944 * Specifies events that should trigger. Supports a space separated list of
6945 * event names.
6946 */
6947 this.triggers = 'click';
6948 }
6949}
6950PopoverConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6951PopoverConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverConfig });
6952i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverConfig, decorators: [{
6953 type: Injectable
6954 }] });
6955
6956class PopoverContainerComponent {
6957 constructor(config) {
6958 this.show = '!isBs3';
6959 this.role = 'tooltip';
6960 Object.assign(this, config);
6961 }
6962 get isBs3() {
6963 return isBs3$1();
6964 }
6965 ngOnInit() {
6966 this.class =
6967 'popover-fadeIn popover in popover-' +
6968 this.placement +
6969 ' ' +
6970 this.placement +
6971 ' bs-popover-' +
6972 this.placement +
6973 ' ' +
6974 this.containerClass;
6975 }
6976}
6977PopoverContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverContainerComponent, deps: [{ token: PopoverConfig }], target: i0.ɵɵFactoryTarget.Component });
6978PopoverContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: PopoverContainerComponent, selector: "mdb-popover-container", inputs: { placement: "placement", title: "title" }, host: { properties: { "class.show": "this.show", "attr.role": "this.role", "class": "this.class" } }, ngImport: i0, template: `
6979 <h3 class="popover-header" [ngClass]="headerClass" *ngIf="title">{{ title }}</h3>
6980 <div class="popover-body" [ngClass]="bodyClass">
6981 <ng-content></ng-content>
6982 </div>
6983 `, isInline: true, styles: [".popover.popover-top,.popover.bs-tether-element-attached-bottom{margin-top:-10px}.popover.popover-top:before,.popover.popover-top:after,.popover.bs-tether-element-attached-bottom:before,.popover.bs-tether-element-attached-bottom:after{left:50%;border-bottom-width:0}.popover.popover-top:before,.popover.bs-tether-element-attached-bottom:before{bottom:-11px;margin-left:-11px;border-top-color:#00000040}.popover.popover-top:after,.popover.bs-tether-element-attached-bottom:after{bottom:-10px;margin-left:-10px;border-top-color:#fff}.popover.popover-right,.popover.bs-tether-element-attached-left{margin-left:10px}.popover.popover-right:before,.popover.popover-right:after,.popover.bs-tether-element-attached-left:before,.popover.bs-tether-element-attached-left:after{top:50%;border-left-width:0}.popover.popover-right:before,.popover.bs-tether-element-attached-left:before{left:-11px;margin-top:-11px;border-right-color:#00000040}.popover.popover-right:after,.popover.bs-tether-element-attached-left:after{left:-10px;margin-top:-10px;border-right-color:#fff}.popover.popover-bottom,.popover.bs-tether-element-attached-top{margin-top:10px}.popover.popover-bottom:before,.popover.popover-bottom:after,.popover.bs-tether-element-attached-top:before,.popover.bs-tether-element-attached-top:after{left:50%;border-top-width:0}.popover.popover-bottom:before,.popover.bs-tether-element-attached-top:before{top:-11px;margin-left:-11px;border-bottom-color:#00000040}.popover.popover-bottom:after,.popover.bs-tether-element-attached-top:after{top:-10px;margin-left:-10px;border-bottom-color:#f7f7f7}.popover.popover-bottom .popover-title:before,.popover.bs-tether-element-attached-top .popover-title:before{position:absolute;top:0;left:50%;display:block;width:20px;margin-left:-10px;content:\"\";border-bottom:1px solid #f7f7f7}.popover.popover-left,.popover.bs-tether-element-attached-right{margin-left:-10px}.popover.popover-left:before,.popover.popover-left:after,.popover.bs-tether-element-attached-right:before,.popover.bs-tether-element-attached-right:after{top:50%;border-right-width:0}.popover.popover-left:before,.popover.bs-tether-element-attached-right:before{right:-11px;margin-top:-11px;border-left-color:#00000040}.popover.popover-left:after,.popover.bs-tether-element-attached-right:after{right:-10px;margin-top:-10px;border-left-color:#fff}.popover:before,.popover:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover:before{content:\"\";border-width:11px}.popover:after{content:\"\";border-width:10px}@keyframes fadeInPopover{0%{opacity:0}to{opacity:1}}.popover-fadeIn{animation-name:fadeInPopover;animation-delay:.2s;animation-duration:.2s;animation-fill-mode:both}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6984i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverContainerComponent, decorators: [{
6985 type: Component,
6986 args: [{ selector: 'mdb-popover-container', changeDetection: ChangeDetectionStrategy.OnPush, template: `
6987 <h3 class="popover-header" [ngClass]="headerClass" *ngIf="title">{{ title }}</h3>
6988 <div class="popover-body" [ngClass]="bodyClass">
6989 <ng-content></ng-content>
6990 </div>
6991 `, encapsulation: ViewEncapsulation.None, styles: [".popover.popover-top,.popover.bs-tether-element-attached-bottom{margin-top:-10px}.popover.popover-top:before,.popover.popover-top:after,.popover.bs-tether-element-attached-bottom:before,.popover.bs-tether-element-attached-bottom:after{left:50%;border-bottom-width:0}.popover.popover-top:before,.popover.bs-tether-element-attached-bottom:before{bottom:-11px;margin-left:-11px;border-top-color:#00000040}.popover.popover-top:after,.popover.bs-tether-element-attached-bottom:after{bottom:-10px;margin-left:-10px;border-top-color:#fff}.popover.popover-right,.popover.bs-tether-element-attached-left{margin-left:10px}.popover.popover-right:before,.popover.popover-right:after,.popover.bs-tether-element-attached-left:before,.popover.bs-tether-element-attached-left:after{top:50%;border-left-width:0}.popover.popover-right:before,.popover.bs-tether-element-attached-left:before{left:-11px;margin-top:-11px;border-right-color:#00000040}.popover.popover-right:after,.popover.bs-tether-element-attached-left:after{left:-10px;margin-top:-10px;border-right-color:#fff}.popover.popover-bottom,.popover.bs-tether-element-attached-top{margin-top:10px}.popover.popover-bottom:before,.popover.popover-bottom:after,.popover.bs-tether-element-attached-top:before,.popover.bs-tether-element-attached-top:after{left:50%;border-top-width:0}.popover.popover-bottom:before,.popover.bs-tether-element-attached-top:before{top:-11px;margin-left:-11px;border-bottom-color:#00000040}.popover.popover-bottom:after,.popover.bs-tether-element-attached-top:after{top:-10px;margin-left:-10px;border-bottom-color:#f7f7f7}.popover.popover-bottom .popover-title:before,.popover.bs-tether-element-attached-top .popover-title:before{position:absolute;top:0;left:50%;display:block;width:20px;margin-left:-10px;content:\"\";border-bottom:1px solid #f7f7f7}.popover.popover-left,.popover.bs-tether-element-attached-right{margin-left:-10px}.popover.popover-left:before,.popover.popover-left:after,.popover.bs-tether-element-attached-right:before,.popover.bs-tether-element-attached-right:after{top:50%;border-right-width:0}.popover.popover-left:before,.popover.bs-tether-element-attached-right:before{right:-11px;margin-top:-11px;border-left-color:#00000040}.popover.popover-left:after,.popover.bs-tether-element-attached-right:after{right:-10px;margin-top:-10px;border-left-color:#fff}.popover:before,.popover:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover:before{content:\"\";border-width:11px}.popover:after{content:\"\";border-width:10px}@keyframes fadeInPopover{0%{opacity:0}to{opacity:1}}.popover-fadeIn{animation-name:fadeInPopover;animation-delay:.2s;animation-duration:.2s;animation-fill-mode:both}\n"] }]
6992 }], ctorParameters: function () { return [{ type: PopoverConfig }]; }, propDecorators: { placement: [{
6993 type: Input
6994 }], title: [{
6995 type: Input
6996 }], show: [{
6997 type: HostBinding,
6998 args: ['class.show']
6999 }], role: [{
7000 type: HostBinding,
7001 args: ['attr.role']
7002 }], class: [{
7003 type: HostBinding,
7004 args: ['class']
7005 }] } });
7006
7007/**
7008 * A lightweight, extensible directive for fancy popover creation.
7009 */
7010class PopoverDirective {
7011 constructor(_elementRef, _renderer, _viewContainerRef, _config, cis, _positionService) {
7012 this._positionService = _positionService;
7013 this._dynamicPosition = true;
7014 this._outsideClick = false;
7015 this._popoverDisabled = false;
7016 this._popover = cis
7017 .createLoader(_elementRef, _viewContainerRef, _renderer)
7018 .provide({ provide: PopoverConfig, useValue: _config });
7019 Object.assign(this, _config);
7020 this.onShown = this._popover.onShown;
7021 this.shown = this._popover.onShown;
7022 this.onHidden = this._popover.onHidden;
7023 this.hidden = this._popover.onHidden;
7024 }
7025 /**
7026 * Returns whether or not the popover is currently being shown
7027 */
7028 get isOpen() {
7029 return this._popover.isShown;
7030 }
7031 set isOpen(value) {
7032 const isOpen = coerceBooleanProperty(value);
7033 if (isOpen) {
7034 this.show();
7035 }
7036 else {
7037 this.hide();
7038 }
7039 }
7040 get dynamicPosition() {
7041 return this._dynamicPosition;
7042 }
7043 set dynamicPosition(value) {
7044 this._dynamicPosition = coerceBooleanProperty(value);
7045 }
7046 get outsideClick() {
7047 return this._outsideClick;
7048 }
7049 set outsideClick(value) {
7050 this._outsideClick = coerceBooleanProperty(value);
7051 }
7052 get popoverDisabled() {
7053 return this._popoverDisabled;
7054 }
7055 set popoverDisabled(value) {
7056 this._popoverDisabled = coerceBooleanProperty(value);
7057 }
7058 get hasContent() {
7059 if (typeof this.mdbPopover === 'string') {
7060 return this.mdbPopover.length > 0;
7061 }
7062 return true;
7063 }
7064 /**
7065 * Opens an element’s popover. This is considered a “manual” triggering of
7066 * the popover.
7067 */
7068 show() {
7069 if (this._popover.isShown || this.popoverDisabled || !this.hasContent) {
7070 return;
7071 }
7072 this._positionService.setOptions({
7073 modifiers: {
7074 flip: {
7075 enabled: this.dynamicPosition,
7076 },
7077 preventOverflow: {
7078 enabled: this.dynamicPosition,
7079 },
7080 },
7081 });
7082 this._popover
7083 .attach(PopoverContainerComponent)
7084 .to(this.container)
7085 .position({ attachment: this.placement })
7086 .show({
7087 content: this.mdbPopover,
7088 placement: this.placement,
7089 title: this.mdbPopoverHeader || this.popoverTitle,
7090 containerClass: this.containerClass ? this.containerClass : '',
7091 bodyClass: this.bodyClass ? this.bodyClass : '',
7092 headerClass: this.headerClass ? this.headerClass : '',
7093 });
7094 this.isOpen = true;
7095 if (!this.dynamicPosition) {
7096 this._positionService.calcPosition();
7097 this._positionService.deletePositionElement(this._popover._componentRef.location);
7098 }
7099 }
7100 /**
7101 * Closes an element’s popover. This is considered a “manual” triggering of
7102 * the popover.
7103 */
7104 hide() {
7105 if (this.isOpen) {
7106 this._popover.hide();
7107 this.isOpen = false;
7108 }
7109 }
7110 /**
7111 * Toggles an element’s popover. This is considered a “manual” triggering of
7112 * the popover.
7113 */
7114 toggle() {
7115 if (this.isOpen) {
7116 return this.hide();
7117 }
7118 this.show();
7119 }
7120 onclick(event) {
7121 if (this.triggers.toString().includes('focus')) {
7122 event.stopPropagation();
7123 this.show();
7124 }
7125 }
7126 onblur() {
7127 if (this.triggers.toString().includes('focus') && this.isOpen) {
7128 this.hide();
7129 }
7130 }
7131 // fix(popover): popover with outsideClick='true' will now close after clicking in document on iPad Safari
7132 onTouchStart(event) {
7133 if (this.outsideClick && !event.target.classList.contains('popover-body')) {
7134 this.hide();
7135 }
7136 }
7137 ngOnInit() {
7138 this._popover.listen({
7139 triggers: this.triggers,
7140 outsideClick: this.outsideClick,
7141 show: () => this.show(),
7142 });
7143 }
7144 dispose() {
7145 this._popover.dispose();
7146 }
7147 ngOnDestroy() {
7148 this._popover.dispose();
7149 }
7150}
7151PopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: PopoverConfig }, { token: ComponentLoaderFactory }, { token: PositioningService }], target: i0.ɵɵFactoryTarget.Directive });
7152PopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: PopoverDirective, selector: "[mdbPopover]", inputs: { containerClass: "containerClass", bodyClass: "bodyClass", headerClass: "headerClass", mdbPopover: "mdbPopover", mdbPopoverHeader: "mdbPopoverHeader", popoverTitle: "popoverTitle", placement: "placement", triggers: "triggers", container: "container", isOpen: "isOpen", dynamicPosition: "dynamicPosition", outsideClick: "outsideClick", popoverDisabled: "popoverDisabled" }, outputs: { onShown: "onShown", shown: "shown", onHidden: "onHidden", hidden: "hidden" }, host: { listeners: { "click": "onclick($event)", "window:click": "onblur()", "document:touchstart": "onTouchStart($event)" } }, exportAs: ["bs-mdbPopover"], ngImport: i0 });
7153i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverDirective, decorators: [{
7154 type: Directive,
7155 args: [{ selector: '[mdbPopover]', exportAs: 'bs-mdbPopover' }]
7156 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: PopoverConfig }, { type: ComponentLoaderFactory }, { type: PositioningService }]; }, propDecorators: { containerClass: [{
7157 type: Input
7158 }], bodyClass: [{
7159 type: Input
7160 }], headerClass: [{
7161 type: Input
7162 }], mdbPopover: [{
7163 type: Input
7164 }], mdbPopoverHeader: [{
7165 type: Input
7166 }], popoverTitle: [{
7167 type: Input
7168 }], placement: [{
7169 type: Input
7170 }], triggers: [{
7171 type: Input
7172 }], container: [{
7173 type: Input
7174 }], isOpen: [{
7175 type: Input
7176 }], dynamicPosition: [{
7177 type: Input
7178 }], outsideClick: [{
7179 type: Input
7180 }], popoverDisabled: [{
7181 type: Input
7182 }], onShown: [{
7183 type: Output
7184 }], shown: [{
7185 type: Output
7186 }], onHidden: [{
7187 type: Output
7188 }], hidden: [{
7189 type: Output
7190 }], onclick: [{
7191 type: HostListener,
7192 args: ['click', ['$event']]
7193 }], onblur: [{
7194 type: HostListener,
7195 args: ['window:click']
7196 }], onTouchStart: [{
7197 type: HostListener,
7198 args: ['document:touchstart', ['$event']]
7199 }] } });
7200
7201class PopoverModule {
7202 static forRoot() {
7203 return {
7204 ngModule: PopoverModule,
7205 providers: [PopoverConfig, ComponentLoaderFactory, PositioningService],
7206 };
7207 }
7208}
7209PopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7210PopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverModule, declarations: [PopoverDirective, PopoverContainerComponent], imports: [CommonModule], exports: [PopoverDirective] });
7211PopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverModule, imports: [[CommonModule]] });
7212i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PopoverModule, decorators: [{
7213 type: NgModule,
7214 args: [{
7215 imports: [CommonModule],
7216 declarations: [PopoverDirective, PopoverContainerComponent],
7217 exports: [PopoverDirective],
7218 entryComponents: [PopoverContainerComponent],
7219 }]
7220 }] });
7221
7222// eslint-disable-next-line @angular-eslint/component-class-suffix
7223class MdbTableDirective {
7224 constructor(el, renderer) {
7225 this.el = el;
7226 this.renderer = renderer;
7227 this._striped = false;
7228 this._bordered = false;
7229 this._borderless = false;
7230 this._hover = false;
7231 this._small = false;
7232 this._responsive = false;
7233 this._stickyHeader = false;
7234 this.stickyHeaderBgColor = '#f2f2f2';
7235 this.stickyHeaderTextColor = '#000000';
7236 this._stickyFooter = false;
7237 this.stickyFooterBgColor = '#f2f2f2';
7238 this.stickyFooterTextColor = '#000000';
7239 this._dataSource = [];
7240 this._dataSourceChanged = new Subject();
7241 }
7242 get striped() {
7243 return this._striped;
7244 }
7245 set striped(value) {
7246 this._striped = coerceBooleanProperty(value);
7247 }
7248 get bordered() {
7249 return this._bordered;
7250 }
7251 set bordered(value) {
7252 this._bordered = coerceBooleanProperty(value);
7253 }
7254 get borderless() {
7255 return this._borderless;
7256 }
7257 set borderless(value) {
7258 this._borderless = coerceBooleanProperty(value);
7259 }
7260 get hover() {
7261 return this._hover;
7262 }
7263 set hover(value) {
7264 this._hover = coerceBooleanProperty(value);
7265 }
7266 get small() {
7267 return this._small;
7268 }
7269 set small(value) {
7270 this._small = coerceBooleanProperty(value);
7271 }
7272 get responsive() {
7273 return this._responsive;
7274 }
7275 set responsive(value) {
7276 this._responsive = coerceBooleanProperty(value);
7277 }
7278 get stickyHeader() {
7279 return this._stickyHeader;
7280 }
7281 set stickyHeader(value) {
7282 this._stickyHeader = coerceBooleanProperty(value);
7283 }
7284 get stickyFooter() {
7285 return this._stickyFooter;
7286 }
7287 set stickyFooter(value) {
7288 this._stickyFooter = coerceBooleanProperty(value);
7289 }
7290 addRow(newRow) {
7291 this.getDataSource().push(newRow);
7292 }
7293 addRowAfter(index, row) {
7294 this.getDataSource().splice(index, 0, row);
7295 }
7296 removeRow(index) {
7297 this.getDataSource().splice(index, 1);
7298 }
7299 rowRemoved() {
7300 return new Observable((observer) => {
7301 observer.next(true);
7302 });
7303 }
7304 removeLastRow() {
7305 this.getDataSource().pop();
7306 }
7307 getDataSource() {
7308 return this._dataSource;
7309 }
7310 setDataSource(data) {
7311 this._dataSource = data;
7312 this._dataSourceChanged.next(this.getDataSource());
7313 }
7314 dataSourceChange() {
7315 return this._dataSourceChanged;
7316 }
7317 filterLocalDataBy(searchKey) {
7318 return this.getDataSource().filter((obj) => {
7319 return Object.keys(obj).some((key) => {
7320 if (obj[key]) {
7321 // Fix(tableSearch): table search will now able to filter through nested data
7322 return JSON.stringify(obj).toLowerCase().includes(searchKey);
7323 }
7324 });
7325 });
7326 }
7327 filterLocalDataByFields(searchKey, keys) {
7328 return this.getDataSource().filter((obj) => {
7329 return Object.keys(obj).some((key) => {
7330 if (obj[key]) {
7331 if (keys.includes(key)) {
7332 if (obj[key].toLowerCase().includes(searchKey)) {
7333 return obj[key];
7334 }
7335 }
7336 }
7337 });
7338 });
7339 }
7340 filterLocalDataByMultipleFields(searchKey, keys) {
7341 const items = searchKey.split(' ').map((x) => x.toLowerCase());
7342 return this.getDataSource().filter((x) => {
7343 for (const item of items) {
7344 let flag = false;
7345 if (keys !== undefined) {
7346 for (const prop in x) {
7347 if (x[prop] && x.hasOwnProperty(prop)) {
7348 if (keys.includes(prop)) {
7349 if (x[prop].toLowerCase().indexOf(item) !== -1) {
7350 flag = true;
7351 break;
7352 }
7353 }
7354 }
7355 }
7356 }
7357 if (keys === undefined) {
7358 for (const prop in x) {
7359 if (x.hasOwnProperty(prop) && x[prop].toLowerCase().indexOf(item) !== -1) {
7360 flag = true;
7361 break;
7362 }
7363 }
7364 }
7365 if (!flag) {
7366 return false;
7367 }
7368 }
7369 return true;
7370 });
7371 }
7372 searchLocalDataBy(searchKey) {
7373 if (!searchKey) {
7374 return this.getDataSource();
7375 }
7376 if (searchKey) {
7377 return this.filterLocalDataBy(searchKey.toLowerCase());
7378 }
7379 }
7380 searchLocalDataByFields(searchKey, keys) {
7381 if (!searchKey) {
7382 return this.getDataSource();
7383 }
7384 if (searchKey && keys.length > 0) {
7385 return this.filterLocalDataByFields(searchKey.toLowerCase(), keys);
7386 }
7387 if (!keys || keys.length === 0) {
7388 return this.filterLocalDataBy(searchKey.toLowerCase());
7389 }
7390 }
7391 searchLocalDataByMultipleFields(searchKey, keys) {
7392 if (!searchKey) {
7393 return this.getDataSource();
7394 }
7395 if (searchKey && keys !== undefined) {
7396 return this.filterLocalDataByMultipleFields(searchKey.toLowerCase(), keys);
7397 }
7398 }
7399 searchDataObservable(searchKey) {
7400 return new Observable((observer) => {
7401 observer.next(this.searchLocalDataBy(searchKey));
7402 });
7403 }
7404 ngOnInit() {
7405 this.renderer.addClass(this.el.nativeElement, 'table');
7406 }
7407 ngAfterViewInit() {
7408 // Fix(stickyHeader): resolved problem with not working stickyHeader="true" on Chrome
7409 if (this.stickyHeader) {
7410 this.makeSticky('thead', 'sticky-top', this.stickyHeaderBgColor, this.stickyHeaderTextColor);
7411 }
7412 if (this.stickyFooter) {
7413 this.makeSticky('tfoot', 'sticky-bottom', this.stickyFooterBgColor, this.stickyFooterTextColor);
7414 }
7415 }
7416 makeSticky(query, elementClass, bgColor, color) {
7417 const tableHead = this.el.nativeElement.querySelector(query);
7418 Array.from(tableHead.firstElementChild.children).forEach((child) => {
7419 this.renderer.addClass(child, elementClass);
7420 if (bgColor) {
7421 this.renderer.setStyle(child, 'background-color', bgColor);
7422 }
7423 if (color) {
7424 this.renderer.setStyle(child, 'color', color);
7425 }
7426 });
7427 }
7428}
7429MdbTableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
7430MdbTableDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbTableDirective, selector: "[mdbTable]", inputs: { striped: "striped", bordered: "bordered", borderless: "borderless", hover: "hover", small: "small", responsive: "responsive", stickyHeader: "stickyHeader", stickyHeaderBgColor: "stickyHeaderBgColor", stickyHeaderTextColor: "stickyHeaderTextColor", stickyFooter: "stickyFooter", stickyFooterBgColor: "stickyFooterBgColor", stickyFooterTextColor: "stickyFooterTextColor" }, host: { properties: { "class.table-striped": "this.striped", "class.table-bordered": "this.bordered", "class.table-borderless": "this.borderless", "class.table-hover": "this.hover", "class.table-sm": "this.small", "class.table-responsive": "this.responsive" } }, exportAs: ["mdbTable"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["table th{font-size:.9rem;font-weight:400}table td{font-size:.9rem;font-weight:300}table thead th svg.ascending,table thead th svg.descending,table thead td svg.ascending,table thead td svg.descending{display:none;max-height:.9rem;max-width:.9rem}table thead th[aria-sort=ascending] svg.ascending,table thead td[aria-sort=ascending] svg.ascending{display:unset}table thead th[aria-sort=descending] svg.descending,table thead td[aria-sort=descending] svg.descending{display:unset}table thead th:not([aria-sort]):hover svg.descending,table thead th[aria-sort=constant]:hover svg.descending,table thead td:not([aria-sort]):hover svg.descending,table thead td[aria-sort=constant]:hover svg.descending{display:unset;opacity:.5}table tfoot .sticky-bottom{position:sticky;bottom:0}table.table{margin-bottom:0}table.table thead th{border-top:none;border-bottom-width:1px}table.table th,table.table td{padding:1.1rem 16px 1rem}table.table .label-table{margin:0;padding:0;line-height:.94rem;height:.94rem}table.table.btn-table td{vertical-align:middle}table.table-hover tbody tr:hover{transition:.5s;background-color:#00000013}table .th-lg{min-width:9rem}table .th-sm{min-width:6rem}table.table-sm th,table.table-sm td{padding-top:.6rem;padding-bottom:.6rem}.table-scroll-vertical{max-height:300px;overflow-y:auto}.table-fixed{table-layout:fixed}.table-responsive>.table-bordered,.table-responsive-sm>.table-bordered,.table-responsive-md>.table-bordered,.table-responsive-lg>.table-bordered,.table-responsive-xl>.table-bordered{border-top:1px solid #dee2e6}\n"], encapsulation: i0.ViewEncapsulation.None });
7431i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableDirective, decorators: [{
7432 type: Component,
7433 args: [{ selector: '[mdbTable]', exportAs: 'mdbTable', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, styles: ["table th{font-size:.9rem;font-weight:400}table td{font-size:.9rem;font-weight:300}table thead th svg.ascending,table thead th svg.descending,table thead td svg.ascending,table thead td svg.descending{display:none;max-height:.9rem;max-width:.9rem}table thead th[aria-sort=ascending] svg.ascending,table thead td[aria-sort=ascending] svg.ascending{display:unset}table thead th[aria-sort=descending] svg.descending,table thead td[aria-sort=descending] svg.descending{display:unset}table thead th:not([aria-sort]):hover svg.descending,table thead th[aria-sort=constant]:hover svg.descending,table thead td:not([aria-sort]):hover svg.descending,table thead td[aria-sort=constant]:hover svg.descending{display:unset;opacity:.5}table tfoot .sticky-bottom{position:sticky;bottom:0}table.table{margin-bottom:0}table.table thead th{border-top:none;border-bottom-width:1px}table.table th,table.table td{padding:1.1rem 16px 1rem}table.table .label-table{margin:0;padding:0;line-height:.94rem;height:.94rem}table.table.btn-table td{vertical-align:middle}table.table-hover tbody tr:hover{transition:.5s;background-color:#00000013}table .th-lg{min-width:9rem}table .th-sm{min-width:6rem}table.table-sm th,table.table-sm td{padding-top:.6rem;padding-bottom:.6rem}.table-scroll-vertical{max-height:300px;overflow-y:auto}.table-fixed{table-layout:fixed}.table-responsive>.table-bordered,.table-responsive-sm>.table-bordered,.table-responsive-md>.table-bordered,.table-responsive-lg>.table-bordered,.table-responsive-xl>.table-bordered{border-top:1px solid #dee2e6}\n"] }]
7434 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { striped: [{
7435 type: Input
7436 }, {
7437 type: HostBinding,
7438 args: ['class.table-striped']
7439 }], bordered: [{
7440 type: Input
7441 }, {
7442 type: HostBinding,
7443 args: ['class.table-bordered']
7444 }], borderless: [{
7445 type: Input
7446 }, {
7447 type: HostBinding,
7448 args: ['class.table-borderless']
7449 }], hover: [{
7450 type: Input
7451 }, {
7452 type: HostBinding,
7453 args: ['class.table-hover']
7454 }], small: [{
7455 type: Input
7456 }, {
7457 type: HostBinding,
7458 args: ['class.table-sm']
7459 }], responsive: [{
7460 type: Input
7461 }, {
7462 type: HostBinding,
7463 args: ['class.table-responsive']
7464 }], stickyHeader: [{
7465 type: Input
7466 }], stickyHeaderBgColor: [{
7467 type: Input
7468 }], stickyHeaderTextColor: [{
7469 type: Input
7470 }], stickyFooter: [{
7471 type: Input
7472 }], stickyFooterBgColor: [{
7473 type: Input
7474 }], stickyFooterTextColor: [{
7475 type: Input
7476 }] } });
7477
7478var SortDirection;
7479(function (SortDirection) {
7480 SortDirection["ASC"] = "ascending";
7481 SortDirection["DESC"] = "descending";
7482 SortDirection["CONST"] = "constant";
7483})(SortDirection || (SortDirection = {}));
7484class MdbTableSortDirective {
7485 constructor(el, renderer) {
7486 this.el = el;
7487 this.renderer = renderer;
7488 this.data = [];
7489 this.sortedInto = true;
7490 this.order = SortDirection.CONST;
7491 this.dataSource = [];
7492 this._sortIcon = false;
7493 this._resetSortDirection = false;
7494 this.sortEnd = new EventEmitter();
7495 this.sorted = new EventEmitter();
7496 }
7497 get sortIcon() {
7498 return this._sortIcon;
7499 }
7500 set sortIcon(value) {
7501 this._sortIcon = coerceBooleanProperty(value);
7502 }
7503 get resetSortDirection() {
7504 return this._resetSortDirection;
7505 }
7506 set resetSortDirection(value) {
7507 this._resetSortDirection = coerceBooleanProperty(value);
7508 }
7509 onclick() {
7510 this.sortDataBy(this.trimWhiteSigns(this.sortBy.toString()));
7511 this.sortEnd.emit(this.dataSource);
7512 this.sorted.emit({
7513 data: this.dataSource,
7514 sortOrder: this.order,
7515 sortBy: this.sortBy,
7516 });
7517 this.removeSort();
7518 }
7519 trimWhiteSigns(headElement) {
7520 return headElement.replace(/ /g, '');
7521 }
7522 moveArrayItem(arr, oldIndex, newIndex) {
7523 while (oldIndex < 0) {
7524 oldIndex += arr.length;
7525 }
7526 while (newIndex < 0) {
7527 newIndex += arr.length;
7528 }
7529 if (newIndex >= arr.length) {
7530 let k = newIndex - arr.length;
7531 while (k-- + 1) {
7532 arr.push(null);
7533 }
7534 }
7535 arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]);
7536 return arr;
7537 }
7538 sortDataBy(key) {
7539 let ariaPass = true;
7540 const setAria = (sort, id) => {
7541 if (ariaPass) {
7542 let nextSortType = '';
7543 if (this.resetSortDirection) {
7544 if (sort === SortDirection.CONST) {
7545 nextSortType = SortDirection.DESC;
7546 }
7547 else if (sort === SortDirection.DESC) {
7548 nextSortType = SortDirection.ASC;
7549 }
7550 else if (sort === SortDirection.ASC) {
7551 nextSortType = SortDirection.CONST;
7552 }
7553 }
7554 else {
7555 if (sort === SortDirection.DESC) {
7556 nextSortType = SortDirection.ASC;
7557 }
7558 else if (sort === SortDirection.ASC) {
7559 nextSortType = SortDirection.DESC;
7560 }
7561 }
7562 this.renderer.setAttribute(this.el.nativeElement, 'aria-sort', sort);
7563 this.renderer.setAttribute(this.el.nativeElement, 'aria-label', `${id}: activate to sort column ${nextSortType}`);
7564 ariaPass = false;
7565 }
7566 };
7567 key = key.split('.');
7568 if (this.resetSortDirection) {
7569 const sortFn = (a, b) => {
7570 a = a[key];
7571 b = b[key];
7572 return a > b ? -1 : 1;
7573 };
7574 if (this.order === SortDirection.CONST) {
7575 setAria(SortDirection.DESC, key);
7576 this.order = SortDirection.DESC;
7577 this.dataSource.sort(sortFn);
7578 }
7579 else if (this.order === SortDirection.DESC) {
7580 setAria(SortDirection.ASC, key);
7581 this.order = SortDirection.ASC;
7582 this.dataSource.sort(sortFn).reverse();
7583 }
7584 else if (this.order === SortDirection.ASC) {
7585 setAria(SortDirection.CONST, key);
7586 this.order = SortDirection.CONST;
7587 this.data.map((el, index) => {
7588 this.dataSource[index] = el;
7589 });
7590 }
7591 }
7592 else {
7593 this.dataSource.sort((a, b) => {
7594 let i = 0;
7595 while (i < key.length) {
7596 a = a[key[i]];
7597 b = b[key[i]];
7598 i++;
7599 }
7600 if (a < b) {
7601 setAria(SortDirection.ASC, key);
7602 this.order = SortDirection.ASC;
7603 return this.sortedInto ? 1 : -1;
7604 }
7605 else if (a > b) {
7606 setAria(SortDirection.DESC, key);
7607 this.order = SortDirection.DESC;
7608 return this.sortedInto ? -1 : 1;
7609 }
7610 else if (a == null || b == null) {
7611 this.order = SortDirection.CONST;
7612 return 1;
7613 }
7614 else {
7615 this.order = SortDirection.CONST;
7616 return 0;
7617 }
7618 });
7619 this.sortedInto = !this.sortedInto;
7620 }
7621 }
7622 ngOnInit() {
7623 const key = this.trimWhiteSigns(this.sortBy.toString()).split('.');
7624 this.renderer.setAttribute(this.el.nativeElement, 'aria-label', `${key}: activate to sort column descending`);
7625 if (this.data.length === 0) {
7626 // this.dataSource.map((element: any) => {
7627 // this.data.push(element);
7628 // })
7629 this.data = Array.from(this.dataSource);
7630 }
7631 }
7632 ngAfterViewInit() {
7633 if (this.sortIcon) {
7634 this.createIcon();
7635 }
7636 }
7637 createIcon() {
7638 // eslint-disable-next-line max-len
7639 const iconUp = `<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="arrow-up" class="svg-inline--fa fa-arrow-up fa-w-14 ascending" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"></path></svg>`;
7640 // eslint-disable-next-line max-len
7641 const iconDown = `<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="arrow-down" class="svg-inline--fa fa-arrow-down fa-w-14 descending" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"></path></svg>`;
7642 const title = this.el.nativeElement.innerHTML;
7643 this.el.nativeElement.innerHTML = `${title} ${iconUp} ${iconDown}`;
7644 }
7645 removeSort() {
7646 const nodes = this.el.nativeElement.parentElement.childNodes;
7647 if (nodes) {
7648 Array.from(nodes).map((node) => {
7649 if (node !== this.el.nativeElement && node.nodeName !== '#comment') {
7650 this.renderer.removeAttribute(node, 'aria-sort');
7651 }
7652 });
7653 }
7654 }
7655}
7656MdbTableSortDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableSortDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
7657MdbTableSortDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: MdbTableSortDirective, selector: "[mdbTableSort]", inputs: { dataSource: ["mdbTableSort", "dataSource"], sortBy: "sortBy", sortIcon: "sortIcon", resetSortDirection: "resetSortDirection" }, outputs: { sortEnd: "sortEnd", sorted: "sorted" }, host: { listeners: { "click": "onclick()" } }, ngImport: i0 });
7658i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableSortDirective, decorators: [{
7659 type: Directive,
7660 args: [{
7661 selector: '[mdbTableSort]',
7662 }]
7663 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { dataSource: [{
7664 type: Input,
7665 args: ['mdbTableSort']
7666 }], sortBy: [{
7667 type: Input
7668 }], sortIcon: [{
7669 type: Input
7670 }], resetSortDirection: [{
7671 type: Input
7672 }], sortEnd: [{
7673 type: Output
7674 }], sorted: [{
7675 type: Output
7676 }], onclick: [{
7677 type: HostListener,
7678 args: ['click']
7679 }] } });
7680
7681class MdbTableScrollDirective {
7682 constructor(renderer, el) {
7683 this.renderer = renderer;
7684 this.el = el;
7685 this._scrollY = false;
7686 this._scrollX = false;
7687 }
7688 get scrollY() {
7689 return this._scrollY;
7690 }
7691 set scrollY(value) {
7692 this._scrollY = coerceBooleanProperty(value);
7693 }
7694 get maxHeight() {
7695 return this._maxHeight;
7696 }
7697 set maxHeight(value) {
7698 if (typeof value === 'number') {
7699 this._maxHeight = `${value}px`;
7700 }
7701 else {
7702 this._maxHeight = value;
7703 }
7704 }
7705 get scrollX() {
7706 return this._scrollX;
7707 }
7708 set scrollX(value) {
7709 this._scrollX = coerceBooleanProperty(value);
7710 }
7711 get maxWidth() {
7712 return this._maxWidth;
7713 }
7714 set maxWidth(value) {
7715 if (typeof value === 'number') {
7716 this._maxWidth = `${value}px`;
7717 }
7718 else {
7719 this._maxWidth = value;
7720 }
7721 }
7722 wrapTableWithVerticalScrollingWrapper(tableWrapper) {
7723 this.renderer.setStyle(tableWrapper, 'max-height', this.maxHeight);
7724 this.renderer.setStyle(tableWrapper, 'overflow-y', 'auto');
7725 this.renderer.setStyle(tableWrapper, 'display', 'block');
7726 }
7727 wrapTableWithHorizontalScrollingWrapper(tableWrapper) {
7728 this.renderer.setStyle(tableWrapper, 'max-width', this.maxWidth);
7729 this.renderer.setStyle(tableWrapper, 'overflow-x', 'auto');
7730 this.renderer.setStyle(tableWrapper, 'display', 'block');
7731 }
7732 wrapTableWithHorizontalAndVerticalScrollingWrapper(tableWrapper) {
7733 this.renderer.setStyle(tableWrapper, 'max-height', this.maxHeight);
7734 this.renderer.setStyle(tableWrapper, 'max-width', this.maxWidth);
7735 this.renderer.setStyle(tableWrapper, 'overflow-x', 'auto');
7736 this.renderer.setStyle(tableWrapper, 'display', 'block');
7737 }
7738 ngOnInit() {
7739 const parent = this.el.nativeElement.parentNode;
7740 const tableWrapper = this.renderer.createElement('div');
7741 if (this.scrollY && this.scrollX && this.maxHeight && this.maxWidth) {
7742 this.wrapTableWithHorizontalAndVerticalScrollingWrapper(tableWrapper);
7743 }
7744 if (this.scrollY && this.maxHeight) {
7745 this.wrapTableWithVerticalScrollingWrapper(tableWrapper);
7746 }
7747 if (this.scrollX && this.maxWidth) {
7748 this.wrapTableWithHorizontalScrollingWrapper(tableWrapper);
7749 }
7750 this.renderer.insertBefore(parent, tableWrapper, this.el.nativeElement);
7751 this.renderer.removeChild(parent, this.el.nativeElement);
7752 this.renderer.appendChild(tableWrapper, this.el.nativeElement);
7753 }
7754}
7755MdbTableScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableScrollDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
7756MdbTableScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: MdbTableScrollDirective, selector: "[mdbTableScroll]", inputs: { scrollY: "scrollY", maxHeight: "maxHeight", scrollX: "scrollX", maxWidth: "maxWidth" }, ngImport: i0 });
7757i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableScrollDirective, decorators: [{
7758 type: Directive,
7759 args: [{
7760 selector: '[mdbTableScroll]',
7761 }]
7762 }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { scrollY: [{
7763 type: Input
7764 }], maxHeight: [{
7765 type: Input
7766 }], scrollX: [{
7767 type: Input
7768 }], maxWidth: [{
7769 type: Input
7770 }] } });
7771
7772class MdbTableRowDirective {
7773 constructor(el) {
7774 this.el = el;
7775 this.rowCreated = new EventEmitter();
7776 this.rowRemoved = new EventEmitter();
7777 }
7778 ngOnInit() {
7779 this.rowCreated.emit({ created: true, el: this.el.nativeElement });
7780 }
7781 ngOnDestroy() {
7782 this.rowRemoved.emit({ removed: true });
7783 }
7784}
7785MdbTableRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableRowDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
7786MdbTableRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: MdbTableRowDirective, selector: "[mdbTableRow]", outputs: { rowCreated: "rowCreated", rowRemoved: "rowRemoved" }, ngImport: i0 });
7787i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableRowDirective, decorators: [{
7788 type: Directive,
7789 args: [{
7790 selector: '[mdbTableRow]'
7791 }]
7792 }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { rowCreated: [{
7793 type: Output
7794 }], rowRemoved: [{
7795 type: Output
7796 }] } });
7797
7798class MdbTableService {
7799 constructor() {
7800 this._dataSource = [];
7801 this._dataSourceChanged = new Subject();
7802 }
7803 addRow(newRow) {
7804 this.getDataSource().push(newRow);
7805 }
7806 addRowAfter(index, row) {
7807 this.getDataSource().splice(index, 0, row);
7808 }
7809 removeRow(index) {
7810 this.getDataSource().splice(index, 1);
7811 }
7812 rowRemoved() {
7813 const rowRemoved = new Observable((observer) => {
7814 observer.next(true);
7815 });
7816 return rowRemoved;
7817 }
7818 removeLastRow() {
7819 this.getDataSource().pop();
7820 }
7821 getDataSource() {
7822 return this._dataSource;
7823 }
7824 setDataSource(data) {
7825 this._dataSource = data;
7826 this._dataSourceChanged.next(this.getDataSource());
7827 }
7828 dataSourceChange() {
7829 return this._dataSourceChanged;
7830 }
7831 filterLocalDataBy(searchKey) {
7832 return this.getDataSource().filter((obj) => {
7833 return Object.keys(obj).some((key) => {
7834 if (obj[key]) {
7835 return obj[key]
7836 .toString()
7837 .toLowerCase()
7838 .includes(searchKey);
7839 }
7840 });
7841 });
7842 }
7843 searchLocalDataBy(searchKey) {
7844 if (!searchKey) {
7845 return this.getDataSource();
7846 }
7847 if (searchKey) {
7848 return this.filterLocalDataBy(searchKey.toLowerCase());
7849 }
7850 }
7851 searchDataObservable(searchKey) {
7852 const observable = new Observable((observer) => {
7853 observer.next(this.searchLocalDataBy(searchKey));
7854 });
7855 return observable;
7856 }
7857}
7858MdbTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7859MdbTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableService, providedIn: 'root' });
7860i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTableService, decorators: [{
7861 type: Injectable,
7862 args: [{
7863 providedIn: 'root',
7864 }]
7865 }], ctorParameters: function () { return []; } });
7866
7867class MdbTablePaginationComponent {
7868 constructor(cdRef) {
7869 this.cdRef = cdRef;
7870 this.searchPagination = false;
7871 this.searchDataSource = null;
7872 this.ofKeyword = 'of';
7873 this.dashKeyword = '-';
7874 this.paginationAlign = '';
7875 this.hideDescription = false;
7876 this._destroy$ = new Subject();
7877 this.maxVisibleItems = 10;
7878 this.firstItemIndex = 0;
7879 this.lastItemIndex = this.maxVisibleItems;
7880 this.lastVisibleItemIndex = 5;
7881 this.activePageNumber = 1;
7882 this.allItemsLength = 0;
7883 this.nextShouldBeDisabled = false;
7884 this.previousShouldBeDisabled = true;
7885 this.searchText = '';
7886 this.pagination = new Subject();
7887 this.nextPageClick = new EventEmitter();
7888 this.previousPageClick = new EventEmitter();
7889 this.firstPageClick = new EventEmitter();
7890 this.lastPageClick = new EventEmitter();
7891 }
7892 ngOnInit() {
7893 if (this.tableEl) {
7894 this.allItemsLength = this.tableEl.getDataSource().length;
7895 }
7896 }
7897 ngAfterViewInit() {
7898 if (this.tableEl) {
7899 this.tableEl
7900 .dataSourceChange()
7901 .pipe(takeUntil(this._destroy$))
7902 .subscribe((data) => {
7903 this.allItemsLength = data.length;
7904 this.lastVisibleItemIndex = data.length;
7905 this.calculateFirstItemIndex();
7906 this.calculateLastItemIndex();
7907 this.disableNextButton(data);
7908 if (this.searchDataSource) {
7909 setTimeout(() => {
7910 if (this.searchDataSource.length !== data.length) {
7911 this.activePageNumber = 1;
7912 this.firstItemIndex = 1;
7913 }
7914 }, 0);
7915 }
7916 });
7917 }
7918 this.paginationChange()
7919 .pipe(takeUntil(this._destroy$))
7920 .subscribe((data) => {
7921 this.firstItemIndex = data.first;
7922 this.lastVisibleItemIndex = data.last;
7923 });
7924 }
7925 ngOnChanges(changes) {
7926 const searchDataSource = changes['searchDataSource'];
7927 if (searchDataSource.currentValue.length !== 0) {
7928 this.allItemsLength = searchDataSource.currentValue.length;
7929 }
7930 if (this.lastVisibleItemIndex > this.allItemsLength) {
7931 this.lastVisibleItemIndex = this.allItemsLength;
7932 }
7933 if (searchDataSource.currentValue.length === 0) {
7934 this.firstItemIndex = 0;
7935 this.lastItemIndex = 0;
7936 this.lastVisibleItemIndex = 0;
7937 this.allItemsLength = 0;
7938 }
7939 if (!searchDataSource.isFirstChange() &&
7940 searchDataSource.currentValue.length <= this.maxVisibleItems) {
7941 this.nextShouldBeDisabled = true;
7942 this.lastVisibleItemIndex = searchDataSource.currentValue.length;
7943 }
7944 else {
7945 this.nextShouldBeDisabled = false;
7946 }
7947 }
7948 setMaxVisibleItemsNumberTo(value) {
7949 this.lastItemIndex = value;
7950 this.lastVisibleItemIndex = value;
7951 this.maxVisibleItems = value;
7952 this.cdRef.detectChanges();
7953 }
7954 searchTextObs() {
7955 const observable = new Observable((observer) => {
7956 observer.next(this.searchText);
7957 });
7958 return observable;
7959 }
7960 disableNextButton(data) {
7961 if (data.length <= this.maxVisibleItems) {
7962 this.nextShouldBeDisabled = true;
7963 }
7964 else {
7965 this.nextShouldBeDisabled = false;
7966 }
7967 }
7968 calculateFirstItemIndex() {
7969 this.firstItemIndex = this.activePageNumber * this.maxVisibleItems - this.maxVisibleItems + 1;
7970 this.pagination.next({ first: this.firstItemIndex, last: this.lastItemIndex });
7971 }
7972 calculateLastItemIndex() {
7973 this.lastItemIndex = this.activePageNumber * this.maxVisibleItems;
7974 this.lastVisibleItemIndex = this.lastItemIndex;
7975 if (this.searchDataSource && this.lastItemIndex > this.searchDataSource.length) {
7976 this.lastVisibleItemIndex = this.searchDataSource.length;
7977 }
7978 else if (!this.searchDataSource) {
7979 this.lastVisibleItemIndex = this.lastItemIndex;
7980 }
7981 if (this.lastItemIndex > this.tableEl.getDataSource().length) {
7982 this.lastItemIndex = this.tableEl.getDataSource().length;
7983 this.lastVisibleItemIndex = this.tableEl.getDataSource().length;
7984 }
7985 this.pagination.next({ first: this.firstItemIndex, last: this.lastItemIndex });
7986 }
7987 paginationChange() {
7988 return this.pagination;
7989 }
7990 calculateHowManyPagesShouldBe() {
7991 return Math.ceil(this.tableEl.getDataSource().length / this.maxVisibleItems);
7992 }
7993 previousPage() {
7994 this.activePageNumber--;
7995 this.calculateFirstItemIndex();
7996 this.calculateLastItemIndex();
7997 this.previousPageClick.emit({ first: this.firstItemIndex, last: this.lastItemIndex });
7998 }
7999 nextPage() {
8000 this.activePageNumber++;
8001 this.calculateFirstItemIndex();
8002 this.calculateLastItemIndex();
8003 if (this.lastItemIndex > this.tableEl.getDataSource().length) {
8004 this.lastItemIndex = this.tableEl.getDataSource().length;
8005 }
8006 if (this.lastVisibleItemIndex > this.allItemsLength) {
8007 this.lastVisibleItemIndex = this.allItemsLength;
8008 }
8009 this.nextPageClick.emit({ first: this.firstItemIndex, last: this.lastItemIndex });
8010 }
8011 firstPage() {
8012 this.activePageNumber = 1;
8013 this.calculateFirstItemIndex();
8014 this.calculateLastItemIndex();
8015 this.firstPageClick.emit({ first: this.firstItemIndex, last: this.lastItemIndex });
8016 }
8017 lastPage() {
8018 const lastPage = Math.ceil(this.allItemsLength / this.maxVisibleItems);
8019 this.activePageNumber = lastPage;
8020 this.calculateFirstItemIndex();
8021 this.calculateLastItemIndex();
8022 this.lastPageClick.emit({ first: this.firstItemIndex, last: this.lastItemIndex });
8023 }
8024 nextPageObservable() {
8025 const obs = new Observable((observer) => {
8026 observer.next(this.firstItemIndex);
8027 });
8028 return obs;
8029 }
8030 previousPageObservable() {
8031 const obs = new Observable((observer) => {
8032 observer.next(this.lastVisibleItemIndex);
8033 });
8034 return obs;
8035 }
8036 checkIfNextShouldBeDisabled() {
8037 if (this.searchDataSource && this.lastVisibleItemIndex === this.searchDataSource.length) {
8038 return true;
8039 }
8040 if (this.activePageNumber >= this.calculateHowManyPagesShouldBe()) {
8041 return true;
8042 }
8043 if (this.nextShouldBeDisabled) {
8044 return this.nextShouldBeDisabled;
8045 }
8046 }
8047 checkIfPreviousShouldBeDisabled() {
8048 if (this.activePageNumber === 1) {
8049 return true;
8050 }
8051 }
8052 ngOnDestroy() {
8053 this._destroy$.next();
8054 this._destroy$.complete();
8055 }
8056}
8057MdbTablePaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTablePaginationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8058MdbTablePaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: MdbTablePaginationComponent, selector: "mdb-table-pagination", inputs: { tableEl: "tableEl", searchPagination: "searchPagination", searchDataSource: "searchDataSource", ofKeyword: "ofKeyword", dashKeyword: "dashKeyword", paginationAlign: "paginationAlign", hideDescription: "hideDescription" }, outputs: { nextPageClick: "nextPageClick", previousPageClick: "previousPageClick", firstPageClick: "firstPageClick", lastPageClick: "lastPageClick" }, usesOnChanges: true, ngImport: i0, template: "<!--Pagination -->\n<nav>\n <ul\n class=\"pagination pagination-circle pg-blue d-flex flex-center\"\n [ngClass]=\"{\n 'justify-content-end': paginationAlign == 'end',\n 'justify-content-start': paginationAlign == 'start'\n }\"\n >\n <li *ngIf=\"!hideDescription\">\n {{ firstItemIndex }} {{ dashKeyword }} {{ lastVisibleItemIndex }} {{ ofKeyword }}\n {{ allItemsLength }}\n </li>\n <!--Arrow left-->\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfPreviousShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Previous\" (click)=\"firstPage()\">\n <span aria-hidden=\"true\">\u00AB</span>\n </a>\n </li>\n\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfPreviousShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Previous\" (click)=\"previousPage()\">\n <span aria-hidden=\"true\">&#8249;</span>\n </a>\n </li>\n\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfNextShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Previous\" (click)=\"nextPage()\">\n <span aria-hidden=\"true\">&#8250;</span>\n </a>\n </li>\n\n <!--Arrow right-->\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfNextShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Next\" (click)=\"lastPage()\">\n <span aria-hidden=\"true\">\u00BB</span>\n </a>\n </li>\n </ul>\n</nav>\n<!--/Pagination -->\n", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
8059i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MdbTablePaginationComponent, decorators: [{
8060 type: Component,
8061 args: [{ selector: 'mdb-table-pagination', template: "<!--Pagination -->\n<nav>\n <ul\n class=\"pagination pagination-circle pg-blue d-flex flex-center\"\n [ngClass]=\"{\n 'justify-content-end': paginationAlign == 'end',\n 'justify-content-start': paginationAlign == 'start'\n }\"\n >\n <li *ngIf=\"!hideDescription\">\n {{ firstItemIndex }} {{ dashKeyword }} {{ lastVisibleItemIndex }} {{ ofKeyword }}\n {{ allItemsLength }}\n </li>\n <!--Arrow left-->\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfPreviousShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Previous\" (click)=\"firstPage()\">\n <span aria-hidden=\"true\">\u00AB</span>\n </a>\n </li>\n\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfPreviousShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Previous\" (click)=\"previousPage()\">\n <span aria-hidden=\"true\">&#8249;</span>\n </a>\n </li>\n\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfNextShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Previous\" (click)=\"nextPage()\">\n <span aria-hidden=\"true\">&#8250;</span>\n </a>\n </li>\n\n <!--Arrow right-->\n <li class=\"page-item\" [ngClass]=\"{ disabled: checkIfNextShouldBeDisabled() }\">\n <a class=\"page-link\" mdbWavesEffect aria-label=\"Next\" (click)=\"lastPage()\">\n <span aria-hidden=\"true\">\u00BB</span>\n </a>\n </li>\n </ul>\n</nav>\n<!--/Pagination -->\n" }]
8062 }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tableEl: [{
8063 type: Input
8064 }], searchPagination: [{
8065 type: Input
8066 }], searchDataSource: [{
8067 type: Input
8068 }], ofKeyword: [{
8069 type: Input
8070 }], dashKeyword: [{
8071 type: Input
8072 }], paginationAlign: [{
8073 type: Input
8074 }], hideDescription: [{
8075 type: Input
8076 }], nextPageClick: [{
8077 type: Output
8078 }], previousPageClick: [{
8079 type: Output
8080 }], firstPageClick: [{
8081 type: Output
8082 }], lastPageClick: [{
8083 type: Output
8084 }] } });
8085
8086class TableModule {
8087}
8088TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8089TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TableModule, declarations: [MdbTablePaginationComponent,
8090 MdbTableRowDirective,
8091 MdbTableScrollDirective,
8092 MdbTableSortDirective,
8093 MdbTableDirective], imports: [CommonModule], exports: [MdbTablePaginationComponent,
8094 MdbTableRowDirective,
8095 MdbTableScrollDirective,
8096 MdbTableSortDirective,
8097 MdbTableDirective] });
8098TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TableModule, providers: [MdbTableService], imports: [[CommonModule]] });
8099i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TableModule, decorators: [{
8100 type: NgModule,
8101 args: [{
8102 imports: [CommonModule],
8103 declarations: [
8104 MdbTablePaginationComponent,
8105 MdbTableRowDirective,
8106 MdbTableScrollDirective,
8107 MdbTableSortDirective,
8108 MdbTableDirective,
8109 ],
8110 exports: [
8111 MdbTablePaginationComponent,
8112 MdbTableRowDirective,
8113 MdbTableScrollDirective,
8114 MdbTableSortDirective,
8115 MdbTableDirective,
8116 ],
8117 entryComponents: [MdbTablePaginationComponent],
8118 providers: [MdbTableService],
8119 }]
8120 }] });
8121
8122/** Default values provider for tooltip */
8123class TooltipConfig {
8124 constructor() {
8125 /** tooltip placement, supported positions: 'top', 'bottom', 'left', 'right' */
8126 this.placement = 'top';
8127 /** array of event names which triggers tooltip opening */
8128 this.triggers = 'hover focus';
8129 }
8130}
8131TooltipConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8132TooltipConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipConfig });
8133i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipConfig, decorators: [{
8134 type: Injectable
8135 }] });
8136
8137class TooltipContainerComponent {
8138 constructor(config, elem) {
8139 this.elem = elem;
8140 this.containerClass = '';
8141 this.show = !this.isBs3;
8142 Object.assign(this, config);
8143 }
8144 get tooltipClasses() {
8145 return `tooltip-fadeIn tooltip in tooltip-${this.placement} bs-tooltip-${this.placement} ${this.placement} ${this.containerClass}`;
8146 }
8147 get isBs3() {
8148 return isBs3$1();
8149 }
8150 ngAfterViewInit() {
8151 this.classMap = { in: false, fade: false };
8152 this.classMap[this.placement] = true;
8153 this.classMap['tooltip-' + this.placement] = true;
8154 this.classMap.in = true;
8155 if (this.animation) {
8156 this.classMap.fade = true;
8157 }
8158 if (this.popupClass) {
8159 this.classMap[this.popupClass] = true;
8160 }
8161 }
8162}
8163TooltipContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipContainerComponent, deps: [{ token: TooltipConfig }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8164TooltipContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: TooltipContainerComponent, selector: "mdb-tooltip-container", inputs: { containerClass: "containerClass" }, host: { properties: { "class.show": "this.show", "class": "this.tooltipClasses" } }, viewQueries: [{ propertyName: "tooltipInner", first: true, predicate: ["tooltipInner"], descendants: true, static: true }, { propertyName: "tooltipArrow", first: true, predicate: ["tooltipArrow"], descendants: true, static: true }], ngImport: i0, template: `
8165 <div #tooltipArrow class="tooltip-arrow arrow"></div>
8166 <div #tooltipInner class="tooltip-inner">
8167 <ng-content></ng-content>
8168 </div>
8169 `, isInline: true, styles: ["a .tooltip{position:absolute;z-index:1070;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;font-size:.875rem;word-wrap:break-word;opacity:0}a .tooltip.show{opacity:.9}a .tooltip.tooltip-top,a .tooltip.bs-tether-element-attached-bottom{padding:.8rem 0;margin-top:0}a .tooltip.tooltip-top .tooltip-inner:before,a .tooltip.bs-tether-element-attached-bottom .tooltip-inner:before{bottom:0;left:50%;margin-left:-.8rem;content:\"\";border-width:.8rem .8rem 0}a .tooltip.tooltip-right,a .tooltip.bs-tether-element-attached-left{padding:0 .8rem;margin-left:0}a .tooltip.tooltip-right .tooltip-inner:before,a .tooltip.bs-tether-element-attached-left .tooltip-inner:before{top:50%;left:0;margin-top:-.8rem;content:\"\";border-width:.8rem .8rem .8rem 0}a .tooltip.tooltip-bottom,a .tooltip.bs-tether-element-attached-top{padding:.8rem 0;margin-top:0}a .tooltip.tooltip-bottom .tooltip-inner:before,a .tooltip.bs-tether-element-attached-top .tooltip-inner:before{top:0;left:50%;margin-left:-.8rem;content:\"\";border-width:0 .8rem .8rem}a .tooltip.tooltip-left,a .tooltip.bs-tether-element-attached-right{padding:0 .8rem;margin-left:0}a .tooltip.tooltip-left .tooltip-inner:before,a .tooltip.bs-tether-element-attached-right .tooltip-inner:before{top:50%;right:0;margin-top:-.8rem;content:\"\";border-width:.8rem 0 .8rem .8rem}.tooltip-inner{max-width:200px;padding:.25rem .5rem;text-align:center;padding:.2rem .4rem;box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;border-radius:.25rem}.tooltip-inner:before{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}@keyframes fadeInTooltip{0%{opacity:0}to{opacity:1}}.tooltip-fadeIn{animation-name:fadeInTooltip;animation-delay:.2s;animation-duration:.2s;animation-fill-mode:both}.single-tooltip{padding:.75rem 0 0}.single-tooltip a{padding:0!important}a[tooltip]{margin-left:0!important;padding:0 .5rem}.tooltip-arrow.left{position:relative;margin-right:-.6rem;transform:rotate(90deg)}.tooltip-arrow.right{position:relative;margin-left:-.6rem;transform:rotate(-90deg)}.tooltip-arrow.top{position:relative;transform:rotate(-180deg)}.tooltip-top{padding:.4rem 0}.tooltip-top .arrow{bottom:0}.tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.tooltip-right{padding:0 .4rem}.tooltip-right .arrow{left:0}.tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.tooltip-bottom{padding:.4rem 0}.tooltip-bottom .arrow{top:0}.tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.tooltip-left{padding:0 .4rem}.tooltip-left .arrow{right:0}.tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
8170i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipContainerComponent, decorators: [{
8171 type: Component,
8172 args: [{ selector: 'mdb-tooltip-container', changeDetection: ChangeDetectionStrategy.OnPush, template: `
8173 <div #tooltipArrow class="tooltip-arrow arrow"></div>
8174 <div #tooltipInner class="tooltip-inner">
8175 <ng-content></ng-content>
8176 </div>
8177 `, encapsulation: ViewEncapsulation.None, styles: ["a .tooltip{position:absolute;z-index:1070;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;font-size:.875rem;word-wrap:break-word;opacity:0}a .tooltip.show{opacity:.9}a .tooltip.tooltip-top,a .tooltip.bs-tether-element-attached-bottom{padding:.8rem 0;margin-top:0}a .tooltip.tooltip-top .tooltip-inner:before,a .tooltip.bs-tether-element-attached-bottom .tooltip-inner:before{bottom:0;left:50%;margin-left:-.8rem;content:\"\";border-width:.8rem .8rem 0}a .tooltip.tooltip-right,a .tooltip.bs-tether-element-attached-left{padding:0 .8rem;margin-left:0}a .tooltip.tooltip-right .tooltip-inner:before,a .tooltip.bs-tether-element-attached-left .tooltip-inner:before{top:50%;left:0;margin-top:-.8rem;content:\"\";border-width:.8rem .8rem .8rem 0}a .tooltip.tooltip-bottom,a .tooltip.bs-tether-element-attached-top{padding:.8rem 0;margin-top:0}a .tooltip.tooltip-bottom .tooltip-inner:before,a .tooltip.bs-tether-element-attached-top .tooltip-inner:before{top:0;left:50%;margin-left:-.8rem;content:\"\";border-width:0 .8rem .8rem}a .tooltip.tooltip-left,a .tooltip.bs-tether-element-attached-right{padding:0 .8rem;margin-left:0}a .tooltip.tooltip-left .tooltip-inner:before,a .tooltip.bs-tether-element-attached-right .tooltip-inner:before{top:50%;right:0;margin-top:-.8rem;content:\"\";border-width:.8rem 0 .8rem .8rem}.tooltip-inner{max-width:200px;padding:.25rem .5rem;text-align:center;padding:.2rem .4rem;box-shadow:0 5px 11px #0000002e,0 4px 15px #00000026;border-radius:.25rem}.tooltip-inner:before{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}@keyframes fadeInTooltip{0%{opacity:0}to{opacity:1}}.tooltip-fadeIn{animation-name:fadeInTooltip;animation-delay:.2s;animation-duration:.2s;animation-fill-mode:both}.single-tooltip{padding:.75rem 0 0}.single-tooltip a{padding:0!important}a[tooltip]{margin-left:0!important;padding:0 .5rem}.tooltip-arrow.left{position:relative;margin-right:-.6rem;transform:rotate(90deg)}.tooltip-arrow.right{position:relative;margin-left:-.6rem;transform:rotate(-90deg)}.tooltip-arrow.top{position:relative;transform:rotate(-180deg)}.tooltip-top{padding:.4rem 0}.tooltip-top .arrow{bottom:0}.tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.tooltip-right{padding:0 .4rem}.tooltip-right .arrow{left:0}.tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.tooltip-bottom{padding:.4rem 0}.tooltip-bottom .arrow{top:0}.tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.tooltip-left{padding:0 .4rem}.tooltip-left .arrow{right:0}.tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}\n"] }]
8178 }], ctorParameters: function () { return [{ type: TooltipConfig }, { type: i0.ElementRef }]; }, propDecorators: { containerClass: [{
8179 type: Input
8180 }], tooltipInner: [{
8181 type: ViewChild,
8182 args: ['tooltipInner', { static: true }]
8183 }], tooltipArrow: [{
8184 type: ViewChild,
8185 args: ['tooltipArrow', { static: true }]
8186 }], show: [{
8187 type: HostBinding,
8188 args: ['class.show']
8189 }], tooltipClasses: [{
8190 type: HostBinding,
8191 args: ['class']
8192 }] } });
8193
8194class TooltipDirective {
8195 constructor(_renderer, _elementRef, _positionService, _viewContainerRef, cis, config, platformId) {
8196 this._elementRef = _elementRef;
8197 this._positionService = _positionService;
8198 this.platformId = platformId;
8199 /** Fired when tooltip content changes */
8200 this.tooltipChange = new EventEmitter();
8201 this._tooltipDisabled = false;
8202 this._dynamicPosition = true;
8203 this._delay = 0;
8204 this._fadeDuration = 150;
8205 this._destroy$ = new Subject();
8206 this.isBrowser = false;
8207 this.isBrowser = isPlatformBrowser(this.platformId);
8208 this._tooltip = cis
8209 .createLoader(this._elementRef, _viewContainerRef, _renderer)
8210 .provide({ provide: TooltipConfig, useValue: config });
8211 Object.assign(this, config);
8212 this.onShown = this._tooltip.onShown;
8213 this.shown = this._tooltip.onShown;
8214 this.onHidden = this._tooltip.onHidden;
8215 this.hidden = this._tooltip.onHidden;
8216 }
8217 /**
8218 * Returns whether or not the tooltip is currently being shown
8219 */
8220 get isOpen() {
8221 return this._tooltip.isShown;
8222 }
8223 set isOpen(value) {
8224 const isOpen = coerceBooleanProperty(value);
8225 if (isOpen) {
8226 this.show();
8227 }
8228 else {
8229 this.hide();
8230 }
8231 }
8232 /**
8233 * Allows to disable tooltip
8234 */
8235 get tooltipDisabled() {
8236 return this._tooltipDisabled;
8237 }
8238 set tooltipDisabled(value) {
8239 this._tooltipDisabled = coerceBooleanProperty(value);
8240 }
8241 get dynamicPosition() {
8242 return this._dynamicPosition;
8243 }
8244 set dynamicPosition(value) {
8245 this._dynamicPosition = coerceBooleanProperty(value);
8246 }
8247 get delay() {
8248 return this._delay;
8249 }
8250 set delay(value) {
8251 this._delay = coerceNumberProperty(value);
8252 }
8253 get fadeDuration() {
8254 return this._fadeDuration;
8255 }
8256 set fadeDuration(value) {
8257 this._fadeDuration = coerceNumberProperty(value);
8258 }
8259 ngOnInit() {
8260 this._tooltip.listen({
8261 triggers: this.triggers,
8262 show: () => this.show(),
8263 });
8264 this.tooltipChange.pipe(takeUntil(this._destroy$)).subscribe((value) => {
8265 if (!value) {
8266 this._tooltip.hide();
8267 }
8268 });
8269 }
8270 ngOnChanges(changes) {
8271 if (changes['mdbTooltip'] && !changes['mdbTooltip'].isFirstChange()) {
8272 this.tooltipChange.emit(this.mdbTooltip);
8273 }
8274 }
8275 /**
8276 * Toggles an element’s tooltip. This is considered a “manual” triggering of
8277 * the tooltip.
8278 */
8279 toggle() {
8280 if (this.isOpen) {
8281 return this.hide();
8282 }
8283 this.show();
8284 }
8285 /**
8286 * Opens an element’s tooltip. This is considered a “manual” triggering of
8287 * the tooltip.
8288 */
8289 show() {
8290 if (this.isOpen || this.tooltipDisabled || !this.mdbTooltip) {
8291 return;
8292 }
8293 if (this._delayTimeoutId) {
8294 clearTimeout(this._delayTimeoutId);
8295 this._delayTimeoutId = undefined;
8296 }
8297 this._positionService.setOptions({
8298 modifiers: {
8299 flip: {
8300 enabled: this.dynamicPosition,
8301 },
8302 preventOverflow: {
8303 enabled: this.dynamicPosition,
8304 },
8305 },
8306 });
8307 const showTooltip = () => {
8308 this._tooltip
8309 .attach(TooltipContainerComponent)
8310 .to(this.container)
8311 .position({ attachment: this.placement })
8312 .show({
8313 content: this.mdbTooltip,
8314 placement: this.placement,
8315 });
8316 };
8317 this.showTooltip(showTooltip);
8318 }
8319 showTooltip(fn) {
8320 if (this.delay) {
8321 this._delayTimeoutId = setTimeout(() => {
8322 fn();
8323 }, this.delay);
8324 }
8325 else {
8326 fn();
8327 }
8328 }
8329 /**
8330 * Closes an element’s tooltip. This is considered a “manual” triggering of
8331 * the tooltip.
8332 */
8333 hide() {
8334 if (this._delayTimeoutId) {
8335 clearTimeout(this._delayTimeoutId);
8336 this._delayTimeoutId = undefined;
8337 }
8338 if (!this._tooltip.isShown) {
8339 return;
8340 }
8341 this._tooltip.instance.classMap.in = false;
8342 setTimeout(() => {
8343 this._tooltip.hide();
8344 }, this.fadeDuration);
8345 }
8346 dispose() {
8347 this._tooltip.dispose();
8348 }
8349 ngOnDestroy() {
8350 this._tooltip.dispose();
8351 this._destroy$.next();
8352 this._destroy$.complete();
8353 }
8354}
8355TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PositioningService }, { token: i0.ViewContainerRef }, { token: ComponentLoaderFactory }, { token: TooltipConfig }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
8356TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: TooltipDirective, selector: "[mdbTooltip]", inputs: { mdbTooltip: "mdbTooltip", placement: "placement", triggers: "triggers", container: "container", isOpen: "isOpen", tooltipDisabled: "tooltipDisabled", dynamicPosition: "dynamicPosition", delay: "delay", customHeight: "customHeight", fadeDuration: "fadeDuration" }, outputs: { tooltipChange: "tooltipChange", onShown: "onShown", shown: "shown", onHidden: "onHidden", hidden: "hidden" }, exportAs: ["mdb-tooltip"], usesOnChanges: true, ngImport: i0 });
8357__decorate([
8358 OnChange()
8359], TooltipDirective.prototype, "mdbTooltip", void 0);
8360i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipDirective, decorators: [{
8361 type: Directive,
8362 args: [{
8363 selector: '[mdbTooltip]',
8364 exportAs: 'mdb-tooltip',
8365 }]
8366 }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: PositioningService }, { type: i0.ViewContainerRef }, { type: ComponentLoaderFactory }, { type: TooltipConfig }, { type: undefined, decorators: [{
8367 type: Inject,
8368 args: [PLATFORM_ID]
8369 }] }]; }, propDecorators: { mdbTooltip: [{
8370 type: Input
8371 }], tooltipChange: [{
8372 type: Output
8373 }], placement: [{
8374 type: Input
8375 }], triggers: [{
8376 type: Input
8377 }], container: [{
8378 type: Input
8379 }], isOpen: [{
8380 type: Input
8381 }], tooltipDisabled: [{
8382 type: Input
8383 }], dynamicPosition: [{
8384 type: Input
8385 }], onShown: [{
8386 type: Output
8387 }], shown: [{
8388 type: Output
8389 }], onHidden: [{
8390 type: Output
8391 }], hidden: [{
8392 type: Output
8393 }], delay: [{
8394 type: Input
8395 }], customHeight: [{
8396 type: Input
8397 }], fadeDuration: [{
8398 type: Input
8399 }] } });
8400
8401class TooltipModule {
8402 static forRoot() {
8403 return {
8404 ngModule: TooltipModule,
8405 providers: [TooltipConfig, ComponentLoaderFactory, PositioningService],
8406 };
8407 }
8408}
8409TooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8410TooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipModule, declarations: [TooltipDirective, TooltipContainerComponent], imports: [CommonModule], exports: [TooltipDirective] });
8411TooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipModule, imports: [[CommonModule]] });
8412i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipModule, decorators: [{
8413 type: NgModule,
8414 args: [{
8415 imports: [CommonModule],
8416 declarations: [TooltipDirective, TooltipContainerComponent],
8417 exports: [TooltipDirective],
8418 entryComponents: [TooltipContainerComponent],
8419 }]
8420 }] });
8421
8422class WavesDirective {
8423 constructor(el) {
8424 this.el = el;
8425 }
8426 click(event) {
8427 if (!this.el.nativeElement.classList.contains('disabled')) {
8428 const button = this.el.nativeElement;
8429 if (!button.classList.contains('waves-effect')) {
8430 button.className += ' waves-effect';
8431 }
8432 const xPos = event.clientX - button.getBoundingClientRect().left;
8433 const yPos = event.clientY - button.getBoundingClientRect().top;
8434 const tmp = document.createElement('div');
8435 tmp.className += 'waves-ripple waves-rippling';
8436 const ripple = button.appendChild(tmp);
8437 const top = yPos + 'px';
8438 const left = xPos + 'px';
8439 tmp.style.top = top;
8440 tmp.style.left = left;
8441 const scale = 'scale(' + (button.clientWidth / 100) * 3 + ') translate(0,0)';
8442 tmp.style.webkitTransform = scale;
8443 tmp.style.transform = scale;
8444 tmp.style.opacity = '1';
8445 const duration = 750;
8446 tmp.style.webkitTransitionDuration = duration + 'ms';
8447 tmp.style.transitionDuration = duration + 'ms';
8448 this.removeRipple(button, ripple);
8449 }
8450 }
8451 removeRipple(button, ripple) {
8452 ripple.classList.remove('waves-rippling');
8453 setTimeout(() => {
8454 ripple.style.opacity = '0';
8455 setTimeout(() => {
8456 button.removeChild(ripple);
8457 }, 750);
8458 }, 200);
8459 }
8460}
8461WavesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: WavesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
8462WavesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: WavesDirective, selector: "[mdbWavesEffect]", host: { listeners: { "click": "click($event)" } }, ngImport: i0 });
8463i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: WavesDirective, decorators: [{
8464 type: Directive,
8465 args: [{
8466 selector: '[mdbWavesEffect]',
8467 }]
8468 }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { click: [{
8469 type: HostListener,
8470 args: ['click', ['$event']]
8471 }] } });
8472
8473class WavesModule {
8474 static forRoot() {
8475 return { ngModule: WavesModule, providers: [] };
8476 }
8477}
8478WavesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: WavesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8479WavesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: WavesModule, declarations: [WavesDirective], exports: [WavesDirective] });
8480WavesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: WavesModule });
8481i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: WavesModule, decorators: [{
8482 type: NgModule,
8483 args: [{
8484 declarations: [WavesDirective],
8485 exports: [WavesDirective],
8486 }]
8487 }] });
8488
8489var Direction;
8490(function (Direction) {
8491 Direction["Up"] = "Up";
8492 Direction["Down"] = "Down";
8493})(Direction || (Direction = {}));
8494class StickyHeaderDirective {
8495 constructor(_renderer, _el) {
8496 this._renderer = _renderer;
8497 this._el = _el;
8498 this._animationDuration = 200;
8499 this.transitionEnd = new EventEmitter();
8500 this._destroy$ = new Subject();
8501 }
8502 get animationDuration() {
8503 return this._animationDuration;
8504 }
8505 set animationDuration(value) {
8506 this._animationDuration = coerceNumberProperty(value);
8507 }
8508 ngAfterViewInit() {
8509 const scroll$ = fromEvent(win$1, 'scroll').pipe(throttleTime(10), map(() => win$1.pageYOffset), pairwise(), map(([y1, y2]) => (y2 < y1 ? Direction.Up : Direction.Down)), distinctUntilChanged(), share());
8510 this.scrollUp$ = scroll$.pipe(filter((direction) => direction === Direction.Up));
8511 this.scrollDown$ = scroll$.pipe(filter((direction) => direction === Direction.Down));
8512 this._renderer.setStyle(this._el.nativeElement, 'position', 'fixed');
8513 this._renderer.setStyle(this._el.nativeElement, 'top', '0');
8514 this._renderer.setStyle(this._el.nativeElement, 'width', '100%');
8515 this._renderer.setStyle(this._el.nativeElement, 'z-index', '1030');
8516 setTimeout(() => {
8517 this.scrollUp$.pipe(skip(0), takeUntil(this._destroy$)).subscribe(() => {
8518 this._renderer.setStyle(this._el.nativeElement, 'transition', `all ${this.animationDuration}ms ease-in`);
8519 this._renderer.setStyle(this._el.nativeElement, 'transform', 'translateY(0%)');
8520 this.transitionEnd.emit({ state: 'Visible' });
8521 });
8522 this.scrollDown$.pipe(skip(0), takeUntil(this._destroy$)).subscribe(() => {
8523 this._renderer.setStyle(this._el.nativeElement, 'transition', `all ${this.animationDuration}ms ease-in`);
8524 this._renderer.setStyle(this._el.nativeElement, 'transform', 'translateY(-100%)');
8525 this.transitionEnd.emit({ state: 'Hidden' });
8526 });
8527 }, 0);
8528 }
8529 ngOnDestroy() {
8530 this._destroy$.next();
8531 this._destroy$.complete();
8532 }
8533}
8534StickyHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: StickyHeaderDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
8535StickyHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: StickyHeaderDirective, selector: "[mdbStickyHeader]", inputs: { animationDuration: "animationDuration" }, outputs: { transitionEnd: "transitionEnd" }, exportAs: ["mdbStickyHeader"], ngImport: i0 });
8536i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: StickyHeaderDirective, decorators: [{
8537 type: Directive,
8538 args: [{
8539 selector: '[mdbStickyHeader]',
8540 exportAs: 'mdbStickyHeader',
8541 }]
8542 }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { animationDuration: [{
8543 type: Input
8544 }], transitionEnd: [{
8545 type: Output
8546 }] } });
8547
8548class StickyHeaderModule {
8549}
8550StickyHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: StickyHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8551StickyHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: StickyHeaderModule, declarations: [StickyHeaderDirective], imports: [CommonModule], exports: [StickyHeaderDirective] });
8552StickyHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: StickyHeaderModule, imports: [[CommonModule]] });
8553i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: StickyHeaderModule, decorators: [{
8554 type: NgModule,
8555 args: [{
8556 declarations: [StickyHeaderDirective],
8557 exports: [StickyHeaderDirective],
8558 imports: [CommonModule],
8559 }]
8560 }] });
8561
8562// free
8563const MODULES = [
8564 ButtonsModule,
8565 CardsModule,
8566 WavesModule,
8567 InputsModule,
8568 NavbarModule,
8569 DropdownModule,
8570 CarouselModule,
8571 ChartsModule,
8572 CollapseModule,
8573 ModalModule,
8574 TooltipModule,
8575 PopoverModule,
8576 IconsModule,
8577 CheckboxModule,
8578 TableModule,
8579 BadgeModule,
8580 BreadcrumbModule,
8581 InputUtilitiesModule,
8582 StickyHeaderModule,
8583];
8584class MDBRootModule {
8585}
8586MDBRootModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBRootModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8587MDBRootModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBRootModule, imports: [ButtonsModule, WavesModule, InputsModule, NavbarModule, DropdownModule, CarouselModule, ChartsModule, CollapseModule, ModalModule, TooltipModule, PopoverModule, IconsModule, CardsModule, CheckboxModule,
8588 TableModule,
8589 BadgeModule,
8590 BreadcrumbModule,
8591 InputUtilitiesModule,
8592 StickyHeaderModule], exports: [ButtonsModule,
8593 CardsModule,
8594 WavesModule,
8595 InputsModule,
8596 NavbarModule,
8597 DropdownModule,
8598 CarouselModule,
8599 ChartsModule,
8600 CollapseModule,
8601 ModalModule,
8602 TooltipModule,
8603 PopoverModule,
8604 IconsModule,
8605 CheckboxModule,
8606 TableModule,
8607 BadgeModule,
8608 BreadcrumbModule,
8609 InputUtilitiesModule,
8610 StickyHeaderModule] });
8611MDBRootModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBRootModule, imports: [[
8612 ButtonsModule,
8613 WavesModule.forRoot(),
8614 InputsModule.forRoot(),
8615 NavbarModule,
8616 DropdownModule.forRoot(),
8617 CarouselModule.forRoot(),
8618 ChartsModule,
8619 CollapseModule.forRoot(),
8620 ModalModule.forRoot(),
8621 TooltipModule.forRoot(),
8622 PopoverModule.forRoot(),
8623 IconsModule,
8624 CardsModule.forRoot(),
8625 CheckboxModule,
8626 TableModule,
8627 BadgeModule,
8628 BreadcrumbModule,
8629 InputUtilitiesModule,
8630 StickyHeaderModule,
8631 ], ButtonsModule,
8632 CardsModule,
8633 WavesModule,
8634 InputsModule,
8635 NavbarModule,
8636 DropdownModule,
8637 CarouselModule,
8638 ChartsModule,
8639 CollapseModule,
8640 ModalModule,
8641 TooltipModule,
8642 PopoverModule,
8643 IconsModule,
8644 CheckboxModule,
8645 TableModule,
8646 BadgeModule,
8647 BreadcrumbModule,
8648 InputUtilitiesModule,
8649 StickyHeaderModule] });
8650i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBRootModule, decorators: [{
8651 type: NgModule,
8652 args: [{
8653 imports: [
8654 ButtonsModule,
8655 WavesModule.forRoot(),
8656 InputsModule.forRoot(),
8657 NavbarModule,
8658 DropdownModule.forRoot(),
8659 CarouselModule.forRoot(),
8660 ChartsModule,
8661 CollapseModule.forRoot(),
8662 ModalModule.forRoot(),
8663 TooltipModule.forRoot(),
8664 PopoverModule.forRoot(),
8665 IconsModule,
8666 CardsModule.forRoot(),
8667 CheckboxModule,
8668 TableModule,
8669 BadgeModule,
8670 BreadcrumbModule,
8671 InputUtilitiesModule,
8672 StickyHeaderModule,
8673 ],
8674 exports: MODULES,
8675 schemas: [NO_ERRORS_SCHEMA],
8676 }]
8677 }] });
8678class MDBBootstrapModule {
8679 static forRoot() {
8680 return { ngModule: MDBRootModule };
8681 }
8682}
8683MDBBootstrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBBootstrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8684MDBBootstrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBBootstrapModule, exports: [ButtonsModule,
8685 CardsModule,
8686 WavesModule,
8687 InputsModule,
8688 NavbarModule,
8689 DropdownModule,
8690 CarouselModule,
8691 ChartsModule,
8692 CollapseModule,
8693 ModalModule,
8694 TooltipModule,
8695 PopoverModule,
8696 IconsModule,
8697 CheckboxModule,
8698 TableModule,
8699 BadgeModule,
8700 BreadcrumbModule,
8701 InputUtilitiesModule,
8702 StickyHeaderModule] });
8703MDBBootstrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBBootstrapModule, imports: [ButtonsModule,
8704 CardsModule,
8705 WavesModule,
8706 InputsModule,
8707 NavbarModule,
8708 DropdownModule,
8709 CarouselModule,
8710 ChartsModule,
8711 CollapseModule,
8712 ModalModule,
8713 TooltipModule,
8714 PopoverModule,
8715 IconsModule,
8716 CheckboxModule,
8717 TableModule,
8718 BadgeModule,
8719 BreadcrumbModule,
8720 InputUtilitiesModule,
8721 StickyHeaderModule] });
8722i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MDBBootstrapModule, decorators: [{
8723 type: NgModule,
8724 args: [{ exports: MODULES }]
8725 }] });
8726
8727/*
8728 * Public API Surface of ng-uikit-pro-standard-compile
8729 */
8730
8731/**
8732 * Generated bundle index. Do not edit.
8733 */
8734
8735export { BadgeModule, BaseChartDirective, BreadcrumbModule, BsDropdownConfig, BsDropdownContainerComponent, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownState, BsDropdownToggleDirective, ButtonCheckboxDirective, ButtonRadioDirective, ButtonsModule, CHECKBOX_VALUE_ACCESSOR, CardsModule, CarouselComponent, CarouselConfig, CarouselModule, ChartsModule, CheckboxComponent, CheckboxModule, CollapseComponent, CollapseModule, DropdownModule, EqualValidatorDirective, FabDirective, FadDirective, FalDirective, FarDirective, FasDirective, FixedButtonCaptionDirective, IconsModule, InputUtilitiesModule, InputsModule, LinksComponent, LogoComponent, MDBBadgeComponent, MDBBootstrapModule, MDBModalRef, MDBModalService, MDBRootModule, MdbBreadcrumbComponent, MdbBreadcrumbItemComponent, MdbBtnDirective, MdbCardBodyComponent, MdbCardComponent, MdbCardFooterComponent, MdbCardHeaderComponent, MdbCardImageComponent, MdbCardTextComponent, MdbCardTitleComponent, MdbCheckboxChange, MdbErrorDirective, MdbIconComponent, MdbInput, MdbInputDirective, MdbSuccessDirective, MdbTableDirective, MdbTablePaginationComponent, MdbTableRowDirective, MdbTableScrollDirective, MdbTableService, MdbTableSortDirective, MdbValidateDirective, ModalBackdropComponent, ModalBackdropOptions, ModalContainerComponent, ModalDirective, ModalModule, ModalOptions, NavbarComponent, NavbarModule, NavbarService, NavlinksComponent, PopoverConfig, PopoverContainerComponent, PopoverDirective, PopoverModule, SlideComponent, StickyHeaderDirective, StickyHeaderModule, TableModule, TooltipConfig, TooltipContainerComponent, TooltipDirective, TooltipModule, WavesDirective, WavesModule };
8736//# sourceMappingURL=angular-bootstrap-md.mjs.map