design-angular-kit 1.0.0-0 → 1.0.0-10
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/README.md +183 -24
- package/assets/i18n/en.json +93 -0
- package/assets/i18n/it.json +93 -0
- package/esm2020/lib/abstracts/abstract-form-component.mjs +174 -0
- package/esm2020/lib/abstracts/abstract.component.mjs +27 -0
- package/esm2020/lib/components/core/accordion/accordion.component.mjs +31 -0
- package/esm2020/lib/components/core/alert/alert.component.mjs +69 -0
- package/esm2020/lib/components/core/badge/badge.directive.mjs +34 -0
- package/esm2020/lib/components/core/button/button.directive.mjs +80 -0
- package/esm2020/lib/components/core/callout/callout.component.mjs +84 -0
- package/esm2020/lib/components/core/card/card.component.mjs +58 -0
- package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +66 -0
- package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +14 -0
- package/esm2020/lib/components/core/chip/chip.component.mjs +89 -0
- package/esm2020/lib/components/core/collapse/collapse.component.mjs +101 -0
- package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
- package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
- package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +59 -0
- package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +130 -0
- package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +68 -0
- package/esm2020/lib/components/core/forward/forward.directive.mjs +51 -0
- package/esm2020/lib/components/core/link/link.component.mjs +40 -0
- package/esm2020/lib/components/core/list/list/list.component.mjs +13 -0
- package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +36 -0
- package/esm2020/lib/components/core/modal/modal.component.mjs +98 -0
- package/esm2020/lib/components/core/notifications/notifications.component.mjs +110 -0
- package/esm2020/lib/components/core/pagination/pagination.component.mjs +51 -0
- package/esm2020/lib/components/core/popover/popover.directive.mjs +179 -0
- package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +34 -0
- package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +27 -0
- package/esm2020/lib/components/core/rating/rating.component.mjs +45 -0
- package/esm2020/lib/components/core/spinner/spinner.component.mjs +35 -0
- package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +119 -0
- package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +18 -0
- package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +59 -0
- package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
- package/esm2020/lib/components/core/table/table.component.mjs +57 -0
- package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +143 -0
- package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +40 -0
- package/esm2020/lib/components/form/input/input.component.mjs +222 -0
- package/esm2020/lib/components/form/password-input/password-input.component.mjs +112 -0
- package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +53 -0
- package/esm2020/lib/components/form/select/select.component.mjs +62 -0
- package/esm2020/lib/components/form/textarea/textarea.component.mjs +46 -0
- package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +137 -0
- package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +104 -0
- package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +69 -0
- package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +74 -0
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +45 -0
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
- package/esm2020/lib/components/navigation/header/header.component.mjs +63 -0
- package/esm2020/lib/components/utils/icon/icon.component.mjs +54 -0
- package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +39 -0
- package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +13 -0
- package/esm2020/lib/design-angular-kit.module.mjs +45 -131
- package/esm2020/lib/interfaces/core.mjs +16 -0
- package/esm2020/lib/interfaces/form.mjs +2 -0
- package/esm2020/lib/interfaces/icon.mjs +2 -0
- package/esm2020/lib/interfaces/utils.mjs +2 -0
- package/esm2020/lib/modules/components.module.mjs +261 -0
- package/esm2020/lib/pipes/mark-matching-text.pipe.mjs +36 -0
- package/esm2020/lib/services/notifications/notifications.service.mjs +120 -0
- package/esm2020/lib/utils/boolean-input.mjs +15 -0
- package/esm2020/lib/utils/file-utils.mjs +73 -0
- package/esm2020/lib/utils/regex.mjs +26 -0
- package/esm2020/lib/validators/it-validators.mjs +134 -0
- package/esm2020/public_api.mjs +67 -36
- package/fesm2015/design-angular-kit.mjs +3424 -2713
- package/fesm2015/design-angular-kit.mjs.map +1 -1
- package/fesm2020/design-angular-kit.mjs +3391 -2713
- package/fesm2020/design-angular-kit.mjs.map +1 -1
- package/lib/abstracts/abstract-form-component.d.ts +89 -0
- package/lib/abstracts/abstract.component.d.ts +20 -0
- package/lib/components/core/accordion/accordion.component.d.ts +12 -0
- package/lib/components/core/alert/alert.component.d.ts +39 -0
- package/lib/components/core/badge/badge.directive.d.ts +16 -0
- package/lib/components/core/button/button.directive.d.ts +36 -0
- package/lib/components/core/callout/callout.component.d.ts +47 -0
- package/lib/components/core/card/card.component.d.ts +41 -0
- package/lib/components/core/carousel/carousel/carousel.component.d.ts +46 -0
- package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +10 -0
- package/lib/components/core/chip/chip.component.d.ts +62 -0
- package/lib/components/core/collapse/collapse.component.d.ts +60 -0
- package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +12 -0
- package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +5 -0
- package/lib/components/core/dimmer/dimmer.component.d.ts +24 -0
- package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +81 -0
- package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +39 -0
- package/lib/components/core/forward/forward.directive.d.ts +14 -0
- package/lib/components/core/link/link.component.d.ts +31 -0
- package/lib/components/core/list/list/list.component.d.ts +10 -0
- package/lib/components/core/list/list-item/list-item.component.d.ts +24 -0
- package/lib/components/core/modal/modal.component.d.ts +59 -0
- package/lib/components/core/notifications/notifications.component.d.ts +44 -0
- package/lib/components/core/pagination/pagination.component.d.ts +31 -0
- package/lib/components/core/popover/popover.directive.d.ts +98 -0
- package/lib/components/core/progress-bar/progress-bar.component.d.ts +28 -0
- package/lib/components/core/progress-button/progress-button.component.d.ts +22 -0
- package/lib/components/core/rating/rating.component.d.ts +20 -0
- package/lib/components/core/spinner/spinner.component.d.ts +21 -0
- package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +102 -0
- package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +19 -0
- package/lib/components/core/tab/tab-container/tab-container.component.d.ts +30 -0
- package/lib/components/core/tab/tab-item/tab-item.component.d.ts +34 -0
- package/lib/components/core/table/table.component.d.ts +54 -0
- package/lib/components/core/tooltip/tooltip.directive.d.ts +81 -0
- package/lib/components/form/checkbox/checkbox.component.d.ts +30 -0
- package/lib/components/form/input/input.component.d.ts +96 -0
- package/lib/components/form/password-input/password-input.component.d.ts +55 -0
- package/lib/components/form/radio-button/radio-button.component.d.ts +29 -0
- package/lib/components/form/select/select.component.d.ts +30 -0
- package/lib/components/form/textarea/textarea.component.d.ts +24 -0
- package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +54 -0
- package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +59 -0
- package/lib/components/navigation/back-button/back-button.component.d.ts +47 -0
- package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +46 -0
- package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +30 -0
- package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +22 -0
- package/lib/components/navigation/header/header.component.d.ts +30 -0
- package/lib/components/utils/icon/icon.component.d.ts +40 -0
- package/lib/components/utils/language-switcher/language-switcher.component.d.ts +23 -0
- package/lib/components/utils/not-found-page/not-found-page.component.d.ts +5 -0
- package/lib/design-angular-kit.module.d.ts +7 -24
- package/lib/interfaces/core.d.ts +59 -0
- package/lib/interfaces/form.d.ts +67 -0
- package/lib/interfaces/icon.d.ts +3 -0
- package/lib/interfaces/utils.d.ts +10 -0
- package/lib/modules/components.module.d.ts +62 -0
- package/lib/services/notifications/notifications.service.d.ts +63 -0
- package/lib/utils/boolean-input.d.ts +11 -0
- package/lib/utils/file-utils.d.ts +32 -0
- package/lib/utils/regex.d.ts +25 -0
- package/lib/validators/it-validators.d.ts +58 -0
- package/package.json +22 -12
- package/public_api.d.ts +59 -35
- package/esm2020/lib/badge/badge.directive.mjs +0 -83
- package/esm2020/lib/breadcrumb/breadcrumb-item.component.mjs +0 -66
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -89
- package/esm2020/lib/button/button.directive.mjs +0 -185
- package/esm2020/lib/button/button.module.mjs +0 -18
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -138
- package/esm2020/lib/collapse/collapse-group.component.mjs +0 -57
- package/esm2020/lib/collapse/collapse-item.component.mjs +0 -79
- package/esm2020/lib/collapse/collapse.config.mjs +0 -12
- package/esm2020/lib/collapse/collapse.directive.mjs +0 -55
- package/esm2020/lib/collapse/collapse.module.mjs +0 -22
- package/esm2020/lib/dropdown/dropdown-divider.component.mjs +0 -11
- package/esm2020/lib/dropdown/dropdown-item.component.mjs +0 -97
- package/esm2020/lib/dropdown/dropdown.component.mjs +0 -143
- package/esm2020/lib/dropdown/dropdown.config.mjs +0 -12
- package/esm2020/lib/dropdown/dropdown.directive.mjs +0 -156
- package/esm2020/lib/dropdown/dropdown.module.mjs +0 -25
- package/esm2020/lib/enums/icons.enum.mjs +0 -27
- package/esm2020/lib/form-input/form-input-password.utils.mjs +0 -154
- package/esm2020/lib/form-input/form-input.component.mjs +0 -495
- package/esm2020/lib/form-input/it-prefix.directive.mjs +0 -13
- package/esm2020/lib/form-input/it-suffix.directive.mjs +0 -13
- package/esm2020/lib/form-input/it-text-prefix.directive.mjs +0 -13
- package/esm2020/lib/form-input/it-text-suffix.directive.mjs +0 -13
- package/esm2020/lib/form-input/mark-matching-text.pipe.mjs +0 -36
- package/esm2020/lib/icon/icon.component.mjs +0 -87
- package/esm2020/lib/icon/icon.module.mjs +0 -18
- package/esm2020/lib/models/Alignment.mjs +0 -15
- package/esm2020/lib/models/ButtonSize.mjs +0 -15
- package/esm2020/lib/models/InputType.mjs +0 -44
- package/esm2020/lib/models/ThemeColor.mjs +0 -30
- package/esm2020/lib/popover/popover.config.mjs +0 -17
- package/esm2020/lib/popover/popover.directive.mjs +0 -33
- package/esm2020/lib/popover/popover.module.mjs +0 -19
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -98
- package/esm2020/lib/radio/radio.component.mjs +0 -287
- package/esm2020/lib/radio/unique-selection-dispatcher.mjs +0 -55
- package/esm2020/lib/tabs/tab-group.component.mjs +0 -177
- package/esm2020/lib/tabs/tab.component.mjs +0 -73
- package/esm2020/lib/tabs/tabs.module.mjs +0 -20
- package/esm2020/lib/toggle/toggle.component.mjs +0 -86
- package/esm2020/lib/tooltip/tooltip.config.mjs +0 -17
- package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -43
- package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
- package/esm2020/lib/util/focus-mouse.directive.mjs +0 -32
- package/esm2020/lib/util/util.mjs +0 -12
- package/esm2020/lib/util/utils.module.mjs +0 -16
- package/lib/badge/badge.directive.d.ts +0 -33
- package/lib/breadcrumb/breadcrumb-item.component.d.ts +0 -33
- package/lib/breadcrumb/breadcrumb.component.d.ts +0 -33
- package/lib/button/button.directive.d.ts +0 -72
- package/lib/button/button.module.d.ts +0 -8
- package/lib/checkbox/checkbox.component.d.ts +0 -61
- package/lib/collapse/collapse-group.component.d.ts +0 -16
- package/lib/collapse/collapse-item.component.d.ts +0 -46
- package/lib/collapse/collapse.config.d.ts +0 -6
- package/lib/collapse/collapse.directive.d.ts +0 -25
- package/lib/collapse/collapse.module.d.ts +0 -12
- package/lib/dropdown/dropdown-divider.component.d.ts +0 -5
- package/lib/dropdown/dropdown-item.component.d.ts +0 -56
- package/lib/dropdown/dropdown.component.d.ts +0 -65
- package/lib/dropdown/dropdown.config.d.ts +0 -6
- package/lib/dropdown/dropdown.directive.d.ts +0 -77
- package/lib/dropdown/dropdown.module.d.ts +0 -15
- package/lib/enums/icons.enum.d.ts +0 -23
- package/lib/form-input/form-input-password.utils.d.ts +0 -45
- package/lib/form-input/form-input.component.d.ts +0 -283
- package/lib/form-input/it-prefix.directive.d.ts +0 -5
- package/lib/form-input/it-suffix.directive.d.ts +0 -5
- package/lib/form-input/it-text-prefix.directive.d.ts +0 -5
- package/lib/form-input/it-text-suffix.directive.d.ts +0 -5
- package/lib/icon/icon.component.d.ts +0 -34
- package/lib/icon/icon.module.d.ts +0 -8
- package/lib/models/Alignment.d.ts +0 -12
- package/lib/models/ButtonSize.d.ts +0 -11
- package/lib/models/InputType.d.ts +0 -36
- package/lib/models/ThemeColor.d.ts +0 -21
- package/lib/popover/popover.config.d.ts +0 -11
- package/lib/popover/popover.directive.d.ts +0 -20
- package/lib/popover/popover.module.d.ts +0 -9
- package/lib/progress-bar/progress-bar.component.d.ts +0 -55
- package/lib/radio/radio.component.d.ts +0 -116
- package/lib/radio/unique-selection-dispatcher.d.ts +0 -36
- package/lib/tabs/tab-group.component.d.ts +0 -71
- package/lib/tabs/tab.component.d.ts +0 -44
- package/lib/tabs/tabs.module.d.ts +0 -10
- package/lib/toggle/toggle.component.d.ts +0 -46
- package/lib/tooltip/tooltip.config.d.ts +0 -11
- package/lib/tooltip/tooltip.directive.d.ts +0 -27
- package/lib/tooltip/tooltip.module.d.ts +0 -9
- package/lib/util/focus-mouse.directive.d.ts +0 -13
- package/lib/util/util.d.ts +0 -5
- package/lib/util/utils.module.d.ts +0 -7
- /package/lib/{form-input → pipes}/mark-matching-text.pipe.d.ts +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, Input, ViewChildren } from '@angular/core';
|
|
2
|
+
import { isTrueBooleanInput } from '../../../../utils/boolean-input';
|
|
3
|
+
import { TabItemComponent } from '../tab-item/tab-item.component';
|
|
4
|
+
import { of, startWith, switchMap, tap } from 'rxjs';
|
|
5
|
+
import { Tab } from 'bootstrap-italia';
|
|
6
|
+
import { AbstractComponent } from '../../../../abstracts/abstract.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "../../../utils/icon/icon.component";
|
|
10
|
+
export class TabContainerComponent extends AbstractComponent {
|
|
11
|
+
isTrueBooleanInput(booleanInput) {
|
|
12
|
+
return isTrueBooleanInput(booleanInput);
|
|
13
|
+
}
|
|
14
|
+
ngAfterViewInit() {
|
|
15
|
+
super.ngAfterViewInit();
|
|
16
|
+
this.tabs?.changes.pipe(// When tabs changes (dynamic add/remove)
|
|
17
|
+
startWith(undefined), tap(() => {
|
|
18
|
+
this.tabSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions
|
|
19
|
+
this.tabSubscriptions = this.tabs?.map(tab => tab.valueChanges.subscribe(() => {
|
|
20
|
+
this._changeDetectorRef.detectChanges(); // DetectChanges when tab-item attributes changes
|
|
21
|
+
}));
|
|
22
|
+
this._changeDetectorRef.detectChanges(); // Force update html render
|
|
23
|
+
}), switchMap(() => this.tabNavLinks?.changes.pipe(startWith(undefined)) || of(undefined))).subscribe(() => {
|
|
24
|
+
// Init tabs from bootstrap-italia
|
|
25
|
+
this.tabNavLinks?.forEach(tabNavLink => {
|
|
26
|
+
const triggerEl = tabNavLink.nativeElement, tabTrigger = Tab.getOrCreateInstance(triggerEl);
|
|
27
|
+
if (triggerEl.getAttribute('tab-listener') !== 'true') {
|
|
28
|
+
triggerEl.addEventListener('click', event => {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
tabTrigger.show();
|
|
31
|
+
});
|
|
32
|
+
triggerEl.setAttribute('tab-listener', 'true'); // Prevents multiple insertion of the listener
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
ngOnDestroy() {
|
|
38
|
+
this.tabSubscriptions?.forEach(sub => sub.unsubscribe());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
TabContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabContainerComponent, decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
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" }]
|
|
46
|
+
}], propDecorators: { auto: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], iconText: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], dark: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], tabs: [{
|
|
53
|
+
type: ContentChildren,
|
|
54
|
+
args: [TabItemComponent]
|
|
55
|
+
}], tabNavLinks: [{
|
|
56
|
+
type: ViewChildren,
|
|
57
|
+
args: ['tabNavLinks']
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvdGFiL3RhYi1jb250YWluZXIvdGFiLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvdGFiL3RhYi1jb250YWluZXIvdGFiLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsS0FBSyxFQUdMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQWdCLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7O0FBTzdFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxpQkFBaUI7SUEwQjFELGtCQUFrQixDQUFDLFlBQTJCO1FBQzVDLE9BQU8sa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVRLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBRSx5Q0FBeUM7UUFDaEUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUNwQixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsMkJBQTJCO1lBQ3JGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDNUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsaURBQWlEO1lBQzVGLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQywyQkFBMkI7UUFDdEUsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDdkYsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2Ysa0NBQWtDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsYUFBYSxFQUN4QyxVQUFVLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUVsRCxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssTUFBTSxFQUFFO29CQUNyRCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUMxQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ3ZCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDcEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyw4Q0FBOEM7aUJBQy9GO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7O2tIQTlEVSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwySUFvQmYsZ0JBQWdCLG1KQ3pDbkMsMG5DQStCQTsyRkRWYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU07OEJBT3RDLElBQUk7c0JBQVosS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLNkIsSUFBSTtzQkFBdEMsZUFBZTt1QkFBQyxnQkFBZ0I7Z0JBRUksV0FBVztzQkFBL0MsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBUYWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiLWl0ZW0vdGFiLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IG9mLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRhYiB9IGZyb20gJ2Jvb3RzdHJhcC1pdGFsaWEnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtdGFiLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWItY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGFiQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBUYWJzIGF1dG9tYXRpY2FsbHkgb2NjdXB5IHRoZSBlbnRpcmUgYXZhaWxhYmxlIHdpZHRoXG4gICAqL1xuICBASW5wdXQoKSBhdXRvPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBUbyBvYnRhaW4gdGhlIGNvcnJlY3QgbWFyZ2luIGJldHdlZW4gdGV4dCBhbmQgaWNvbiBpbiB0aGUgaG9yaXpvbnRhbGx5IGRldmVsb3BlZCB0YWJcbiAgICovXG4gIEBJbnB1dCgpIGljb25UZXh0PzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBEYXJrIHN0eWxlXG4gICAqL1xuICBASW5wdXQoKSBkYXJrPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIGl0ZW1zXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKFRhYkl0ZW1Db21wb25lbnQpIHRhYnM/OiBRdWVyeUxpc3Q8VGFiSXRlbUNvbXBvbmVudD47XG5cbiAgQFZpZXdDaGlsZHJlbigndGFiTmF2TGlua3MnKSBwcml2YXRlIHRhYk5hdkxpbmtzPzogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+PjtcblxuICBwcml2YXRlIHRhYlN1YnNjcmlwdGlvbnM/OiBBcnJheTxTdWJzY3JpcHRpb24+O1xuXG4gIGlzVHJ1ZUJvb2xlYW5JbnB1dChib29sZWFuSW5wdXQ/OiBCb29sZWFuSW5wdXQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KGJvb2xlYW5JbnB1dCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICB0aGlzLnRhYnM/LmNoYW5nZXMucGlwZSggLy8gV2hlbiB0YWJzIGNoYW5nZXMgKGR5bmFtaWMgYWRkL3JlbW92ZSlcbiAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy50YWJTdWJzY3JpcHRpb25zPy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7IC8vIFJlbW92ZSBvbGQgc3Vic2NyaXB0aW9uc1xuICAgICAgICB0aGlzLnRhYlN1YnNjcmlwdGlvbnMgPSB0aGlzLnRhYnM/Lm1hcCh0YWIgPT4gdGFiLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTsgLy8gRGV0ZWN0Q2hhbmdlcyB3aGVuIHRhYi1pdGVtIGF0dHJpYnV0ZXMgY2hhbmdlc1xuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTsgLy8gRm9yY2UgdXBkYXRlIGh0bWwgcmVuZGVyXG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnRhYk5hdkxpbmtzPy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpIHx8IG9mKHVuZGVmaW5lZCkpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gSW5pdCB0YWJzIGZyb20gYm9vdHN0cmFwLWl0YWxpYVxuICAgICAgdGhpcy50YWJOYXZMaW5rcz8uZm9yRWFjaCh0YWJOYXZMaW5rID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckVsID0gdGFiTmF2TGluay5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIHRhYlRyaWdnZXIgPSBUYWIuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0cmlnZ2VyRWwpO1xuXG4gICAgICAgIGlmICh0cmlnZ2VyRWwuZ2V0QXR0cmlidXRlKCd0YWItbGlzdGVuZXInKSAhPT0gJ3RydWUnKSB7XG4gICAgICAgICAgdHJpZ2dlckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRhYlRyaWdnZXIuc2hvdygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRyaWdnZXJFbC5zZXRBdHRyaWJ1dGUoJ3RhYi1saXN0ZW5lcicsICd0cnVlJyk7IC8vIFByZXZlbnRzIG11bHRpcGxlIGluc2VydGlvbiBvZiB0aGUgbGlzdGVuZXJcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYlN1YnNjcmlwdGlvbnM/LmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwibmF2IG5hdi10YWJzXCJcbiAgICBbY2xhc3MuYXV0b109XCJpc1RydWVCb29sZWFuSW5wdXQoYXV0bylcIlxuICAgIFtjbGFzcy5uYXYtdGFicy1pY29uLXRleHRdPVwiaXNUcnVlQm9vbGVhbklucHV0KGljb25UZXh0KVwiXG4gICAgW2NsYXNzLm5hdi1kYXJrXT1cImlzVHJ1ZUJvb2xlYW5JbnB1dChkYXJrKVwiXG4gICAgcm9sZT1cInRhYmxpc3RcIj5cblxuICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiPlxuICAgIDxhICN0YWJOYXZMaW5rcyBbaWRdPVwidGFiLmlkKyctdGFiLWxpbmsnXCJcbiAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICBjbGFzcz1cIm5hdi1saW5rXCJcbiAgICAgICBbY2xhc3MuYWN0aXZlXT1cImlzVHJ1ZUJvb2xlYW5JbnB1dCh0YWIuYWN0aXZlKVwiXG4gICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzVHJ1ZUJvb2xlYW5JbnB1dCh0YWIuZGlzYWJsZWQpXCJcbiAgICAgICBbYXR0ci5ocmVmXT1cIicjJyt0YWIuaWQrJy10YWInXCJcbiAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cInRhYi5pZCsnLXRhYidcIj5cbiAgICAgIDxpdC1pY29uICpuZ0lmPVwidGFiLmljb25cIiBbbmFtZV09XCJ0YWIuaWNvblwiIGNsYXNzPVwibWUtMlwiPjwvaXQtaWNvbj5cbiAgICAgIHt7dGFiLmxhYmVsfX1cbiAgICA8L2E+XG4gIDwvbGk+XG48L3VsPlxuXG48ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIlxuICAgICAgIFtpZF09XCJ0YWIuaWQrJy10YWInXCJcbiAgICAgICBjbGFzcz1cInRhYi1wYW5lIHAtNCBmYWRlIHt7dGFiLmNsYXNzID8/ICcnfX1cIlxuICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXNUcnVlQm9vbGVhbklucHV0KHRhYi5hY3RpdmUpXCJcbiAgICAgICBbY2xhc3Muc2hvd109XCJpc1RydWVCb29sZWFuSW5wdXQodGFiLmFjdGl2ZSlcIlxuICAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInRhYi5pZCsnLXRhYi1saW5rJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWIuaHRtbENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { AbstractComponent } from '../../../../abstracts/abstract.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TabItemComponent extends AbstractComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
/**
|
|
8
|
+
* Custom class
|
|
9
|
+
*/
|
|
10
|
+
this.class = '';
|
|
11
|
+
}
|
|
12
|
+
ngAfterViewInit() {
|
|
13
|
+
super.ngAfterViewInit();
|
|
14
|
+
this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
TabItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
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 });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabItemComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'it-tab-item[id]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
22
|
+
}], propDecorators: { label: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], icon: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], active: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], disabled: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], class: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], htmlContent: [{
|
|
33
|
+
type: ViewChild,
|
|
34
|
+
args: [TemplateRef]
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL3RhYi90YWItaXRlbS90YWItaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvdGFiL3RhYi1pdGVtL3RhYi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBUzdFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBaUI7SUFMdkQ7O1FBMkJFOztXQUVHO1FBQ00sVUFBSyxHQUFXLEVBQUUsQ0FBQztLQVc3QjtJQUpVLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7OzZHQW5DVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixzTUE4QmhCLFdBQVcsdUVDeEN4Qiw4REFHQTsyRkRPYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU07OEJBT3RDLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUt5QixXQUFXO3NCQUF6QyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXQnO1xuaW1wb3J0IHsgSWNvbk5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC10YWItaXRlbVtpZF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUYWJJdGVtQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIGxhYmVsXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGljb24gbmFtZVxuICAgKi9cbiAgQElucHV0KCkgaWNvbj86IEljb25OYW1lO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGFjdGl2ZSB0YWJcbiAgICovXG4gIEBJbnB1dCgpIGFjdGl2ZT86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogRGVmYXVsdCBkaXNhYmxlZCB0YWJcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBDdXN0b20gY2xhc3NcbiAgICovXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGFiXG4gICAqL1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBwdWJsaWMgaHRtbENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xhc3MnKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { isTrueBooleanInput } from "../../../utils/boolean-input";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TableComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
/**
|
|
7
|
+
* Responsive tables allow you to scroll tables horizontally with ease.
|
|
8
|
+
* @default responsive
|
|
9
|
+
*/
|
|
10
|
+
this.responsive = 'responsive';
|
|
11
|
+
}
|
|
12
|
+
get isStriped() {
|
|
13
|
+
return isTrueBooleanInput(this.striped);
|
|
14
|
+
}
|
|
15
|
+
get isHover() {
|
|
16
|
+
return isTrueBooleanInput(this.hover);
|
|
17
|
+
}
|
|
18
|
+
get isBordered() {
|
|
19
|
+
return isTrueBooleanInput(this.bordered);
|
|
20
|
+
}
|
|
21
|
+
get isBorderless() {
|
|
22
|
+
return isTrueBooleanInput(this.borderless);
|
|
23
|
+
}
|
|
24
|
+
get isCompact() {
|
|
25
|
+
return isTrueBooleanInput(this.compact);
|
|
26
|
+
}
|
|
27
|
+
get isCaptionTop() {
|
|
28
|
+
return isTrueBooleanInput(this.captionTop);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TableComponent, selector: "it-table", inputs: { color: "color", headColor: "headColor", alignment: "alignment", striped: "striped", hover: "hover", bordered: "bordered", borderless: "borderless", compact: "compact", captionTop: "captionTop", responsive: "responsive" }, ngImport: i0, template: "<div [class]=\"responsive ? 'table-' + responsive : undefined\">\n <table class=\"table{{color ? ' table-' + color : '' }}\"\n [class.table-striped]=\"isStriped\"\n [class.table-hover]=\"isHover\"\n [class.table-bordered]=\"isBordered\"\n [class.table-borderless]=\"isBorderless\"\n [class.table-sm]=\"isCompact\"\n [class.caption-top]=\"isCaptionTop\">\n <caption>\n <ng-content select=\"[caption]\"></ng-content>\n </caption>\n <thead [class]=\"headColor ? 'table-' + headColor : undefined\">\n <ng-content select=\"[thead]\"></ng-content>\n </thead>\n <tbody>\n <ng-content select=\"[tbody]\"></ng-content>\n </tbody>\n <tfoot>\n <ng-content select=\"[tfoot]\"></ng-content>\n </tfoot>\n </table>\n</div>\n", styles: ["caption:empty{display:none}caption:empty~thead{border-top:none!important}\n"] });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{ selector: 'it-table', template: "<div [class]=\"responsive ? 'table-' + responsive : undefined\">\n <table class=\"table{{color ? ' table-' + color : '' }}\"\n [class.table-striped]=\"isStriped\"\n [class.table-hover]=\"isHover\"\n [class.table-bordered]=\"isBordered\"\n [class.table-borderless]=\"isBorderless\"\n [class.table-sm]=\"isCompact\"\n [class.caption-top]=\"isCaptionTop\">\n <caption>\n <ng-content select=\"[caption]\"></ng-content>\n </caption>\n <thead [class]=\"headColor ? 'table-' + headColor : undefined\">\n <ng-content select=\"[thead]\"></ng-content>\n </thead>\n <tbody>\n <ng-content select=\"[tbody]\"></ng-content>\n </tbody>\n <tfoot>\n <ng-content select=\"[tfoot]\"></ng-content>\n </tfoot>\n </table>\n</div>\n", styles: ["caption:empty{display:none}caption:empty~thead{border-top:none!important}\n"] }]
|
|
36
|
+
}], propDecorators: { color: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], headColor: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], alignment: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], striped: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], hover: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], bordered: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], borderless: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], compact: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], captionTop: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], responsive: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQWUsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFPOUUsTUFBTSxPQUFPLGNBQWM7SUFMM0I7UUFvREU7OztXQUdHO1FBQ00sZUFBVSxHQUFvQixZQUFZLENBQUM7S0EwQnJEO0lBdkJDLElBQUksU0FBUztRQUNYLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7MkdBNUVVLGNBQWM7K0ZBQWQsY0FBYyx3UkNUM0IsK3hCQXNCQTsyRkRiYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVU7OEJBU1gsS0FBSztzQkFBYixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGFibGVDb2xvciwgVGFibGVIZWFkQ29sb3IsIFRhYmxlUmVzcG9uc2l2ZSwgVmVydGljYWxBbGlnbm1lbnR9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL2NvcmVcIjtcbmltcG9ydCB7Qm9vbGVhbklucHV0LCBpc1RydWVCb29sZWFuSW5wdXR9IGZyb20gXCIuLi8uLi8uLi91dGlscy9ib29sZWFuLWlucHV0XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFRhYmxlIGNvbG9yXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcj86IFRhYmxlQ29sb3I7XG5cbiAgLyoqXG4gICAqIEhlYWQgdGFibGUgY29sb3JcbiAgICovXG4gIEBJbnB1dCgpIGhlYWRDb2xvcj86IFRhYmxlSGVhZENvbG9yO1xuXG4gIC8qKlxuICAgKiBVc2UgdmVydGljYWwgYWxpZ25tZW50IGNsYXNzZXMgdG8gcmVhbGlnbiB3aGVyZSBuZWVkZWQuXG4gICAqL1xuICBASW5wdXQoKSBhbGlnbm1lbnQ/OiBWZXJ0aWNhbEFsaWdubWVudDtcblxuICAvKipcbiAgICogVXNlIC50YWJsZS1zdHJpcGVkIHRvIGFkZCB6ZWJyYSBzdHJpcGVzIHRvIGVhY2ggdGFibGUgcm93IGNvbnRhaW5lZCBpbiA8dGJvZHk+LlxuICAgKi9cbiAgQElucHV0KCkgc3RyaXBlZD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogQWRkIC50YWJsZS1ob3ZlciB0byBlbmFibGUgaG92ZXIgc3RhdGUgb24gdGFibGUgcm93cyBjb250YWluZWQgaW4gPHRib2R5Pi5cbiAgICovXG4gIEBJbnB1dCgpIGhvdmVyPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBBZGQgLnRhYmxlLWJvcmRlcmVkIHRvIGhhdmUgYm9yZGVycyBvbiBhbGwgc2lkZXMgb2YgdGhlIHRhYmxlIGFuZCBvbiBhbGwgY2VsbHMuXG4gICAqL1xuICBASW5wdXQoKSBib3JkZXJlZD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogQWRkIHRoZSAudGFibGUtYm9yZGVybGVzcyBjbGFzcyBmb3IgYSBib3JkZXJsZXNzIHRhYmxlLlxuICAgKi9cbiAgQElucHV0KCkgYm9yZGVybGVzcz86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogQWRkIC50YWJsZS1zbSB0byBtYWtlIHRhYmxlcyBtb3JlIGNvbXBhY3QgYnkgaGFsdmluZyB0aGUgY2VsbCBwYWRkaW5nLlxuICAgKi9cbiAgQElucHV0KCkgY29tcGFjdD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogVG8gcmVuZGVyIHRoZSA8Y2FwdGlvbj4gb24gdG9wIG9mIHRoZSB0YWJsZVxuICAgKi9cbiAgQElucHV0KCkgY2FwdGlvblRvcD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogUmVzcG9uc2l2ZSB0YWJsZXMgYWxsb3cgeW91IHRvIHNjcm9sbCB0YWJsZXMgaG9yaXpvbnRhbGx5IHdpdGggZWFzZS5cbiAgICogQGRlZmF1bHQgcmVzcG9uc2l2ZVxuICAgKi9cbiAgQElucHV0KCkgcmVzcG9uc2l2ZTogVGFibGVSZXNwb25zaXZlID0gJ3Jlc3BvbnNpdmUnO1xuXG5cbiAgZ2V0IGlzU3RyaXBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc3RyaXBlZCk7XG4gIH1cblxuICBnZXQgaXNIb3ZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuaG92ZXIpO1xuICB9XG5cbiAgZ2V0IGlzQm9yZGVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmJvcmRlcmVkKTtcbiAgfVxuXG4gIGdldCBpc0JvcmRlcmxlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmJvcmRlcmxlc3MpO1xuICB9XG5cbiAgZ2V0IGlzQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuY29tcGFjdCk7XG4gIH1cblxuICBnZXQgaXNDYXB0aW9uVG9wKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5jYXB0aW9uVG9wKTtcbiAgfVxufVxuIiwiPGRpdiBbY2xhc3NdPVwicmVzcG9uc2l2ZSA/ICd0YWJsZS0nICsgcmVzcG9uc2l2ZSA6IHVuZGVmaW5lZFwiPlxuICA8dGFibGUgY2xhc3M9XCJ0YWJsZXt7Y29sb3IgPyAnIHRhYmxlLScgKyBjb2xvciA6ICcnIH19XCJcbiAgICAgICAgIFtjbGFzcy50YWJsZS1zdHJpcGVkXT1cImlzU3RyaXBlZFwiXG4gICAgICAgICBbY2xhc3MudGFibGUtaG92ZXJdPVwiaXNIb3ZlclwiXG4gICAgICAgICBbY2xhc3MudGFibGUtYm9yZGVyZWRdPVwiaXNCb3JkZXJlZFwiXG4gICAgICAgICBbY2xhc3MudGFibGUtYm9yZGVybGVzc109XCJpc0JvcmRlcmxlc3NcIlxuICAgICAgICAgW2NsYXNzLnRhYmxlLXNtXT1cImlzQ29tcGFjdFwiXG4gICAgICAgICBbY2xhc3MuY2FwdGlvbi10b3BdPVwiaXNDYXB0aW9uVG9wXCI+XG4gICAgPGNhcHRpb24+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2FwdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9jYXB0aW9uPlxuICAgIDx0aGVhZCBbY2xhc3NdPVwiaGVhZENvbG9yID8gJ3RhYmxlLScgKyBoZWFkQ29sb3IgOiB1bmRlZmluZWRcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGhlYWRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0Ym9keV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC90Ym9keT5cbiAgICA8dGZvb3Q+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rmb290XVwiPjwvbmctY29udGVudD5cbiAgICA8L3Rmb290PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { isTrueBooleanInput } from '../../../utils/boolean-input';
|
|
3
|
+
import { Tooltip } from 'bootstrap-italia';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TooltipDirective {
|
|
6
|
+
constructor(_elementRef) {
|
|
7
|
+
this._elementRef = _elementRef;
|
|
8
|
+
/**
|
|
9
|
+
* This event fires immediately when the show method is called.
|
|
10
|
+
*/
|
|
11
|
+
this.onShow = new EventEmitter();
|
|
12
|
+
/**
|
|
13
|
+
* This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).
|
|
14
|
+
*/
|
|
15
|
+
this.onShown = new EventEmitter();
|
|
16
|
+
/**
|
|
17
|
+
* This event fires immediately when the hide method is called.
|
|
18
|
+
*/
|
|
19
|
+
this.onHide = new EventEmitter();
|
|
20
|
+
/**
|
|
21
|
+
* This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).
|
|
22
|
+
*/
|
|
23
|
+
this.onHidden = new EventEmitter();
|
|
24
|
+
/**
|
|
25
|
+
* This event fires after the show event when the tooltip template has been added to the DOM.
|
|
26
|
+
*/
|
|
27
|
+
this.onInserted = new EventEmitter();
|
|
28
|
+
this.element = this._elementRef.nativeElement;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Define the tooltip title
|
|
32
|
+
* @param title the tooltip title
|
|
33
|
+
*/
|
|
34
|
+
set title(title) {
|
|
35
|
+
if (title) {
|
|
36
|
+
// this.element.setAttribute("title", title);
|
|
37
|
+
this.element.setAttribute('data-bs-original-title', title);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Define the tooltip placement
|
|
42
|
+
* @param placement
|
|
43
|
+
*/
|
|
44
|
+
set placement(placement) {
|
|
45
|
+
this.element.setAttribute('data-bs-placement', placement);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Indicates whether the title contains html
|
|
49
|
+
* @param html true if contain html
|
|
50
|
+
*/
|
|
51
|
+
set html(html) {
|
|
52
|
+
this.element.setAttribute('data-bs-html', isTrueBooleanInput(html) ? 'true' : 'false');
|
|
53
|
+
}
|
|
54
|
+
ngAfterViewInit() {
|
|
55
|
+
this.element.setAttribute('data-bs-toggle', 'tooltip');
|
|
56
|
+
this.tooltip = Tooltip.getOrCreateInstance(this.element);
|
|
57
|
+
this.element.addEventListener('show.bs.tooltip', event => this.onShow.emit(event));
|
|
58
|
+
this.element.addEventListener('shown.bs.tooltip', event => this.onShown.emit(event));
|
|
59
|
+
this.element.addEventListener('hide.bs.tooltip', event => this.onHide.emit(event));
|
|
60
|
+
this.element.addEventListener('hidden.bs.tooltip', event => this.onHidden.emit(event));
|
|
61
|
+
this.element.addEventListener('inserted.bs.tooltip', event => this.onInserted.emit(event));
|
|
62
|
+
}
|
|
63
|
+
ngOnDestroy() {
|
|
64
|
+
this.dispose();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Shows the tooltip of an item.
|
|
68
|
+
*/
|
|
69
|
+
show() {
|
|
70
|
+
this.tooltip?.show();
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Hide the tooltip of an element.
|
|
74
|
+
*/
|
|
75
|
+
hide() {
|
|
76
|
+
this.tooltip?.hide();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Activate / Deactivate the tooltip of an element
|
|
80
|
+
*/
|
|
81
|
+
toggle() {
|
|
82
|
+
this.tooltip?.toggle();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Hides and destroys the tooltip of an element.
|
|
86
|
+
*/
|
|
87
|
+
dispose() {
|
|
88
|
+
this.tooltip?.dispose();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Gives the tooltip of an element a chance to be shown.
|
|
92
|
+
*/
|
|
93
|
+
enable() {
|
|
94
|
+
this.tooltip?.enable();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Removes the ability to show the tooltip of an element.
|
|
98
|
+
*/
|
|
99
|
+
disable() {
|
|
100
|
+
this.tooltip?.disable();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Toggles the possibility that the tooltip of an element is shown or hidden.
|
|
104
|
+
*/
|
|
105
|
+
toggleEnabled() {
|
|
106
|
+
this.tooltip?.disable();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Updates the position of an element's tooltip.
|
|
110
|
+
*/
|
|
111
|
+
update() {
|
|
112
|
+
this.tooltip?.disable();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
116
|
+
TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TooltipDirective, selector: "[itTooltip]", inputs: { title: ["itTooltip", "title"], placement: ["tooltipPlacement", "placement"], html: ["tooltipHtml", "html"] }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden", onInserted: "onInserted" }, exportAs: ["itTooltip"], ngImport: i0 });
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
118
|
+
type: Directive,
|
|
119
|
+
args: [{
|
|
120
|
+
selector: '[itTooltip]',
|
|
121
|
+
exportAs: 'itTooltip'
|
|
122
|
+
}]
|
|
123
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
|
|
124
|
+
type: Input,
|
|
125
|
+
args: ['itTooltip']
|
|
126
|
+
}], placement: [{
|
|
127
|
+
type: Input,
|
|
128
|
+
args: ['tooltipPlacement']
|
|
129
|
+
}], html: [{
|
|
130
|
+
type: Input,
|
|
131
|
+
args: ['tooltipHtml']
|
|
132
|
+
}], onShow: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}], onShown: [{
|
|
135
|
+
type: Output
|
|
136
|
+
}], onHide: [{
|
|
137
|
+
type: Output
|
|
138
|
+
}], onHidden: [{
|
|
139
|
+
type: Output
|
|
140
|
+
}], onInserted: [{
|
|
141
|
+
type: Output
|
|
142
|
+
}] } });
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RyxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU0zQyxNQUFNLE9BQU8sZ0JBQWdCO0lBeUQzQixZQUNtQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTdCMUM7O1dBRUc7UUFDTyxXQUFNLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0Q7O1dBRUc7UUFDTyxZQUFPLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUQ7O1dBRUc7UUFDTyxXQUFNLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0Q7O1dBRUc7UUFDTyxhQUFRLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0Q7O1dBRUc7UUFDTyxlQUFVLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFRN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUNoRCxDQUFDO0lBM0REOzs7T0FHRztJQUNILElBQXdCLEtBQUssQ0FBQyxLQUF5QjtRQUNyRCxJQUFJLEtBQUssRUFBRTtZQUNULDZDQUE2QztZQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUErQixTQUFTLENBQUMsU0FBMkI7UUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQTBCLElBQUksQ0FBQyxJQUFrQjtRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQW9DRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLGFBQWE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs2R0FwSVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCO2lHQU95QixLQUFLO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBV2EsU0FBUztzQkFBdkMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBUUMsSUFBSTtzQkFBN0IsS0FBSzt1QkFBQyxhQUFhO2dCQU9WLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxPQUFPO3NCQUFoQixNQUFNO2dCQUtHLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50UGxhY2VtZW50IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnYm9vdHN0cmFwLWl0YWxpYSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpdFRvb2x0aXBdJyxcbiAgZXhwb3J0QXM6ICdpdFRvb2x0aXAnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHRvb2x0aXAgdGl0bGVcbiAgICogQHBhcmFtIHRpdGxlIHRoZSB0b29sdGlwIHRpdGxlXG4gICAqL1xuICBASW5wdXQoJ2l0VG9vbHRpcCcpIHNldCB0aXRsZSh0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICAvLyB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwidGl0bGVcIiwgdGl0bGUpO1xuICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1icy1vcmlnaW5hbC10aXRsZScsIHRpdGxlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHRoZSB0b29sdGlwIHBsYWNlbWVudFxuICAgKiBAcGFyYW0gcGxhY2VtZW50XG4gICAqL1xuICBASW5wdXQoJ3Rvb2x0aXBQbGFjZW1lbnQnKSBzZXQgcGxhY2VtZW50KHBsYWNlbWVudDogRWxlbWVudFBsYWNlbWVudCkge1xuICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtcGxhY2VtZW50JywgcGxhY2VtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGl0bGUgY29udGFpbnMgaHRtbFxuICAgKiBAcGFyYW0gaHRtbCB0cnVlIGlmIGNvbnRhaW4gaHRtbFxuICAgKi9cbiAgQElucHV0KCd0b29sdGlwSHRtbCcpIHNldCBodG1sKGh0bWw6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtaHRtbCcsIGlzVHJ1ZUJvb2xlYW5JbnB1dChodG1sKSA/ICd0cnVlJyA6ICdmYWxzZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgaW1tZWRpYXRlbHkgd2hlbiB0aGUgc2hvdyBtZXRob2QgaXMgY2FsbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uU2hvdzogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdG9vbHRpcCBoYXMgYmVlbiBtYWRlIHZpc2libGUgdG8gdGhlIHVzZXIgKGl0IHdpbGwgd2FpdCBmb3IgdGhlIENTUyB0cmFuc2l0aW9ucyB0byBjb21wbGV0ZSkuXG4gICAqL1xuICBAT3V0cHV0KCkgb25TaG93bjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBmaXJlcyBpbW1lZGlhdGVseSB3aGVuIHRoZSBoaWRlIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgb25IaWRlOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIHJhaXNlZCB3aGVuIHRoZSB0b29sdGlwIGhhcyBmaW5pc2hlZCBiZWluZyBoaWRkZW4gZnJvbSB0aGUgdXNlciAoaXQgd2lsbCB3YWl0IGZvciB0aGUgQ1NTIHRyYW5zaXRpb25zIHRvIGNvbXBsZXRlKS5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBmaXJlcyBhZnRlciB0aGUgc2hvdyBldmVudCB3aGVuIHRoZSB0b29sdGlwIHRlbXBsYXRlIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBET00uXG4gICAqL1xuICBAT3V0cHV0KCkgb25JbnNlcnRlZDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHRvb2x0aXA/OiBUb29sdGlwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdG9nZ2xlJywgJ3Rvb2x0aXAnKTtcbiAgICB0aGlzLnRvb2x0aXAgPSBUb29sdGlwLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcy5lbGVtZW50KTtcblxuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzaG93LmJzLnRvb2x0aXAnLCBldmVudCA9PiB0aGlzLm9uU2hvdy5lbWl0KGV2ZW50KSk7XG4gICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Nob3duLmJzLnRvb2x0aXAnLCBldmVudCA9PiB0aGlzLm9uU2hvd24uZW1pdChldmVudCkpO1xuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdoaWRlLmJzLnRvb2x0aXAnLCBldmVudCA9PiB0aGlzLm9uSGlkZS5lbWl0KGV2ZW50KSk7XG4gICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2hpZGRlbi5icy50b29sdGlwJywgZXZlbnQgPT4gdGhpcy5vbkhpZGRlbi5lbWl0KGV2ZW50KSk7XG4gICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2luc2VydGVkLmJzLnRvb2x0aXAnLCBldmVudCA9PiB0aGlzLm9uSW5zZXJ0ZWQuZW1pdChldmVudCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIHRvb2x0aXAgb2YgYW4gaXRlbS5cbiAgICovXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMudG9vbHRpcD8uc2hvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGUgdGhlIHRvb2x0aXAgb2YgYW4gZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9vbHRpcD8uaGlkZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIC8gRGVhY3RpdmF0ZSB0aGUgdG9vbHRpcCBvZiBhbiBlbGVtZW50XG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMudG9vbHRpcD8udG9nZ2xlKCk7XG4gIH1cblxuICAvKipcbiAgICogSGlkZXMgYW5kIGRlc3Ryb3lzIHRoZSB0b29sdGlwIG9mIGFuIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvb2x0aXA/LmRpc3Bvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlcyB0aGUgdG9vbHRpcCBvZiBhbiBlbGVtZW50IGEgY2hhbmNlIHRvIGJlIHNob3duLlxuICAgKi9cbiAgcHVibGljIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvb2x0aXA/LmVuYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGFiaWxpdHkgdG8gc2hvdyB0aGUgdG9vbHRpcCBvZiBhbiBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgdGhpcy50b29sdGlwPy5kaXNhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGUgdG9vbHRpcCBvZiBhbiBlbGVtZW50IGlzIHNob3duIG9yIGhpZGRlbi5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVFbmFibGVkKCk6IHZvaWQge1xuICAgIHRoaXMudG9vbHRpcD8uZGlzYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQncyB0b29sdGlwLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvb2x0aXA/LmRpc2FibGUoKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { AbstractFormComponent } from '../../../abstracts/abstract-form-component';
|
|
3
|
+
import { isTrueBooleanInput } from '../../../utils/boolean-input';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
export class CheckboxComponent extends AbstractFormComponent {
|
|
8
|
+
get isIndeterminate() {
|
|
9
|
+
return isTrueBooleanInput(this.indeterminate);
|
|
10
|
+
}
|
|
11
|
+
get isGroup() {
|
|
12
|
+
return isTrueBooleanInput(this.group);
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
super.ngOnInit();
|
|
16
|
+
if (this.control.value || this.checked === undefined) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const value = isTrueBooleanInput(this.checked);
|
|
20
|
+
this.writeValue(value);
|
|
21
|
+
return this.onChange(value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CheckboxComponent, selector: "it-checkbox[id]", inputs: { toggle: "toggle", inline: "inline", group: "group", checked: "checked", indeterminate: "indeterminate" }, usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div class=\"form-check\"\n [class.form-check-group]=\"isGroup\"\n [class.form-check-inline]=\"inline\">\n\n <div *ngIf=\"toggle; else defaultStyle\" class=\"toggles\">\n <label [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n <input [id]=\"id\"\n type=\"checkbox\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <span class=\"lever\"></span>\n </label>\n </div>\n\n <ng-template #defaultStyle>\n <input [id]=\"id\"\n type=\"checkbox\"\n class=\"form-check-input\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [class.semi-checked]=\"isIndeterminate\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <label class=\"form-check-label\" [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n </label>\n </ng-template>\n\n <small *ngIf=\"isGroup\" [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n\n <div *ngIf=\"isInvalid && isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"isInvalid && !isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n</ng-template>\n\n<ng-template #htmlLabel>\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customLabel.hasChildNodes()\">{{label}}</ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'it-checkbox[id]', template: "<ng-container>\n <div class=\"form-check\"\n [class.form-check-group]=\"isGroup\"\n [class.form-check-inline]=\"inline\">\n\n <div *ngIf=\"toggle; else defaultStyle\" class=\"toggles\">\n <label [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n <input [id]=\"id\"\n type=\"checkbox\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <span class=\"lever\"></span>\n </label>\n </div>\n\n <ng-template #defaultStyle>\n <input [id]=\"id\"\n type=\"checkbox\"\n class=\"form-check-input\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [class.semi-checked]=\"isIndeterminate\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <label class=\"form-check-label\" [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n </label>\n </ng-template>\n\n <small *ngIf=\"isGroup\" [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n\n <div *ngIf=\"isInvalid && isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"isInvalid && !isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n</ng-template>\n\n<ng-template #htmlLabel>\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customLabel.hasChildNodes()\">{{label}}</ng-container>\n</ng-template>\n" }]
|
|
29
|
+
}], propDecorators: { toggle: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], inline: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], group: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], checked: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], indeterminate: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFNaEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUE4QjtJQTJCbkUsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3BELE9BQU87U0FDUjtRQUVELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOzs4R0E3Q1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsa01DUjlCLDYrREF5REE7MkZEakRhLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxpQkFBaUI7OEJBUWxCLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYWJzdHJhY3RzL2Fic3RyYWN0LWZvcm0tY29tcG9uZW50JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWNoZWNrYm94W2lkXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZvcm1Db21wb25lbnQ8Ym9vbGVhbj4ge1xuXG4gIC8qKlxuICAgKiBJZiBzaG93IGNoZWNrYm94IGFzIHRvZ2dsZVxuICAgKi9cbiAgQElucHV0KCkgdG9nZ2xlPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBJZiBzaG93IGNoZWNrYm94IGlubGluZVxuICAgKi9cbiAgQElucHV0KCkgaW5saW5lPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBJZiBpcyBjaGVja2JveCBncm91cFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXA/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIElmIGNoZWNrYm94IGlzIGNoZWNrZWRcbiAgICovXG4gIEBJbnB1dCgpIGNoZWNrZWQ/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIElmIGNoZWNrYm94IGlzIGluZGV0ZXJtaW5hdGVcbiAgICovXG4gIEBJbnB1dCgpIGluZGV0ZXJtaW5hdGU/OiBCb29sZWFuSW5wdXQ7XG5cbiAgZ2V0IGlzSW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuaW5kZXRlcm1pbmF0ZSk7XG4gIH1cblxuICBnZXQgaXNHcm91cCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuZ3JvdXApO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUgfHwgdGhpcy5jaGVja2VkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmNoZWNrZWQpO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiXG4gICAgICAgW2NsYXNzLmZvcm0tY2hlY2stZ3JvdXBdPVwiaXNHcm91cFwiXG4gICAgICAgW2NsYXNzLmZvcm0tY2hlY2staW5saW5lXT1cImlubGluZVwiPlxuXG4gICAgPGRpdiAqbmdJZj1cInRvZ2dsZTsgZWxzZSBkZWZhdWx0U3R5bGVcIiBjbGFzcz1cInRvZ2dsZXNcIj5cbiAgICAgIDxsYWJlbCBbZm9yXT1cImlkXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJodG1sTGFiZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGlucHV0IFtpZF09XCJpZFwiXG4gICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZCArICctaGVscCdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsZXZlclwiPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTdHlsZT5cbiAgICAgIDxpbnB1dCBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcbiAgICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJpc0ludmFsaWRcIlxuICAgICAgICAgICAgIFtjbGFzcy5pcy12YWxpZF09XCJpc1ZhbGlkXCJcbiAgICAgICAgICAgICBbY2xhc3Muc2VtaS1jaGVja2VkXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWhlbHAnXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2Zvcl09XCJpZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaHRtbExhYmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8c21hbGwgKm5nSWY9XCJpc0dyb3VwXCIgW2lkXT1cImlkICsgJy1oZWxwJ1wiIGNsYXNzPVwiZm9ybS10ZXh0XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zbWFsbD5cblxuICAgIDxkaXYgKm5nSWY9XCJpc0ludmFsaWQgJiYgaXNHcm91cFwiIGNsYXNzPVwiZm9ybS1mZWVkYmFjayBqdXN0LXZhbGlkYXRlLWVycm9yLWxhYmVsXCIgW2lkXT1cImlkICsgJy1lcnJvcidcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkICYmICFpc0dyb3VwXCIgY2xhc3M9XCJmb3JtLWZlZWRiYWNrIGp1c3QtdmFsaWRhdGUtZXJyb3ItbGFiZWxcIiBbaWRdPVwiaWQgKyAnLWVycm9yJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Vycm9yPlxuICA8ZGl2ICNjdXN0b21FcnJvcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXJyb3JdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21FcnJvci5oYXNDaGlsZE5vZGVzKClcIj57e2ludmFsaWRNZXNzYWdlIHwgYXN5bmN9fTwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNodG1sTGFiZWw+XG4gIDxkaXYgI2N1c3RvbUxhYmVsPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYWJlbF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbUxhYmVsLmhhc0NoaWxkTm9kZXMoKVwiPnt7bGFiZWx9fTwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|