design-angular-kit 1.0.0-6 → 1.0.0-8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/abstracts/abstract-form-component.mjs +6 -5
- package/esm2020/lib/abstracts/abstract.component.mjs +13 -6
- package/esm2020/lib/components/core/accordion/accordion.component.mjs +19 -8
- package/esm2020/lib/components/core/alert/alert.component.mjs +46 -6
- package/esm2020/lib/components/core/button/button.directive.mjs +14 -12
- package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +3 -3
- package/esm2020/lib/components/core/collapse/collapse.component.mjs +23 -18
- package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +74 -4
- package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +8 -11
- package/esm2020/lib/components/core/link/link.component.mjs +9 -8
- package/esm2020/lib/components/core/modal/modal.component.mjs +5 -5
- package/esm2020/lib/components/core/popover/popover.directive.mjs +5 -2
- package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +37 -11
- package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +4 -4
- package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +4 -1
- package/esm2020/lib/components/form/input/input.component.mjs +2 -2
- package/esm2020/lib/components/form/password-input/password-input.component.mjs +1 -1
- package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +1 -1
- package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +13 -10
- package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +41 -6
- package/esm2020/lib/components/navigation/header/header.component.mjs +9 -7
- package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +1 -1
- package/esm2020/lib/utils/file-utils.mjs +9 -1
- package/esm2020/lib/utils/regex.mjs +2 -2
- package/fesm2015/design-angular-kit.mjs +417 -194
- package/fesm2015/design-angular-kit.mjs.map +1 -1
- package/fesm2020/design-angular-kit.mjs +396 -190
- package/fesm2020/design-angular-kit.mjs.map +1 -1
- package/lib/abstracts/abstract-form-component.d.ts +4 -3
- package/lib/abstracts/abstract.component.d.ts +10 -4
- package/lib/components/core/accordion/accordion.component.d.ts +4 -8
- package/lib/components/core/alert/alert.component.d.ts +24 -2
- package/lib/components/core/button/button.directive.d.ts +5 -7
- package/lib/components/core/carousel/carousel/carousel.component.d.ts +1 -1
- package/lib/components/core/collapse/collapse.component.d.ts +8 -7
- package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +41 -3
- package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +0 -5
- package/lib/components/core/link/link.component.d.ts +2 -5
- package/lib/components/core/modal/modal.component.d.ts +2 -2
- package/lib/components/core/popover/popover.directive.d.ts +3 -2
- package/lib/components/core/tab/tab-container/tab-container.component.d.ts +6 -4
- package/lib/components/core/tooltip/tooltip.directive.d.ts +3 -2
- package/lib/components/form/password-input/password-input.component.d.ts +2 -1
- package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +2 -1
- package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +3 -3
- package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +22 -3
- package/lib/components/navigation/header/header.component.d.ts +6 -4
- package/lib/utils/file-utils.d.ts +5 -0
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, Self, Optional, Directive, HostBinding,
|
|
2
|
+
import { EventEmitter, Component, Input, Output, Self, Optional, ChangeDetectionStrategy, ViewChild, Directive, HostBinding, Host, ContentChildren, HostListener, TemplateRef, Injectable, ViewChildren, Pipe, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@ngx-translate/core';
|
|
4
4
|
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
5
5
|
import { HttpClientModule, HttpClient } from '@angular/common/http';
|
|
@@ -10,27 +10,34 @@ import * as i2 from '@angular/forms';
|
|
|
10
10
|
import { FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
11
11
|
import * as i2$1 from '@angular/router';
|
|
12
12
|
import { RouterLink } from '@angular/router';
|
|
13
|
-
import { CarouselBI,
|
|
14
|
-
import { Subject, filter,
|
|
13
|
+
import { Collapse, Alert, CarouselBI, Dropdown, Modal, Notification, Popover, Tab, Tooltip, InputPassword, ProgressDonut, BackToTop } from 'bootstrap-italia';
|
|
14
|
+
import { Subject, filter, startWith, tap, switchMap, of, Observable, debounceTime, distinctUntilChanged, map, take, forkJoin } from 'rxjs';
|
|
15
15
|
import * as i1$2 from '@angular/platform-browser';
|
|
16
16
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
17
17
|
|
|
18
18
|
class AbstractComponent {
|
|
19
|
-
constructor(_renderer, _elementRef) {
|
|
19
|
+
constructor(_renderer, _elementRef, _changeDetectorRef) {
|
|
20
20
|
this._renderer = _renderer;
|
|
21
21
|
this._elementRef = _elementRef;
|
|
22
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
23
|
+
this.valueChanges = new EventEmitter();
|
|
22
24
|
}
|
|
23
25
|
ngAfterViewInit() {
|
|
24
26
|
this._renderer.removeAttribute(this._elementRef.nativeElement, 'id');
|
|
25
27
|
}
|
|
28
|
+
ngOnChanges(changes) {
|
|
29
|
+
this.valueChanges.next(); // The inputs were changed
|
|
30
|
+
}
|
|
26
31
|
}
|
|
27
|
-
AbstractComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
AbstractComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractComponent, selector: "ng-component", inputs: { id: "id" }, ngImport: i0, template: '', isInline: true });
|
|
32
|
+
AbstractComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
AbstractComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractComponent, selector: "ng-component", inputs: { id: "id" }, outputs: { valueChanges: "valueChanges" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
29
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, decorators: [{
|
|
30
35
|
type: Component,
|
|
31
36
|
args: [{ template: '' }]
|
|
32
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { id: [{
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
|
|
33
38
|
type: Input
|
|
39
|
+
}], valueChanges: [{
|
|
40
|
+
type: Output
|
|
34
41
|
}] } });
|
|
35
42
|
|
|
36
43
|
/**
|
|
@@ -49,12 +56,13 @@ function isFalseBooleanInput(booleanInput) {
|
|
|
49
56
|
}
|
|
50
57
|
|
|
51
58
|
class AbstractFormComponent extends AbstractComponent {
|
|
52
|
-
constructor(_ngControl, _translateService, _renderer, _elementRef) {
|
|
53
|
-
super(_renderer, _elementRef);
|
|
59
|
+
constructor(_ngControl, _translateService, _renderer, _elementRef, _changeDetectorRef) {
|
|
60
|
+
super(_renderer, _elementRef, _changeDetectorRef);
|
|
54
61
|
this._ngControl = _ngControl;
|
|
55
62
|
this._translateService = _translateService;
|
|
56
63
|
this._renderer = _renderer;
|
|
57
64
|
this._elementRef = _elementRef;
|
|
65
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
58
66
|
/**
|
|
59
67
|
* Validation color display mode (validation triggered if field is touched or not pristine)
|
|
60
68
|
* - <b>true</b>: Always show the validation color
|
|
@@ -191,7 +199,7 @@ class AbstractFormComponent extends AbstractComponent {
|
|
|
191
199
|
return this.control.getError(errorCode, path);
|
|
192
200
|
}
|
|
193
201
|
}
|
|
194
|
-
AbstractFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractFormComponent, deps: [{ token: i2.NgControl, optional: true, self: true }, { token: i1.TranslateService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
202
|
+
AbstractFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractFormComponent, deps: [{ token: i2.NgControl, optional: true, self: true }, { token: i1.TranslateService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
195
203
|
AbstractFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractFormComponent, selector: "ng-component", inputs: { label: "label", validationMode: "validationMode" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
196
204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractFormComponent, decorators: [{
|
|
197
205
|
type: Component,
|
|
@@ -200,27 +208,134 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
200
208
|
type: Self
|
|
201
209
|
}, {
|
|
202
210
|
type: Optional
|
|
203
|
-
}] }, { type: i1.TranslateService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { label: [{
|
|
211
|
+
}] }, { type: i1.TranslateService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
|
|
204
212
|
type: Input
|
|
205
213
|
}], validationMode: [{
|
|
206
214
|
type: Input
|
|
207
215
|
}] } });
|
|
208
216
|
|
|
209
|
-
class
|
|
217
|
+
class CollapseComponent extends AbstractComponent {
|
|
218
|
+
constructor() {
|
|
219
|
+
super(...arguments);
|
|
220
|
+
/**
|
|
221
|
+
* Custom class
|
|
222
|
+
*/
|
|
223
|
+
this.class = '';
|
|
224
|
+
/**
|
|
225
|
+
* This event fires immediately when the show method is called.
|
|
226
|
+
*/
|
|
227
|
+
this.onShow = new EventEmitter();
|
|
228
|
+
/**
|
|
229
|
+
* This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).
|
|
230
|
+
*/
|
|
231
|
+
this.onShown = new EventEmitter();
|
|
232
|
+
/**
|
|
233
|
+
* This event fires immediately when the hide method is called.
|
|
234
|
+
*/
|
|
235
|
+
this.onHide = new EventEmitter();
|
|
236
|
+
/**
|
|
237
|
+
* This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).
|
|
238
|
+
*/
|
|
239
|
+
this.onHidden = new EventEmitter();
|
|
240
|
+
}
|
|
241
|
+
get isMulti() {
|
|
242
|
+
return isTrueBooleanInput(this.multi);
|
|
243
|
+
}
|
|
244
|
+
get isOpenedOnStart() {
|
|
245
|
+
return isTrueBooleanInput(this.opened);
|
|
246
|
+
}
|
|
247
|
+
ngAfterViewInit() {
|
|
248
|
+
super.ngAfterViewInit();
|
|
249
|
+
this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
|
|
250
|
+
if (this.collapseDiv) {
|
|
251
|
+
const element = this.collapseDiv.nativeElement;
|
|
252
|
+
this.collapse = Collapse.getOrCreateInstance(element, {
|
|
253
|
+
toggle: this.isOpenedOnStart
|
|
254
|
+
});
|
|
255
|
+
element.addEventListener('show.bs.collapse', event => this.onShow.emit(event));
|
|
256
|
+
element.addEventListener('shown.bs.collapse', event => this.onShown.emit(event));
|
|
257
|
+
element.addEventListener('hide.bs.collapse', event => this.onHide.emit(event));
|
|
258
|
+
element.addEventListener('hidden.bs.collapse', event => this.onHidden.emit(event));
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Shows a resealable item
|
|
263
|
+
* NOTE: Returns to the caller before the collapsable element has actually been shown (onShown event).
|
|
264
|
+
*/
|
|
265
|
+
show() {
|
|
266
|
+
this.collapse?.show();
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Hides a resealable item
|
|
270
|
+
* NOTE: Returns to the caller before the collapsable element has actually been hidden (onHidden Event)
|
|
271
|
+
*/
|
|
272
|
+
hide() {
|
|
273
|
+
this.collapse?.hide();
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Toggle a collapsible item to show or hide it.
|
|
277
|
+
* NOTE: Returns to the caller before the collapsable element has actually been shown or hidden (onShown and onHidden events)
|
|
278
|
+
*/
|
|
279
|
+
toggle() {
|
|
280
|
+
this.collapse?.toggle();
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Eliminates the possibility of an item being resealable
|
|
284
|
+
*/
|
|
285
|
+
dispose() {
|
|
286
|
+
this.collapse?.dispose();
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
CollapseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CollapseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
290
|
+
CollapseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CollapseComponent, selector: "it-collapse[id]", inputs: { multi: "multi", opened: "opened", class: "class" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden" }, viewQueries: [{ propertyName: "collapseDiv", first: true, predicate: ["collapse"], descendants: true }], exportAs: ["itCollapse"], usesInheritance: true, ngImport: i0, template: "<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CollapseComponent, decorators: [{
|
|
292
|
+
type: Component,
|
|
293
|
+
args: [{ selector: 'it-collapse[id]', exportAs: 'itCollapse', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n" }]
|
|
294
|
+
}], propDecorators: { multi: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], opened: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], class: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], onShow: [{
|
|
301
|
+
type: Output
|
|
302
|
+
}], onShown: [{
|
|
303
|
+
type: Output
|
|
304
|
+
}], onHide: [{
|
|
305
|
+
type: Output
|
|
306
|
+
}], onHidden: [{
|
|
307
|
+
type: Output
|
|
308
|
+
}], collapseDiv: [{
|
|
309
|
+
type: ViewChild,
|
|
310
|
+
args: ['collapse']
|
|
311
|
+
}] } });
|
|
312
|
+
|
|
313
|
+
class AccordionComponent extends CollapseComponent {
|
|
314
|
+
constructor() {
|
|
315
|
+
super(...arguments);
|
|
316
|
+
this.isCollapsed = true;
|
|
317
|
+
}
|
|
210
318
|
ngAfterViewInit() {
|
|
211
319
|
super.ngAfterViewInit();
|
|
212
320
|
this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');
|
|
321
|
+
this.isCollapsed = !this.isOpenedOnStart;
|
|
322
|
+
this.onHide.subscribe(() => {
|
|
323
|
+
this.isCollapsed = true;
|
|
324
|
+
this._changeDetectorRef.detectChanges();
|
|
325
|
+
});
|
|
326
|
+
this.onShow.subscribe(() => {
|
|
327
|
+
this.isCollapsed = false;
|
|
328
|
+
this._changeDetectorRef.detectChanges();
|
|
329
|
+
});
|
|
213
330
|
}
|
|
214
331
|
}
|
|
215
332
|
AccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
216
|
-
AccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AccordionComponent, selector: "it-accordion[id][title]", inputs: { title: "title",
|
|
333
|
+
AccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AccordionComponent, selector: "it-accordion[id][title]", inputs: { title: "title" }, exportAs: ["itAccordion"], usesInheritance: true, ngImport: i0, template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"isOpenedOnStart ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
217
334
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
218
335
|
type: Component,
|
|
219
|
-
args: [{ selector: 'it-accordion[id][title]', template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button
|
|
336
|
+
args: [{ selector: 'it-accordion[id][title]', exportAs: 'itAccordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"isOpenedOnStart ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n" }]
|
|
220
337
|
}], propDecorators: { title: [{
|
|
221
338
|
type: Input
|
|
222
|
-
}], opened: [{
|
|
223
|
-
type: Input
|
|
224
339
|
}] } });
|
|
225
340
|
|
|
226
341
|
class IconComponent {
|
|
@@ -275,27 +390,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
275
390
|
type: Input
|
|
276
391
|
}] } });
|
|
277
392
|
|
|
278
|
-
class AlertComponent {
|
|
393
|
+
class AlertComponent extends AbstractComponent {
|
|
279
394
|
constructor() {
|
|
395
|
+
super(...arguments);
|
|
280
396
|
/**
|
|
281
397
|
* The alert color
|
|
282
398
|
* @default info
|
|
283
399
|
*/
|
|
284
400
|
this.color = 'info';
|
|
401
|
+
/**
|
|
402
|
+
* This event fires immediately when the instance's close method is called.
|
|
403
|
+
*/
|
|
404
|
+
this.onClose = new EventEmitter();
|
|
405
|
+
/**
|
|
406
|
+
* This event fires when the alert has been closed (it will wait for CSS transitions to complete).
|
|
407
|
+
*/
|
|
408
|
+
this.onClosed = new EventEmitter();
|
|
285
409
|
}
|
|
286
410
|
get isDismissible() {
|
|
287
411
|
return isTrueBooleanInput(this.dismissible);
|
|
288
412
|
}
|
|
413
|
+
ngAfterViewInit() {
|
|
414
|
+
super.ngAfterViewInit();
|
|
415
|
+
if (this.alertElement) {
|
|
416
|
+
const element = this.alertElement.nativeElement;
|
|
417
|
+
this.alert = Alert.getOrCreateInstance(element);
|
|
418
|
+
element.addEventListener('close.bs.alert', event => this.onClose.emit(event));
|
|
419
|
+
element.addEventListener('closed.bs.alert', event => this.onClosed.emit(event));
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Close an alert by removing it from the DOM.
|
|
424
|
+
* If the `.fade` and `.show` classes are present in the element, the alert will be closed with a disappearing effect.
|
|
425
|
+
*/
|
|
426
|
+
close() {
|
|
427
|
+
this.alert?.close();
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* The alert is removed
|
|
431
|
+
*/
|
|
432
|
+
dispose() {
|
|
433
|
+
this.alert?.dispose();
|
|
434
|
+
}
|
|
289
435
|
}
|
|
290
|
-
AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertComponent, deps:
|
|
291
|
-
AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AlertComponent, selector: "it-alert", inputs: { color: "color", dismissible: "dismissible" }, ngImport: i0, template: "<div class=\"alert alert-{{color}}\"\n [class.alert-dismissible]=\"isDismissible\"\n [class.fade]=\"isDismissible\"\n [class.show]=\"isDismissible\"\n role=\"alert\">\n <h4 class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n </h4>\n\n <ng-content></ng-content>\n\n <button *ngIf=\"isDismissible\"\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"alert\"\n [attr.aria-label]=\"'it.core.close-alert'|translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n</div>\n", styles: [".alert-heading:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
436
|
+
AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
437
|
+
AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AlertComponent, selector: "it-alert", inputs: { color: "color", dismissible: "dismissible" }, outputs: { onClose: "onClose", onClosed: "onClosed" }, viewQueries: [{ propertyName: "alertElement", first: true, predicate: ["alertElement"], descendants: true }], exportAs: ["itAlert"], usesInheritance: true, ngImport: i0, template: "<div class=\"alert alert-{{color}}\" #alertElement\n [class.alert-dismissible]=\"isDismissible\"\n [class.fade]=\"isDismissible\"\n [class.show]=\"isDismissible\"\n role=\"alert\">\n <h4 class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n </h4>\n\n <ng-content></ng-content>\n\n <button *ngIf=\"isDismissible\"\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"alert\"\n [attr.aria-label]=\"'it.core.close-alert'|translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n</div>\n", styles: [".alert-heading:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
292
438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertComponent, decorators: [{
|
|
293
439
|
type: Component,
|
|
294
|
-
args: [{ selector: 'it-alert', template: "<div class=\"alert alert-{{color}}\"\n [class.alert-dismissible]=\"isDismissible\"\n [class.fade]=\"isDismissible\"\n [class.show]=\"isDismissible\"\n role=\"alert\">\n <h4 class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n </h4>\n\n <ng-content></ng-content>\n\n <button *ngIf=\"isDismissible\"\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"alert\"\n [attr.aria-label]=\"'it.core.close-alert'|translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n</div>\n", styles: [".alert-heading:empty{display:none}\n"] }]
|
|
440
|
+
args: [{ selector: 'it-alert', exportAs: 'itAlert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"alert alert-{{color}}\" #alertElement\n [class.alert-dismissible]=\"isDismissible\"\n [class.fade]=\"isDismissible\"\n [class.show]=\"isDismissible\"\n role=\"alert\">\n <h4 class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n </h4>\n\n <ng-content></ng-content>\n\n <button *ngIf=\"isDismissible\"\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"alert\"\n [attr.aria-label]=\"'it.core.close-alert'|translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n</div>\n", styles: [".alert-heading:empty{display:none}\n"] }]
|
|
295
441
|
}], propDecorators: { color: [{
|
|
296
442
|
type: Input
|
|
297
443
|
}], dismissible: [{
|
|
298
444
|
type: Input
|
|
445
|
+
}], onClose: [{
|
|
446
|
+
type: Output
|
|
447
|
+
}], onClosed: [{
|
|
448
|
+
type: Output
|
|
449
|
+
}], alertElement: [{
|
|
450
|
+
type: ViewChild,
|
|
451
|
+
args: ['alertElement']
|
|
299
452
|
}] } });
|
|
300
453
|
|
|
301
454
|
class BadgeDirective {
|
|
@@ -358,8 +511,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
358
511
|
type: Input
|
|
359
512
|
}] } });
|
|
360
513
|
|
|
514
|
+
class ProgressButtonComponent {
|
|
515
|
+
get isProgress() {
|
|
516
|
+
return typeof this.progress === 'number' || isTrueBooleanInput(this.progress);
|
|
517
|
+
}
|
|
518
|
+
get progressValue() {
|
|
519
|
+
return typeof this.progress === 'number' ? this.progress : 0;
|
|
520
|
+
}
|
|
521
|
+
get isIndeterminate() {
|
|
522
|
+
return typeof this.progress !== 'number' && isTrueBooleanInput(this.progress);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
ProgressButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
526
|
+
ProgressButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressButtonComponent, selector: "button[itButton][progress]", inputs: { progress: "progress", progressColor: "progressColor" }, ngImport: i0, template: "<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
527
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressButtonComponent, decorators: [{
|
|
528
|
+
type: Component,
|
|
529
|
+
args: [{ selector: 'button[itButton][progress]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n" }]
|
|
530
|
+
}], propDecorators: { progress: [{
|
|
531
|
+
type: Input
|
|
532
|
+
}], progressColor: [{
|
|
533
|
+
type: Input
|
|
534
|
+
}] } });
|
|
535
|
+
|
|
361
536
|
class ButtonDirective {
|
|
362
|
-
constructor() {
|
|
537
|
+
constructor(progressButtonComponent) {
|
|
538
|
+
this.progressButtonComponent = progressButtonComponent;
|
|
363
539
|
this.isFocus = false;
|
|
364
540
|
}
|
|
365
541
|
onFocus() {
|
|
@@ -385,24 +561,28 @@ class ButtonDirective {
|
|
|
385
561
|
if (this.isFocus) {
|
|
386
562
|
cssClass += ' focus--mouse';
|
|
387
563
|
}
|
|
388
|
-
if (this.icons?.length && !this.
|
|
564
|
+
if (this.icons?.length && !this.progressButtonComponent) {
|
|
389
565
|
cssClass += ' btn-icon';
|
|
390
566
|
}
|
|
391
|
-
if (this.
|
|
567
|
+
if (!!this.progressButtonComponent) {
|
|
392
568
|
cssClass += ' btn-progress';
|
|
393
569
|
}
|
|
394
570
|
return cssClass;
|
|
395
571
|
}
|
|
396
572
|
}
|
|
397
|
-
ButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
398
|
-
ButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ButtonDirective, selector: "[itButton]", inputs: { color: ["itButton", "color"], size: "size", block: "block", disabled: "disabled" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "disabled": "this.disabled", "class": "this.hostClasses" } }, queries: [{ propertyName: "icons", predicate: IconComponent }
|
|
573
|
+
ButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ButtonDirective, deps: [{ token: ProgressButtonComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
574
|
+
ButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ButtonDirective, selector: "[itButton]", inputs: { color: ["itButton", "color"], size: "size", block: "block", disabled: "disabled" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "disabled": "this.disabled", "class": "this.hostClasses" } }, queries: [{ propertyName: "icons", predicate: IconComponent }], exportAs: ["itButton"], ngImport: i0 });
|
|
399
575
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ButtonDirective, decorators: [{
|
|
400
576
|
type: Directive,
|
|
401
577
|
args: [{
|
|
402
578
|
selector: '[itButton]',
|
|
403
579
|
exportAs: 'itButton'
|
|
404
580
|
}]
|
|
405
|
-
}],
|
|
581
|
+
}], ctorParameters: function () { return [{ type: ProgressButtonComponent, decorators: [{
|
|
582
|
+
type: Optional
|
|
583
|
+
}, {
|
|
584
|
+
type: Host
|
|
585
|
+
}] }]; }, propDecorators: { color: [{
|
|
406
586
|
type: Input,
|
|
407
587
|
args: ['itButton']
|
|
408
588
|
}], size: [{
|
|
@@ -417,9 +597,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
417
597
|
}], icons: [{
|
|
418
598
|
type: ContentChildren,
|
|
419
599
|
args: [IconComponent]
|
|
420
|
-
}], progressBar: [{
|
|
421
|
-
type: ContentChildren,
|
|
422
|
-
args: [ProgressBarComponent]
|
|
423
600
|
}], onFocus: [{
|
|
424
601
|
type: HostListener,
|
|
425
602
|
args: ['focus']
|
|
@@ -613,10 +790,10 @@ class CarouselComponent {
|
|
|
613
790
|
}
|
|
614
791
|
}
|
|
615
792
|
CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
616
|
-
CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CarouselComponent, selector: "it-carousel", inputs: { title: "title", type: "type", trackClass: "trackClass", fullCarousel: "fullCarousel", bigImg: "bigImg", lined: "lined" }, queries: [{ propertyName: "items", predicate: CarouselItemComponent }], viewQueries: [{ propertyName: "carouselDiv", first: true, predicate: ["carousel"], descendants: true }], exportAs: ["itCarousel"], ngImport: i0, template: "<div class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n data-bs-carousel-splide
|
|
793
|
+
CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CarouselComponent, selector: "it-carousel", inputs: { title: "title", type: "type", trackClass: "trackClass", fullCarousel: "fullCarousel", bigImg: "bigImg", lined: "lined" }, queries: [{ propertyName: "items", predicate: CarouselItemComponent }], viewQueries: [{ propertyName: "carouselDiv", first: true, predicate: ["carousel"], descendants: true }], exportAs: ["itCarousel"], ngImport: i0, template: "<div #carousel class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n data-bs-carousel-splide>\n\n <div class=\"it-header-block\" *ngIf=\"title\">\n <div class=\"it-header-block-title\">\n <h2>{{title}}</h2>\n </div>\n </div>\n\n <div class=\"splide__track {{trackClass}}\">\n <ul class=\"splide__list\">\n <li *ngFor=\"let item of items\" class=\"splide__slide\" [class.lined_slide]=\"isLined\">\n <div class=\"it-single-slide-wrapper\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </div>\n </li>\n </ul>\n </div>\n</div>\n", styles: [".splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important;transform-style:preserve-3d}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{outline:none;position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;outline:none;position:relative}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide--draggable>.splide__slider>.splide__track,.splide--draggable>.splide__track{-webkit-user-select:none;user-select:none}.splide--fade>.splide__slider>.splide__track>.splide__list,.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--fade>.splide__track>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide--ttb.is-active>.splide__slider>.splide__track>.splide__list,.splide--ttb.is-active>.splide__track>.splide__list{display:block}.splide__arrow{align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:flex;height:2em;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover{opacity:.9}.splide__arrow:focus{outline:none}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4)}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus{outline:none}.splide__progress__bar{background:#ccc;height:3px}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--nav>.splide__track>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--nav>.splide__track>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide:focus,.splide--nav>.splide__track>.splide__list>.splide__slide:focus{outline:none}.splide--rtl>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev{left:auto;right:1em}.splide--rtl>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:scaleX(1)}.splide--rtl>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next{left:1em;right:auto}.splide--rtl>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next svg{transform:scaleX(-1)}.splide--ttb>.splide__arrows .splide__arrow,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow,.splide--ttb>.splide__track>.splide__arrows .splide__arrow{left:50%;transform:translate(-50%)}.splide--ttb>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev{top:1em}.splide--ttb>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:rotate(-90deg)}.splide--ttb>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next{bottom:1em;top:auto}.splide--ttb>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next svg{transform:rotate(90deg)}.splide--ttb>.splide__pagination,.splide--ttb>.splide__slider>.splide__pagination{display:flex;flex-direction:column;inset:0 .5em 0 auto;padding:1em 0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
617
794
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselComponent, decorators: [{
|
|
618
795
|
type: Component,
|
|
619
|
-
args: [{ selector: 'it-carousel', exportAs: 'itCarousel', template: "<div class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n data-bs-carousel-splide
|
|
796
|
+
args: [{ selector: 'it-carousel', exportAs: 'itCarousel', template: "<div #carousel class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n data-bs-carousel-splide>\n\n <div class=\"it-header-block\" *ngIf=\"title\">\n <div class=\"it-header-block-title\">\n <h2>{{title}}</h2>\n </div>\n </div>\n\n <div class=\"splide__track {{trackClass}}\">\n <ul class=\"splide__list\">\n <li *ngFor=\"let item of items\" class=\"splide__slide\" [class.lined_slide]=\"isLined\">\n <div class=\"it-single-slide-wrapper\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </div>\n </li>\n </ul>\n </div>\n</div>\n", styles: [".splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important;transform-style:preserve-3d}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{outline:none;position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;outline:none;position:relative}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide--draggable>.splide__slider>.splide__track,.splide--draggable>.splide__track{-webkit-user-select:none;user-select:none}.splide--fade>.splide__slider>.splide__track>.splide__list,.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--fade>.splide__track>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide--ttb.is-active>.splide__slider>.splide__track>.splide__list,.splide--ttb.is-active>.splide__track>.splide__list{display:block}.splide__arrow{align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:flex;height:2em;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover{opacity:.9}.splide__arrow:focus{outline:none}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4)}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus{outline:none}.splide__progress__bar{background:#ccc;height:3px}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--nav>.splide__track>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--nav>.splide__track>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide:focus,.splide--nav>.splide__track>.splide__list>.splide__slide:focus{outline:none}.splide--rtl>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev{left:auto;right:1em}.splide--rtl>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:scaleX(1)}.splide--rtl>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next{left:1em;right:auto}.splide--rtl>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next svg{transform:scaleX(-1)}.splide--ttb>.splide__arrows .splide__arrow,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow,.splide--ttb>.splide__track>.splide__arrows .splide__arrow{left:50%;transform:translate(-50%)}.splide--ttb>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev{top:1em}.splide--ttb>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:rotate(-90deg)}.splide--ttb>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next{bottom:1em;top:auto}.splide--ttb>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next svg{transform:rotate(90deg)}.splide--ttb>.splide__pagination,.splide--ttb>.splide__slider>.splide__pagination{display:flex;flex-direction:column;inset:0 .5em 0 auto;padding:1em 0}\n"] }]
|
|
620
797
|
}], propDecorators: { title: [{
|
|
621
798
|
type: Input
|
|
622
799
|
}], type: [{
|
|
@@ -637,101 +814,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
637
814
|
args: ['carousel']
|
|
638
815
|
}] } });
|
|
639
816
|
|
|
640
|
-
class
|
|
641
|
-
constructor(
|
|
642
|
-
super(
|
|
643
|
-
this._renderer = _renderer;
|
|
644
|
-
this._elementRef = _elementRef;
|
|
645
|
-
/**
|
|
646
|
-
* Custom class
|
|
647
|
-
*/
|
|
648
|
-
this.class = '';
|
|
649
|
-
/**
|
|
650
|
-
* This event fires immediately when the show method is called.
|
|
651
|
-
*/
|
|
652
|
-
this.onShow = new EventEmitter();
|
|
653
|
-
/**
|
|
654
|
-
* This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).
|
|
655
|
-
*/
|
|
656
|
-
this.onShown = new EventEmitter();
|
|
657
|
-
/**
|
|
658
|
-
* This event fires immediately when the hide method is called.
|
|
659
|
-
*/
|
|
660
|
-
this.onHide = new EventEmitter();
|
|
661
|
-
/**
|
|
662
|
-
* This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).
|
|
663
|
-
*/
|
|
664
|
-
this.onHidden = new EventEmitter();
|
|
665
|
-
this.element = this._elementRef.nativeElement;
|
|
666
|
-
}
|
|
667
|
-
get isMulti() {
|
|
668
|
-
return isTrueBooleanInput(this.multi);
|
|
669
|
-
}
|
|
670
|
-
ngAfterViewInit() {
|
|
671
|
-
super.ngAfterViewInit();
|
|
672
|
-
this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
|
|
673
|
-
this.collapse = Collapse.getOrCreateInstance(this.collapseDiv.nativeElement, {
|
|
674
|
-
toggle: false
|
|
675
|
-
});
|
|
676
|
-
this.element.addEventListener('show.bs.collapse', event => this.onShow.emit(event));
|
|
677
|
-
this.element.addEventListener('shown.bs.collapse', event => this.onShown.emit(event));
|
|
678
|
-
this.element.addEventListener('hide.bs.collapse', event => this.onHide.emit(event));
|
|
679
|
-
this.element.addEventListener('hidden.bs.collapse', event => this.onHidden.emit(event));
|
|
680
|
-
}
|
|
681
|
-
/**
|
|
682
|
-
* Shows a resealable item
|
|
683
|
-
* NOTE: Returns to the caller before the collapsable element has actually been shown (onShown event).
|
|
684
|
-
*/
|
|
685
|
-
show() {
|
|
686
|
-
this.collapse?.show();
|
|
687
|
-
}
|
|
688
|
-
/**
|
|
689
|
-
* Hides a resealable item
|
|
690
|
-
* NOTE: Returns to the caller before the collapsable element has actually been hidden (onHidden Event)
|
|
691
|
-
*/
|
|
692
|
-
hide() {
|
|
693
|
-
this.collapse?.hide();
|
|
694
|
-
}
|
|
695
|
-
/**
|
|
696
|
-
* Toggle a collapsible item to show or hide it.
|
|
697
|
-
* NOTE: Returns to the caller before the collapsable element has actually been shown or hidden (onShown and onHidden events)
|
|
698
|
-
*/
|
|
699
|
-
toggle() {
|
|
700
|
-
this.collapse?.toggle();
|
|
701
|
-
}
|
|
702
|
-
/**
|
|
703
|
-
* Eliminates the possibility of an item being resealable
|
|
704
|
-
*/
|
|
705
|
-
dispose() {
|
|
706
|
-
this.collapse?.dispose();
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
CollapseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CollapseComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
710
|
-
CollapseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CollapseComponent, selector: "it-collapse[id]", inputs: { multi: "multi", class: "class" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden" }, viewQueries: [{ propertyName: "collapseDiv", first: true, predicate: ["collapse"], descendants: true }], exportAs: ["itCollapse"], usesInheritance: true, ngImport: i0, template: "<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n", styles: [""] });
|
|
711
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CollapseComponent, decorators: [{
|
|
712
|
-
type: Component,
|
|
713
|
-
args: [{ selector: 'it-collapse[id]', exportAs: 'itCollapse', template: "<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n" }]
|
|
714
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { multi: [{
|
|
715
|
-
type: Input
|
|
716
|
-
}], class: [{
|
|
717
|
-
type: Input
|
|
718
|
-
}], onShow: [{
|
|
719
|
-
type: Output
|
|
720
|
-
}], onShown: [{
|
|
721
|
-
type: Output
|
|
722
|
-
}], onHide: [{
|
|
723
|
-
type: Output
|
|
724
|
-
}], onHidden: [{
|
|
725
|
-
type: Output
|
|
726
|
-
}], collapseDiv: [{
|
|
727
|
-
type: ViewChild,
|
|
728
|
-
args: ['collapse']
|
|
729
|
-
}] } });
|
|
730
|
-
|
|
731
|
-
class LinkComponent {
|
|
732
|
-
constructor(_renderer, _elementRef) {
|
|
733
|
-
this._renderer = _renderer;
|
|
734
|
-
this._elementRef = _elementRef;
|
|
817
|
+
class LinkComponent extends AbstractComponent {
|
|
818
|
+
constructor() {
|
|
819
|
+
super(...arguments);
|
|
735
820
|
/**
|
|
736
821
|
* Custom class
|
|
737
822
|
*/
|
|
@@ -744,15 +829,16 @@ class LinkComponent {
|
|
|
744
829
|
return isTrueBooleanInput(this.disabled);
|
|
745
830
|
}
|
|
746
831
|
ngAfterViewInit() {
|
|
832
|
+
super.ngAfterViewInit();
|
|
747
833
|
this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
|
|
748
834
|
}
|
|
749
835
|
}
|
|
750
|
-
LinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LinkComponent, deps:
|
|
751
|
-
LinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LinkComponent, selector: "it-link", inputs: { href: "href", externalLink: "externalLink", disabled: "disabled", class: "class" }, ngImport: i0, template: "<a *ngIf=\"!isExternalLink; else externalLink\" [class]=\"class\" [routerLink]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n</a>\n<ng-template #externalLink>\n <a [class]=\"class\" [attr.href]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #linkContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
836
|
+
LinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LinkComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
837
|
+
LinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LinkComponent, selector: "it-link", inputs: { href: "href", externalLink: "externalLink", disabled: "disabled", class: "class" }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"!isExternalLink; else externalLink\" [class]=\"class\" [routerLink]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n</a>\n<ng-template #externalLink>\n <a [class]=\"class\" [attr.href]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #linkContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
752
838
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LinkComponent, decorators: [{
|
|
753
839
|
type: Component,
|
|
754
840
|
args: [{ selector: 'it-link', template: "<a *ngIf=\"!isExternalLink; else externalLink\" [class]=\"class\" [routerLink]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n</a>\n<ng-template #externalLink>\n <a [class]=\"class\" [attr.href]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #linkContent>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
755
|
-
}],
|
|
841
|
+
}], propDecorators: { href: [{
|
|
756
842
|
type: Input
|
|
757
843
|
}], externalLink: [{
|
|
758
844
|
type: Input
|
|
@@ -763,11 +849,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
763
849
|
}] } });
|
|
764
850
|
|
|
765
851
|
class DropdownItemComponent extends LinkComponent {
|
|
766
|
-
constructor(
|
|
767
|
-
super(
|
|
768
|
-
this._renderer = _renderer;
|
|
769
|
-
this._elementRef = _elementRef;
|
|
770
|
-
this._changeDetectorRef = _changeDetectorRef;
|
|
852
|
+
constructor() {
|
|
853
|
+
super(...arguments);
|
|
771
854
|
/**
|
|
772
855
|
* The icon position
|
|
773
856
|
* @default right
|
|
@@ -808,12 +891,12 @@ class DropdownItemComponent extends LinkComponent {
|
|
|
808
891
|
}
|
|
809
892
|
}
|
|
810
893
|
}
|
|
811
|
-
DropdownItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownItemComponent, deps:
|
|
812
|
-
DropdownItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownItemComponent, selector: "it-dropdown-item", inputs: { divider: "divider", active: "active", large: "large", iconName: "iconName", iconPosition: "iconPosition" }, usesInheritance: true, ngImport: i0, template: "<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <it-icon *ngIf=\"iconName && iconPosition === 'left'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span><ng-content></ng-content></span>\n\n <it-icon *ngIf=\"iconName && iconPosition === 'right'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
894
|
+
DropdownItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
895
|
+
DropdownItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownItemComponent, selector: "it-dropdown-item", inputs: { divider: "divider", active: "active", large: "large", iconName: "iconName", iconPosition: "iconPosition" }, usesInheritance: true, ngImport: i0, template: "<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <it-icon *ngIf=\"iconName && iconPosition === 'left'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span><ng-content></ng-content></span>\n\n <it-icon *ngIf=\"iconName && iconPosition === 'right'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
813
896
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownItemComponent, decorators: [{
|
|
814
897
|
type: Component,
|
|
815
|
-
args: [{ selector: 'it-dropdown-item', template: "<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <it-icon *ngIf=\"iconName && iconPosition === 'left'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span><ng-content></ng-content></span>\n\n <it-icon *ngIf=\"iconName && iconPosition === 'right'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"] }]
|
|
816
|
-
}],
|
|
898
|
+
args: [{ selector: 'it-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <it-icon *ngIf=\"iconName && iconPosition === 'left'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span><ng-content></ng-content></span>\n\n <it-icon *ngIf=\"iconName && iconPosition === 'right'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"] }]
|
|
899
|
+
}], propDecorators: { divider: [{
|
|
817
900
|
type: Input
|
|
818
901
|
}], active: [{
|
|
819
902
|
type: Input
|
|
@@ -826,6 +909,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
826
909
|
}] } });
|
|
827
910
|
|
|
828
911
|
class DropdownComponent extends AbstractComponent {
|
|
912
|
+
constructor() {
|
|
913
|
+
super(...arguments);
|
|
914
|
+
/**
|
|
915
|
+
* Fires immediately when the show instance method is called.
|
|
916
|
+
*/
|
|
917
|
+
this.onShow = new EventEmitter();
|
|
918
|
+
/**
|
|
919
|
+
* Fired when the dropdown has been made visible to the user and CSS transitions have completed.
|
|
920
|
+
*/
|
|
921
|
+
this.onShown = new EventEmitter();
|
|
922
|
+
/**
|
|
923
|
+
* Fires immediately when the hide instance method has been called.
|
|
924
|
+
*/
|
|
925
|
+
this.onHide = new EventEmitter();
|
|
926
|
+
/**
|
|
927
|
+
* Fired when the dropdown has finished being hidden from the user and CSS transitions have completed.
|
|
928
|
+
*/
|
|
929
|
+
this.onHidden = new EventEmitter();
|
|
930
|
+
}
|
|
829
931
|
get buttonClass() {
|
|
830
932
|
let btnClass = 'btn dropdown-toggle';
|
|
831
933
|
if (this.color) {
|
|
@@ -846,10 +948,19 @@ class DropdownComponent extends AbstractComponent {
|
|
|
846
948
|
if (changes['dark'] && !changes['dark'].firstChange) {
|
|
847
949
|
this.setDarkItems();
|
|
848
950
|
}
|
|
951
|
+
super.ngOnChanges(changes);
|
|
849
952
|
}
|
|
850
953
|
ngAfterViewInit() {
|
|
851
954
|
super.ngAfterViewInit();
|
|
852
955
|
this.setDarkItems();
|
|
956
|
+
if (this.dropdownButton) {
|
|
957
|
+
const element = this.dropdownButton.nativeElement;
|
|
958
|
+
this.dropdown = Dropdown.getOrCreateInstance(element);
|
|
959
|
+
element.addEventListener('show.bs.dropdown', event => this.onShow.emit(event));
|
|
960
|
+
element.addEventListener('shown.bs.dropdown', event => this.onShown.emit(event));
|
|
961
|
+
element.addEventListener('hide.bs.dropdown', event => this.onHide.emit(event));
|
|
962
|
+
element.addEventListener('hidden.bs.dropdown', event => this.onHidden.emit(event));
|
|
963
|
+
}
|
|
853
964
|
}
|
|
854
965
|
/**
|
|
855
966
|
* Set child items dark mode
|
|
@@ -860,12 +971,42 @@ class DropdownComponent extends AbstractComponent {
|
|
|
860
971
|
item.setDark(this.isDark);
|
|
861
972
|
});
|
|
862
973
|
}
|
|
974
|
+
/**
|
|
975
|
+
* Toggles the dropdown menu of a given navbar or tabbed navigation.
|
|
976
|
+
*/
|
|
977
|
+
toggle() {
|
|
978
|
+
this.dropdown?.toggle();
|
|
979
|
+
}
|
|
980
|
+
/**
|
|
981
|
+
* Shows the dropdown menu of a given navbar or tabbed navigation.
|
|
982
|
+
*/
|
|
983
|
+
show() {
|
|
984
|
+
this.dropdown?.show();
|
|
985
|
+
}
|
|
986
|
+
/**
|
|
987
|
+
* Hides the dropdown menu of a given navbar or tabbed navigation.
|
|
988
|
+
*/
|
|
989
|
+
hide() {
|
|
990
|
+
this.dropdown?.hide();
|
|
991
|
+
}
|
|
992
|
+
/**
|
|
993
|
+
* Updates the position of an element's dropdown.
|
|
994
|
+
*/
|
|
995
|
+
update() {
|
|
996
|
+
this.dropdown?.update();
|
|
997
|
+
}
|
|
998
|
+
/**
|
|
999
|
+
* Destroys an element's dropdown. (Removes stored data on the DOM element)
|
|
1000
|
+
*/
|
|
1001
|
+
dispose() {
|
|
1002
|
+
this.dropdown?.dispose();
|
|
1003
|
+
}
|
|
863
1004
|
}
|
|
864
1005
|
DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
865
|
-
DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownComponent, selector: "it-dropdown[id]", inputs: { color: "color", direction: "direction", fullWidth: "fullWidth", dark: "dark" }, queries: [{ propertyName: "items", predicate: DropdownItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown {{direction}}\">\n <button [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-content select=\"[button]\"></ng-content>\n <it-icon class=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <div class=\"dropdown-menu\" [class.full-width]=\"isFullWidth\" [class.dark]=\"isDark\" [attr.aria-labelledby]=\"id\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\">\n <ng-content select=\"[listHeading]\"></ng-content>\n </div>\n <ul class=\"link-list\">\n <ng-content select=\"[list]\"></ng-content>\n </ul>\n </div>\n </div>\n</div>\n", styles: [".link-list-heading:empty{display:none}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }] });
|
|
1006
|
+
DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownComponent, selector: "it-dropdown[id]", inputs: { color: "color", direction: "direction", fullWidth: "fullWidth", dark: "dark" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden" }, queries: [{ propertyName: "items", predicate: DropdownItemComponent }], viewQueries: [{ propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true }], exportAs: ["itDropdown"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown {{direction}}\">\n <button #dropdownButton [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-content select=\"[button]\"></ng-content>\n <it-icon class=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <div class=\"dropdown-menu\" [class.full-width]=\"isFullWidth\" [class.dark]=\"isDark\" [attr.aria-labelledby]=\"id\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\">\n <ng-content select=\"[listHeading]\"></ng-content>\n </div>\n <ul class=\"link-list\">\n <ng-content select=\"[list]\"></ng-content>\n </ul>\n </div>\n </div>\n</div>\n", styles: [".link-list-heading:empty{display:none}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
866
1007
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
867
1008
|
type: Component,
|
|
868
|
-
args: [{ selector: 'it-dropdown[id]', template: "<div class=\"dropdown {{direction}}\">\n <button [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-content select=\"[button]\"></ng-content>\n <it-icon class=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <div class=\"dropdown-menu\" [class.full-width]=\"isFullWidth\" [class.dark]=\"isDark\" [attr.aria-labelledby]=\"id\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\">\n <ng-content select=\"[listHeading]\"></ng-content>\n </div>\n <ul class=\"link-list\">\n <ng-content select=\"[list]\"></ng-content>\n </ul>\n </div>\n </div>\n</div>\n", styles: [".link-list-heading:empty{display:none}\n"] }]
|
|
1009
|
+
args: [{ selector: 'it-dropdown[id]', exportAs: 'itDropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dropdown {{direction}}\">\n <button #dropdownButton [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-content select=\"[button]\"></ng-content>\n <it-icon class=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <div class=\"dropdown-menu\" [class.full-width]=\"isFullWidth\" [class.dark]=\"isDark\" [attr.aria-labelledby]=\"id\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\">\n <ng-content select=\"[listHeading]\"></ng-content>\n </div>\n <ul class=\"link-list\">\n <ng-content select=\"[list]\"></ng-content>\n </ul>\n </div>\n </div>\n</div>\n", styles: [".link-list-heading:empty{display:none}\n"] }]
|
|
869
1010
|
}], propDecorators: { color: [{
|
|
870
1011
|
type: Input
|
|
871
1012
|
}], direction: [{
|
|
@@ -877,6 +1018,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
877
1018
|
}], items: [{
|
|
878
1019
|
type: ContentChildren,
|
|
879
1020
|
args: [DropdownItemComponent]
|
|
1021
|
+
}], onShow: [{
|
|
1022
|
+
type: Output
|
|
1023
|
+
}], onShown: [{
|
|
1024
|
+
type: Output
|
|
1025
|
+
}], onHide: [{
|
|
1026
|
+
type: Output
|
|
1027
|
+
}], onHidden: [{
|
|
1028
|
+
type: Output
|
|
1029
|
+
}], dropdownButton: [{
|
|
1030
|
+
type: ViewChild,
|
|
1031
|
+
args: ['dropdownButton']
|
|
880
1032
|
}] } });
|
|
881
1033
|
|
|
882
1034
|
class ListComponent {
|
|
@@ -990,10 +1142,10 @@ class ModalComponent extends AbstractComponent {
|
|
|
990
1142
|
}
|
|
991
1143
|
}
|
|
992
1144
|
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
993
|
-
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalComponent, selector: "it-modal[id][title]", inputs: { title: "title", size: "size" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden", onHidePrevented: "onHidePrevented" }, viewQueries: [{ propertyName: "modalElement", first: true, predicate: ["modalElement"], descendants: true }], exportAs: ["itModal"], usesInheritance: true, ngImport: i0, template: "<div [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\"
|
|
1145
|
+
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalComponent, selector: "it-modal[id][title]", inputs: { title: "title", size: "size" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden", onHidePrevented: "onHidePrevented" }, viewQueries: [{ propertyName: "modalElement", first: true, predicate: ["modalElement"], descendants: true }], exportAs: ["itModal"], usesInheritance: true, ngImport: i0, template: "<div #modalElement [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\">\n <div class=\"modal-dialog {{size}}\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title h5 no_toc\" id=\"{{id}}-label\">{{title}}</h2>\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"\n [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n <div class=\"modal-body mb-3\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer modal-footer-shadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal-footer:empty{display:none}\n"], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
994
1146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalComponent, decorators: [{
|
|
995
1147
|
type: Component,
|
|
996
|
-
args: [{ selector: 'it-modal[id][title]', exportAs: 'itModal', template: "<div [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\"
|
|
1148
|
+
args: [{ selector: 'it-modal[id][title]', exportAs: 'itModal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #modalElement [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\">\n <div class=\"modal-dialog {{size}}\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title h5 no_toc\" id=\"{{id}}-label\">{{title}}</h2>\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"\n [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n <div class=\"modal-body mb-3\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer modal-footer-shadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal-footer:empty{display:none}\n"] }]
|
|
997
1149
|
}], propDecorators: { title: [{
|
|
998
1150
|
type: Input
|
|
999
1151
|
}], size: [{
|
|
@@ -1289,7 +1441,7 @@ class PopoverDirective {
|
|
|
1289
1441
|
*/
|
|
1290
1442
|
set title(title) {
|
|
1291
1443
|
if (title) {
|
|
1292
|
-
|
|
1444
|
+
this.element.setAttribute('title', title);
|
|
1293
1445
|
this.element.setAttribute('data-bs-original-title', title);
|
|
1294
1446
|
}
|
|
1295
1447
|
}
|
|
@@ -1336,6 +1488,9 @@ class PopoverDirective {
|
|
|
1336
1488
|
this.element.addEventListener('hidden.bs.popover', event => this.onHidden.emit(event));
|
|
1337
1489
|
this.element.addEventListener('inserted.bs.popover', event => this.onInserted.emit(event));
|
|
1338
1490
|
}
|
|
1491
|
+
ngOnDestroy() {
|
|
1492
|
+
this.dispose();
|
|
1493
|
+
}
|
|
1339
1494
|
/**
|
|
1340
1495
|
* Shows the popover of an item.
|
|
1341
1496
|
*/
|
|
@@ -1423,28 +1578,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
1423
1578
|
type: Output
|
|
1424
1579
|
}] } });
|
|
1425
1580
|
|
|
1426
|
-
class ProgressButtonComponent {
|
|
1427
|
-
get isProgress() {
|
|
1428
|
-
return typeof this.progress === 'number' || isTrueBooleanInput(this.progress);
|
|
1429
|
-
}
|
|
1430
|
-
get progressValue() {
|
|
1431
|
-
return typeof this.progress === 'number' ? this.progress : 0;
|
|
1432
|
-
}
|
|
1433
|
-
get isIndeterminate() {
|
|
1434
|
-
return typeof this.progress !== 'number' && isTrueBooleanInput(this.progress);
|
|
1435
|
-
}
|
|
1436
|
-
}
|
|
1437
|
-
ProgressButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1438
|
-
ProgressButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressButtonComponent, selector: "button[itButton][progress]", inputs: { progress: "progress", progressColor: "progressColor" }, ngImport: i0, template: "<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressButtonComponent, decorators: [{
|
|
1440
|
-
type: Component,
|
|
1441
|
-
args: [{ selector: 'button[itButton][progress]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n" }]
|
|
1442
|
-
}], propDecorators: { progress: [{
|
|
1443
|
-
type: Input
|
|
1444
|
-
}], progressColor: [{
|
|
1445
|
-
type: Input
|
|
1446
|
-
}] } });
|
|
1447
|
-
|
|
1448
1581
|
class SpinnerComponent {
|
|
1449
1582
|
constructor() {
|
|
1450
1583
|
/**
|
|
@@ -1614,10 +1747,10 @@ class TabItemComponent extends AbstractComponent {
|
|
|
1614
1747
|
}
|
|
1615
1748
|
}
|
|
1616
1749
|
TabItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1617
|
-
TabItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabItemComponent, selector: "it-tab-item[id]", inputs: { label: "label", icon: "icon", active: "active", disabled: "disabled", class: "class" }, viewQueries: [{ propertyName: "htmlContent", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" });
|
|
1750
|
+
TabItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabItemComponent, selector: "it-tab-item[id]", inputs: { label: "label", icon: "icon", active: "active", disabled: "disabled", class: "class" }, viewQueries: [{ propertyName: "htmlContent", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1618
1751
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabItemComponent, decorators: [{
|
|
1619
1752
|
type: Component,
|
|
1620
|
-
args: [{ selector: 'it-tab-item[id]', template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
1753
|
+
args: [{ selector: 'it-tab-item[id]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
1621
1754
|
}], propDecorators: { label: [{
|
|
1622
1755
|
type: Input
|
|
1623
1756
|
}], icon: [{
|
|
@@ -1633,23 +1766,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
1633
1766
|
args: [TemplateRef]
|
|
1634
1767
|
}] } });
|
|
1635
1768
|
|
|
1636
|
-
class TabContainerComponent {
|
|
1637
|
-
constructor(_changeDetectorRef) {
|
|
1638
|
-
this._changeDetectorRef = _changeDetectorRef;
|
|
1639
|
-
}
|
|
1769
|
+
class TabContainerComponent extends AbstractComponent {
|
|
1640
1770
|
isTrueBooleanInput(booleanInput) {
|
|
1641
1771
|
return isTrueBooleanInput(booleanInput);
|
|
1642
1772
|
}
|
|
1643
1773
|
ngAfterViewInit() {
|
|
1644
|
-
|
|
1774
|
+
super.ngAfterViewInit();
|
|
1775
|
+
this.tabs?.changes.pipe(// When tabs changes (dynamic add/remove)
|
|
1776
|
+
startWith(undefined), tap(() => {
|
|
1777
|
+
this.tabSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions
|
|
1778
|
+
this.tabSubscriptions = this.tabs?.map(tab => tab.valueChanges.subscribe(() => {
|
|
1779
|
+
this._changeDetectorRef.detectChanges(); // DetectChanges when tab-item attributes changes
|
|
1780
|
+
}));
|
|
1781
|
+
this._changeDetectorRef.detectChanges(); // Force update html render
|
|
1782
|
+
}), switchMap(() => this.tabNavLinks?.changes.pipe(startWith(undefined)) || of(undefined))).subscribe(() => {
|
|
1783
|
+
// Init tabs from bootstrap-italia
|
|
1784
|
+
this.tabNavLinks?.forEach(tabNavLink => {
|
|
1785
|
+
const triggerEl = tabNavLink.nativeElement, tabTrigger = Tab.getOrCreateInstance(triggerEl);
|
|
1786
|
+
if (triggerEl.getAttribute('tab-listener') !== 'true') {
|
|
1787
|
+
triggerEl.addEventListener('click', event => {
|
|
1788
|
+
event.preventDefault();
|
|
1789
|
+
tabTrigger.show();
|
|
1790
|
+
});
|
|
1791
|
+
triggerEl.setAttribute('tab-listener', 'true'); // Prevents multiple insertion of the listener
|
|
1792
|
+
}
|
|
1793
|
+
});
|
|
1794
|
+
});
|
|
1795
|
+
}
|
|
1796
|
+
ngOnDestroy() {
|
|
1797
|
+
this.tabSubscriptions?.forEach(sub => sub.unsubscribe());
|
|
1645
1798
|
}
|
|
1646
1799
|
}
|
|
1647
|
-
TabContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabContainerComponent, deps:
|
|
1648
|
-
TabContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabContainerComponent, selector: "it-tab-container", inputs: { auto: "auto", iconText: "iconText", dark: "dark" }, queries: [{ propertyName: "tabs", predicate: TabItemComponent }], ngImport: i0, template: "<ul class=\"nav nav-tabs\"\n [class.auto]=\"isTrueBooleanInput(auto)\"\n [class.nav-tabs-icon-text]=\"isTrueBooleanInput(iconText)\"\n [class.nav-dark]=\"isTrueBooleanInput(dark)\"\n role=\"tablist\">\n\n <li class=\"nav-item\" *ngFor=\"let tab of tabs\">\n <a [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n
|
|
1800
|
+
TabContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1801
|
+
TabContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabContainerComponent, selector: "it-tab-container", inputs: { auto: "auto", iconText: "iconText", dark: "dark" }, queries: [{ propertyName: "tabs", predicate: TabItemComponent }], viewQueries: [{ propertyName: "tabNavLinks", predicate: ["tabNavLinks"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul class=\"nav nav-tabs\"\n [class.auto]=\"isTrueBooleanInput(auto)\"\n [class.nav-tabs-icon-text]=\"isTrueBooleanInput(iconText)\"\n [class.nav-dark]=\"isTrueBooleanInput(dark)\"\n role=\"tablist\">\n\n <li class=\"nav-item\" *ngFor=\"let tab of tabs\">\n <a #tabNavLinks [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n class=\"nav-link\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.disabled]=\"isTrueBooleanInput(tab.disabled)\"\n [attr.href]=\"'#'+tab.id+'-tab'\"\n [attr.aria-controls]=\"tab.id+'-tab'\">\n <it-icon *ngIf=\"tab.icon\" [name]=\"tab.icon\" class=\"me-2\"></it-icon>\n {{tab.label}}\n </a>\n </li>\n</ul>\n\n<div class=\"tab-content\">\n <div *ngFor=\"let tab of tabs\"\n [id]=\"tab.id+'-tab'\"\n class=\"tab-pane p-4 fade {{tab.class ?? ''}}\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.show]=\"isTrueBooleanInput(tab.active)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tab.id+'-tab-link'\">\n <ng-container *ngTemplateOutlet=\"tab.htmlContent\"></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1649
1802
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabContainerComponent, decorators: [{
|
|
1650
1803
|
type: Component,
|
|
1651
|
-
args: [{ selector: 'it-tab-container', template: "<ul class=\"nav nav-tabs\"\n [class.auto]=\"isTrueBooleanInput(auto)\"\n [class.nav-tabs-icon-text]=\"isTrueBooleanInput(iconText)\"\n [class.nav-dark]=\"isTrueBooleanInput(dark)\"\n role=\"tablist\">\n\n <li class=\"nav-item\" *ngFor=\"let tab of tabs\">\n <a [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n
|
|
1652
|
-
}],
|
|
1804
|
+
args: [{ selector: 'it-tab-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"nav nav-tabs\"\n [class.auto]=\"isTrueBooleanInput(auto)\"\n [class.nav-tabs-icon-text]=\"isTrueBooleanInput(iconText)\"\n [class.nav-dark]=\"isTrueBooleanInput(dark)\"\n role=\"tablist\">\n\n <li class=\"nav-item\" *ngFor=\"let tab of tabs\">\n <a #tabNavLinks [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n class=\"nav-link\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.disabled]=\"isTrueBooleanInput(tab.disabled)\"\n [attr.href]=\"'#'+tab.id+'-tab'\"\n [attr.aria-controls]=\"tab.id+'-tab'\">\n <it-icon *ngIf=\"tab.icon\" [name]=\"tab.icon\" class=\"me-2\"></it-icon>\n {{tab.label}}\n </a>\n </li>\n</ul>\n\n<div class=\"tab-content\">\n <div *ngFor=\"let tab of tabs\"\n [id]=\"tab.id+'-tab'\"\n class=\"tab-pane p-4 fade {{tab.class ?? ''}}\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.show]=\"isTrueBooleanInput(tab.active)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tab.id+'-tab-link'\">\n <ng-container *ngTemplateOutlet=\"tab.htmlContent\"></ng-container>\n </div>\n</div>\n" }]
|
|
1805
|
+
}], propDecorators: { auto: [{
|
|
1653
1806
|
type: Input
|
|
1654
1807
|
}], iconText: [{
|
|
1655
1808
|
type: Input
|
|
@@ -1658,6 +1811,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
1658
1811
|
}], tabs: [{
|
|
1659
1812
|
type: ContentChildren,
|
|
1660
1813
|
args: [TabItemComponent]
|
|
1814
|
+
}], tabNavLinks: [{
|
|
1815
|
+
type: ViewChildren,
|
|
1816
|
+
args: ['tabNavLinks']
|
|
1661
1817
|
}] } });
|
|
1662
1818
|
|
|
1663
1819
|
class TableComponent {
|
|
@@ -1772,6 +1928,9 @@ class TooltipDirective {
|
|
|
1772
1928
|
this.element.addEventListener('hidden.bs.tooltip', event => this.onHidden.emit(event));
|
|
1773
1929
|
this.element.addEventListener('inserted.bs.tooltip', event => this.onInserted.emit(event));
|
|
1774
1930
|
}
|
|
1931
|
+
ngOnDestroy() {
|
|
1932
|
+
this.dispose();
|
|
1933
|
+
}
|
|
1775
1934
|
/**
|
|
1776
1935
|
* Shows the tooltip of an item.
|
|
1777
1936
|
*/
|
|
@@ -1900,7 +2059,7 @@ const URL_REGEX = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0
|
|
|
1900
2059
|
/**
|
|
1901
2060
|
* The italian tax code Regex (Codice Fiscale)
|
|
1902
2061
|
*/
|
|
1903
|
-
const ITALIAN_TAX_CODE_REGEX = /^[
|
|
2062
|
+
const ITALIAN_TAX_CODE_REGEX = /^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$/i;
|
|
1904
2063
|
/**
|
|
1905
2064
|
* The VAT number Regex (Partita iva)
|
|
1906
2065
|
*/
|
|
@@ -2109,7 +2268,7 @@ class InputComponent extends AbstractFormComponent {
|
|
|
2109
2268
|
if (this.type === 'number' && (isTrueBooleanInput(this.currency) || isTrueBooleanInput(this.percentage))) {
|
|
2110
2269
|
return true;
|
|
2111
2270
|
}
|
|
2112
|
-
return this.type === 'date' || this.type === 'time';
|
|
2271
|
+
return this.type === 'date' || this.type === 'time' || this.type === 'color';
|
|
2113
2272
|
}
|
|
2114
2273
|
/**
|
|
2115
2274
|
* Check is readonly field
|
|
@@ -2596,6 +2755,14 @@ class FileUtils {
|
|
|
2596
2755
|
const fileBlob = FileUtils.base64ToBlob(base64, mimeType);
|
|
2597
2756
|
return new File([fileBlob], filename, { type: mimeType });
|
|
2598
2757
|
}
|
|
2758
|
+
/**
|
|
2759
|
+
* Extract the MIME type from base64 string
|
|
2760
|
+
* @param base64 the base64 string
|
|
2761
|
+
*/
|
|
2762
|
+
static getMimeTypeFromBase64(base64) {
|
|
2763
|
+
const mime = base64.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);
|
|
2764
|
+
return (mime && mime.length) ? mime[1] : undefined;
|
|
2765
|
+
}
|
|
2599
2766
|
}
|
|
2600
2767
|
|
|
2601
2768
|
class UploadDragDropComponent extends AbstractComponent {
|
|
@@ -2736,7 +2903,7 @@ class UploadFileListComponent extends AbstractComponent {
|
|
|
2736
2903
|
* @example application/pdf,image/png
|
|
2737
2904
|
* @default *
|
|
2738
2905
|
*/
|
|
2739
|
-
this.accept =
|
|
2906
|
+
this.accept = '*';
|
|
2740
2907
|
/**
|
|
2741
2908
|
* If upload multiple files
|
|
2742
2909
|
*/
|
|
@@ -2761,12 +2928,15 @@ class UploadFileListComponent extends AbstractComponent {
|
|
|
2761
2928
|
}
|
|
2762
2929
|
ngOnChanges(changes) {
|
|
2763
2930
|
if (changes['fileList'] && this.isImageList) {
|
|
2764
|
-
this.fileList.
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2931
|
+
const images$ = this.fileList.map(item => FileUtils.fileToBase64(item.file).pipe(take(1), tap(base64 => this.previewImages.set(item.id, base64))));
|
|
2932
|
+
forkJoin(images$).subscribe(() => {
|
|
2933
|
+
this._changeDetectorRef.detectChanges();
|
|
2934
|
+
super.ngOnChanges(changes);
|
|
2768
2935
|
});
|
|
2769
2936
|
}
|
|
2937
|
+
else {
|
|
2938
|
+
super.ngOnChanges(changes);
|
|
2939
|
+
}
|
|
2770
2940
|
}
|
|
2771
2941
|
get isMultipleInput() {
|
|
2772
2942
|
return isTrueBooleanInput(this.multiple);
|
|
@@ -2897,12 +3067,43 @@ class BackToTopComponent extends AbstractComponent {
|
|
|
2897
3067
|
get isDark() {
|
|
2898
3068
|
return isTrueBooleanInput(this.dark);
|
|
2899
3069
|
}
|
|
3070
|
+
ngAfterViewInit() {
|
|
3071
|
+
super.ngAfterViewInit();
|
|
3072
|
+
if (this.backToTopElement) {
|
|
3073
|
+
const element = this.backToTopElement.nativeElement;
|
|
3074
|
+
this.backToTop = BackToTop.getOrCreateInstance(element);
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
/**
|
|
3078
|
+
* Show button
|
|
3079
|
+
*/
|
|
3080
|
+
show() {
|
|
3081
|
+
this.backToTop?.show();
|
|
3082
|
+
}
|
|
3083
|
+
/**
|
|
3084
|
+
* Hide the button
|
|
3085
|
+
*/
|
|
3086
|
+
hide() {
|
|
3087
|
+
this.backToTop?.hide();
|
|
3088
|
+
}
|
|
3089
|
+
/**
|
|
3090
|
+
* Activates the scroll animation towards the Y coordinate indicated by the positionTop option
|
|
3091
|
+
*/
|
|
3092
|
+
scrollToTop() {
|
|
3093
|
+
this.backToTop?.scrollToTop();
|
|
3094
|
+
}
|
|
3095
|
+
/**
|
|
3096
|
+
* Eliminate component features
|
|
3097
|
+
*/
|
|
3098
|
+
dispose() {
|
|
3099
|
+
this.backToTop?.dispose();
|
|
3100
|
+
}
|
|
2900
3101
|
}
|
|
2901
3102
|
BackToTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackToTopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2902
|
-
BackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BackToTopComponent, selector: "it-back-to-top", inputs: { id: "id", small: "small", shadow: "shadow", dark: "dark" }, usesInheritance: true, ngImport: i0, template: "<a [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n
|
|
3103
|
+
BackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BackToTopComponent, selector: "it-back-to-top", inputs: { id: "id", small: "small", shadow: "shadow", dark: "dark" }, viewQueries: [{ propertyName: "backToTopElement", first: true, predicate: ["backToTop"], descendants: true }], exportAs: ["itBackToTop"], usesInheritance: true, ngImport: i0, template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2903
3104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackToTopComponent, decorators: [{
|
|
2904
3105
|
type: Component,
|
|
2905
|
-
args: [{ selector: 'it-back-to-top', template: "<a [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n
|
|
3106
|
+
args: [{ selector: 'it-back-to-top', exportAs: 'itBackToTop', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n" }]
|
|
2906
3107
|
}], propDecorators: { id: [{
|
|
2907
3108
|
type: Input
|
|
2908
3109
|
}], small: [{
|
|
@@ -2911,6 +3112,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
2911
3112
|
type: Input
|
|
2912
3113
|
}], dark: [{
|
|
2913
3114
|
type: Input
|
|
3115
|
+
}], backToTopElement: [{
|
|
3116
|
+
type: ViewChild,
|
|
3117
|
+
args: ['backToTop']
|
|
2914
3118
|
}] } });
|
|
2915
3119
|
|
|
2916
3120
|
class BreadcrumbItemComponent extends LinkComponent {
|
|
@@ -2974,11 +3178,13 @@ class HeaderComponent extends AbstractComponent {
|
|
|
2974
3178
|
* TODO: complete header
|
|
2975
3179
|
* @param _renderer
|
|
2976
3180
|
* @param _elementRef
|
|
3181
|
+
* @param _changeDetectorRef
|
|
2977
3182
|
*/
|
|
2978
|
-
constructor(_renderer, _elementRef) {
|
|
2979
|
-
super(_renderer, _elementRef);
|
|
3183
|
+
constructor(_renderer, _elementRef, _changeDetectorRef) {
|
|
3184
|
+
super(_renderer, _elementRef, _changeDetectorRef);
|
|
2980
3185
|
this._renderer = _renderer;
|
|
2981
3186
|
this._elementRef = _elementRef;
|
|
3187
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
2982
3188
|
this.showSlim = true;
|
|
2983
3189
|
this.loginStyle = 'full';
|
|
2984
3190
|
this.smallHeader = true;
|
|
@@ -2999,12 +3205,12 @@ class HeaderComponent extends AbstractComponent {
|
|
|
2999
3205
|
return isTrueBooleanInput(this.showSearch);
|
|
3000
3206
|
}
|
|
3001
3207
|
}
|
|
3002
|
-
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3208
|
+
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3003
3209
|
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: HeaderComponent, selector: "it-header", inputs: { light: "light", showSlim: "showSlim", slimTitle: "slimTitle", loginStyle: "loginStyle", smallHeader: "smallHeader", showSearch: "showSearch" }, outputs: { loginClick: "loginClick", searchClick: "searchClick" }, usesInheritance: true, ngImport: i0, template: "<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled"], exportAs: ["itButton"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
3004
3210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
3005
3211
|
type: Component,
|
|
3006
3212
|
args: [{ selector: 'it-header', template: "<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"] }]
|
|
3007
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { light: [{
|
|
3213
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { light: [{
|
|
3008
3214
|
type: Input
|
|
3009
3215
|
}], showSlim: [{
|
|
3010
3216
|
type: Input
|
|
@@ -3046,7 +3252,7 @@ class LanguageSwitcherComponent {
|
|
|
3046
3252
|
}
|
|
3047
3253
|
}
|
|
3048
3254
|
LanguageSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LanguageSwitcherComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3049
|
-
LanguageSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LanguageSwitcherComponent, selector: "it-language-switcher", inputs: { availableLanguages: "availableLanguages" }, ngImport: i0, template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownComponent, selector: "it-dropdown[id]", inputs: ["color", "direction", "fullWidth", "dark"] }, { kind: "component", type: DropdownItemComponent, selector: "it-dropdown-item", inputs: ["divider", "active", "large", "iconName", "iconPosition"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
3255
|
+
LanguageSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LanguageSwitcherComponent, selector: "it-language-switcher", inputs: { availableLanguages: "availableLanguages" }, ngImport: i0, template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownComponent, selector: "it-dropdown[id]", inputs: ["color", "direction", "fullWidth", "dark"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["itDropdown"] }, { kind: "component", type: DropdownItemComponent, selector: "it-dropdown-item", inputs: ["divider", "active", "large", "iconName", "iconPosition"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
3050
3256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LanguageSwitcherComponent, decorators: [{
|
|
3051
3257
|
type: Component,
|
|
3052
3258
|
args: [{ selector: 'it-language-switcher', template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n" }]
|