@agorapulse/ui-components 2.5.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agorapulse-ui-components-13.0.2.tgz +0 -0
- package/agorapulse-ui-components.d.ts +1 -6
- package/esm2020/agorapulse-ui-components.mjs +5 -0
- package/esm2020/index.mjs +58 -0
- package/esm2020/src/lib/add-comment/add-comment.component.mjs +62 -0
- package/esm2020/src/lib/agorapulse-ui-components.module.mjs +532 -0
- package/esm2020/src/lib/avatar/avatar.component.mjs +92 -0
- package/{esm2015/src/lib/confirm-modal/confirm-modal-texts.model.js → esm2020/src/lib/confirm-modal/confirm-modal-texts.model.mjs} +0 -0
- package/esm2020/src/lib/confirm-modal/confirm-modal.component.mjs +61 -0
- package/esm2020/src/lib/datepicker/datepicker.component.mjs +219 -0
- package/esm2020/src/lib/directives/autosize-textarea.directive.mjs +43 -0
- package/esm2020/src/lib/directives/default-image.directive.mjs +29 -0
- package/esm2020/src/lib/directives/ellipsis.directive.mjs +87 -0
- package/esm2020/src/lib/directives/equal-validator.directive.mjs +64 -0
- package/esm2020/src/lib/directives/frozen-gif.directive.mjs +116 -0
- package/esm2020/src/lib/directives/multi-style-text.directive.mjs +101 -0
- package/esm2020/src/lib/directives/truncate-tooltip.directive.mjs +33 -0
- package/esm2020/src/lib/dots-stepper/dots-stepper.component.mjs +43 -0
- package/esm2020/src/lib/edit-tag-modal/edit-tags-modal.component.mjs +147 -0
- package/{esm2015/src/lib/edit-tag-modal/model/edit-tags-modal.model.js → esm2020/src/lib/edit-tag-modal/model/edit-tags-modal.model.mjs} +0 -0
- package/esm2020/src/lib/feature-onboarding/feature-onboarding.component.mjs +35 -0
- package/esm2020/src/lib/image-carousel/image-carousel.component.mjs +152 -0
- package/{esm2015/src/lib/lead-modal/lead-info.model.js → esm2020/src/lib/lead-modal/lead-info.model.mjs} +0 -0
- package/esm2020/src/lib/lead-modal/lead-modal.component.mjs +49 -0
- package/esm2020/src/lib/media-display-overlay/media-display-overlay-dialog.component.mjs +87 -0
- package/esm2020/src/lib/modal/modal.component.mjs +96 -0
- package/esm2020/src/lib/neo-timepicker/neo-timepicker.component.mjs +388 -0
- package/esm2020/src/lib/notification/notification.component.mjs +17 -0
- package/esm2020/src/lib/overlay/overlay-dialog-service.component.mjs +61 -0
- package/esm2020/src/lib/overlay/overlay-dialog.component.mjs +33 -0
- package/esm2020/src/lib/overlay-in-div/overlay-in-div.component.mjs +27 -0
- package/esm2020/src/lib/paginator/paginator-button/paginator-button.component.mjs +23 -0
- package/esm2020/src/lib/paginator/paginator.component.mjs +54 -0
- package/esm2020/src/lib/password-input/password-input.component.mjs +68 -0
- package/esm2020/src/lib/password-strength-bar/password-strength-bar.component.mjs +83 -0
- package/esm2020/src/lib/password-strength-display-bar/password-strength-display-bar.component.mjs +45 -0
- package/esm2020/src/lib/phone-number-input/phone-number-input.component.mjs +144 -0
- package/esm2020/src/lib/places/place-list.component.mjs +11 -0
- package/esm2020/src/lib/places/place.component.mjs +14 -0
- package/{esm2015/src/lib/popmenu/options.js → esm2020/src/lib/popmenu/options.mjs} +0 -0
- package/{esm2015/src/lib/popmenu/popmenu-options.interface.js → esm2020/src/lib/popmenu/popmenu-options.interface.mjs} +0 -0
- package/{esm2015/src/lib/popmenu/popmenu-options.service.js → esm2020/src/lib/popmenu/popmenu-options.service.mjs} +0 -0
- package/esm2020/src/lib/popmenu/popmenu.component.mjs +344 -0
- package/esm2020/src/lib/popmenu/popmenu.directive.mjs +235 -0
- package/esm2020/src/lib/popmenu/popmenu.module.mjs +45 -0
- package/esm2020/src/lib/slide-toggle/slide-toggle.component.mjs +66 -0
- package/esm2020/src/lib/snackbar/snackbar.component.mjs +21 -0
- package/esm2020/src/lib/snackbars-thread/component/snackbars-thread.component.mjs +70 -0
- package/{esm2015/src/lib/snackbars-thread/model/snackbars-thread.model.js → esm2020/src/lib/snackbars-thread/model/snackbars-thread.model.mjs} +0 -0
- package/esm2020/src/lib/snackbars-thread/service/snackbars-thread.service.mjs +41 -0
- package/{esm2015/src/lib/snackbars-thread/utils/const/snackbars-thread.const.js → esm2020/src/lib/snackbars-thread/utils/const/snackbars-thread.const.mjs} +0 -0
- package/esm2020/src/lib/splashscreen/splashscreen.component.mjs +43 -0
- package/esm2020/src/lib/star-rating/star-rating.component.mjs +43 -0
- package/{esm2015/src/lib/stepper/step.model.js → esm2020/src/lib/stepper/step.model.mjs} +0 -0
- package/esm2020/src/lib/stepper/stepper.component.mjs +36 -0
- package/esm2020/src/lib/tags/tag-list.component.mjs +11 -0
- package/esm2020/src/lib/tags/tag.component.mjs +20 -0
- package/esm2020/src/lib/tags-selector/tags-selector.component.mjs +81 -0
- package/esm2020/src/lib/timepicker/timepicker.component.mjs +383 -0
- package/esm2020/src/lib/tooltip-neo/tooltip-neo.component.mjs +49 -0
- package/{esm2015/src/lib/tooltip-neo/tooltip-neo.const.js → esm2020/src/lib/tooltip-neo/tooltip-neo.const.mjs} +0 -0
- package/esm2020/src/lib/tooltip-neo/tooltip-neo.directive.mjs +114 -0
- package/{esm2015/src/lib/tooltip-neo/tooltip-neo.model.js → esm2020/src/lib/tooltip-neo/tooltip-neo.model.mjs} +0 -0
- package/esm2020/src/lib/tooltip-neo/tooltip-neo.service.mjs +17 -0
- package/{esm2015/src/lib/try-popup/try-popup-texts.model.js → esm2020/src/lib/try-popup/try-popup-texts.model.mjs} +0 -0
- package/esm2020/src/lib/try-popup/try-popup.component.mjs +37 -0
- package/fesm2015/agorapulse-ui-components.mjs +4581 -0
- package/fesm2015/agorapulse-ui-components.mjs.map +1 -0
- package/fesm2020/agorapulse-ui-components.mjs +4554 -0
- package/fesm2020/agorapulse-ui-components.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +31 -20
- package/src/lib/add-comment/add-comment.component.d.ts +3 -0
- package/src/lib/agorapulse-ui-components.module.d.ts +80 -0
- package/src/lib/avatar/avatar.component.d.ts +3 -0
- package/src/lib/confirm-modal/confirm-modal.component.d.ts +3 -0
- package/src/lib/datepicker/datepicker.component.d.ts +3 -0
- package/src/lib/directives/autosize-textarea.directive.d.ts +3 -0
- package/src/lib/directives/default-image.directive.d.ts +3 -0
- package/src/lib/directives/ellipsis.directive.d.ts +3 -0
- package/src/lib/directives/equal-validator.directive.d.ts +3 -0
- package/src/lib/directives/frozen-gif.directive.d.ts +3 -0
- package/src/lib/directives/multi-style-text.directive.d.ts +3 -0
- package/src/lib/directives/truncate-tooltip.directive.d.ts +3 -0
- package/src/lib/dots-stepper/dots-stepper.component.d.ts +3 -0
- package/src/lib/edit-tag-modal/edit-tags-modal.component.d.ts +3 -0
- package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +3 -0
- package/src/lib/image-carousel/image-carousel.component.d.ts +3 -0
- package/src/lib/lead-modal/lead-modal.component.d.ts +3 -0
- package/src/lib/media-display-overlay/media-display-overlay-dialog.component.d.ts +3 -0
- package/src/lib/modal/modal.component.d.ts +3 -0
- package/src/lib/neo-timepicker/neo-timepicker.component.d.ts +3 -0
- package/src/lib/notification/notification.component.d.ts +3 -0
- package/src/lib/overlay/overlay-dialog-service.component.d.ts +3 -0
- package/src/lib/overlay/overlay-dialog.component.d.ts +3 -0
- package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +3 -0
- package/src/lib/paginator/paginator-button/paginator-button.component.d.ts +3 -0
- package/src/lib/paginator/paginator.component.d.ts +3 -0
- package/src/lib/password-input/password-input.component.d.ts +3 -0
- package/src/lib/password-strength-bar/password-strength-bar.component.d.ts +3 -0
- package/src/lib/password-strength-display-bar/password-strength-display-bar.component.d.ts +3 -0
- package/src/lib/phone-number-input/phone-number-input.component.d.ts +3 -0
- package/src/lib/places/place-list.component.d.ts +3 -0
- package/src/lib/places/place.component.d.ts +3 -0
- package/src/lib/popmenu/popmenu.component.d.ts +3 -0
- package/src/lib/popmenu/popmenu.directive.d.ts +3 -0
- package/src/lib/popmenu/popmenu.module.d.ts +8 -0
- package/src/lib/slide-toggle/slide-toggle.component.d.ts +3 -0
- package/src/lib/snackbar/snackbar.component.d.ts +3 -0
- package/src/lib/snackbars-thread/component/snackbars-thread.component.d.ts +3 -0
- package/src/lib/snackbars-thread/service/snackbars-thread.service.d.ts +3 -0
- package/src/lib/splashscreen/splashscreen.component.d.ts +3 -0
- package/src/lib/star-rating/star-rating.component.d.ts +3 -0
- package/src/lib/stepper/stepper.component.d.ts +3 -0
- package/src/lib/tags/tag-list.component.d.ts +3 -0
- package/src/lib/tags/tag.component.d.ts +3 -0
- package/src/lib/tags-selector/tags-selector.component.d.ts +3 -0
- package/src/lib/timepicker/timepicker.component.d.ts +3 -0
- package/src/lib/tooltip-neo/tooltip-neo.component.d.ts +3 -0
- package/src/lib/tooltip-neo/tooltip-neo.directive.d.ts +20 -17
- package/src/lib/tooltip-neo/tooltip-neo.service.d.ts +3 -0
- package/src/lib/try-popup/try-popup.component.d.ts +3 -0
- package/agorapulse-ui-components-2.5.1.tgz +0 -0
- package/agorapulse-ui-components.metadata.json +0 -1
- package/bundles/agorapulse-ui-components.umd.js +0 -4825
- package/bundles/agorapulse-ui-components.umd.js.map +0 -1
- package/esm2015/agorapulse-ui-components.js +0 -11
- package/esm2015/index.js +0 -57
- package/esm2015/src/lib/add-comment/add-comment.component.js +0 -54
- package/esm2015/src/lib/agorapulse-ui-components.module.js +0 -285
- package/esm2015/src/lib/avatar/avatar.component.js +0 -82
- package/esm2015/src/lib/confirm-modal/confirm-modal.component.js +0 -59
- package/esm2015/src/lib/datepicker/datepicker.component.js +0 -213
- package/esm2015/src/lib/directives/autosize-textarea.directive.js +0 -43
- package/esm2015/src/lib/directives/default-image.directive.js +0 -25
- package/esm2015/src/lib/directives/ellipsis.directive.js +0 -82
- package/esm2015/src/lib/directives/equal-validator.directive.js +0 -53
- package/esm2015/src/lib/directives/frozen-gif.directive.js +0 -113
- package/esm2015/src/lib/directives/multi-style-text.directive.js +0 -103
- package/esm2015/src/lib/directives/truncate-tooltip.directive.js +0 -36
- package/esm2015/src/lib/dots-stepper/dots-stepper.component.js +0 -41
- package/esm2015/src/lib/edit-tag-modal/edit-tags-modal.component.js +0 -129
- package/esm2015/src/lib/feature-onboarding/feature-onboarding.component.js +0 -35
- package/esm2015/src/lib/image-carousel/image-carousel.component.js +0 -143
- package/esm2015/src/lib/lead-modal/lead-modal.component.js +0 -47
- package/esm2015/src/lib/media-display-overlay/media-display-overlay-dialog.component.js +0 -87
- package/esm2015/src/lib/modal/modal.component.js +0 -88
- package/esm2015/src/lib/neo-timepicker/neo-timepicker.component.js +0 -371
- package/esm2015/src/lib/notification/notification.component.js +0 -18
- package/esm2015/src/lib/overlay/overlay-dialog-service.component.js +0 -62
- package/esm2015/src/lib/overlay/overlay-dialog.component.js +0 -33
- package/esm2015/src/lib/overlay-in-div/overlay-in-div.component.js +0 -23
- package/esm2015/src/lib/paginator/paginator-button/paginator-button.component.js +0 -22
- package/esm2015/src/lib/paginator/paginator.component.js +0 -47
- package/esm2015/src/lib/password-input/password-input.component.js +0 -65
- package/esm2015/src/lib/password-strength-bar/password-strength-bar.component.js +0 -82
- package/esm2015/src/lib/password-strength-display-bar/password-strength-display-bar.component.js +0 -41
- package/esm2015/src/lib/phone-number-input/phone-number-input.component.js +0 -123
- package/esm2015/src/lib/places/place-list.component.js +0 -12
- package/esm2015/src/lib/places/place.component.js +0 -15
- package/esm2015/src/lib/popmenu/popmenu.component.js +0 -322
- package/esm2015/src/lib/popmenu/popmenu.directive.js +0 -215
- package/esm2015/src/lib/popmenu/popmenu.module.js +0 -38
- package/esm2015/src/lib/slide-toggle/slide-toggle.component.js +0 -59
- package/esm2015/src/lib/snackbar/snackbar.component.js +0 -22
- package/esm2015/src/lib/snackbars-thread/component/snackbars-thread.component.js +0 -50
- package/esm2015/src/lib/snackbars-thread/service/snackbars-thread.service.js +0 -44
- package/esm2015/src/lib/splashscreen/splashscreen.component.js +0 -37
- package/esm2015/src/lib/star-rating/star-rating.component.js +0 -38
- package/esm2015/src/lib/stepper/stepper.component.js +0 -37
- package/esm2015/src/lib/tags/tag-list.component.js +0 -12
- package/esm2015/src/lib/tags/tag.component.js +0 -20
- package/esm2015/src/lib/tags-selector/tags-selector.component.js +0 -73
- package/esm2015/src/lib/timepicker/timepicker.component.js +0 -375
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.component.js +0 -46
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.directive.js +0 -107
- package/esm2015/src/lib/tooltip-neo/tooltip-neo.service.js +0 -15
- package/esm2015/src/lib/try-popup/try-popup.component.js +0 -33
- package/fesm2015/agorapulse-ui-components.js +0 -4176
- package/fesm2015/agorapulse-ui-components.js.map +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Directive, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* expand textarea to fit content. Doesn't shrink.
|
|
5
|
+
*/
|
|
6
|
+
export class AutosizeTextareaDirective {
|
|
7
|
+
constructor(element) {
|
|
8
|
+
this.element = element;
|
|
9
|
+
}
|
|
10
|
+
onInput() {
|
|
11
|
+
this.resize();
|
|
12
|
+
}
|
|
13
|
+
ngAfterContentChecked() {
|
|
14
|
+
this.resize();
|
|
15
|
+
}
|
|
16
|
+
resize() {
|
|
17
|
+
const style = this.element.nativeElement.style;
|
|
18
|
+
const scrollHeight = this.element.nativeElement.scrollHeight;
|
|
19
|
+
const actualHeight = this.element.nativeElement.offsetHeight;
|
|
20
|
+
if (AutosizeTextareaDirective.maxHeight < scrollHeight) {
|
|
21
|
+
// we arrived at the max
|
|
22
|
+
style.overflow = 'auto';
|
|
23
|
+
style.height = `${AutosizeTextareaDirective.maxHeight}px`;
|
|
24
|
+
}
|
|
25
|
+
else if (actualHeight < scrollHeight) {
|
|
26
|
+
style.overflow = 'hidden';
|
|
27
|
+
style.height = `${scrollHeight}px`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
AutosizeTextareaDirective.maxHeight = 200;
|
|
32
|
+
/** @nocollapse */ /** @nocollapse */ AutosizeTextareaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AutosizeTextareaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
33
|
+
/** @nocollapse */ /** @nocollapse */ AutosizeTextareaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: AutosizeTextareaDirective, selector: "textarea[ap-autosize]", host: { listeners: { "input": "onInput()" } }, ngImport: i0 });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AutosizeTextareaDirective, decorators: [{
|
|
35
|
+
type: Directive,
|
|
36
|
+
args: [{
|
|
37
|
+
selector: 'textarea[ap-autosize]'
|
|
38
|
+
}]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onInput: [{
|
|
40
|
+
type: HostListener,
|
|
41
|
+
args: ['input']
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b3NpemUtdGV4dGFyZWEuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9hdXRvc2l6ZS10ZXh0YXJlYS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt6Rjs7R0FFRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFJbEMsWUFBbUIsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUFHLENBQUM7SUFHbkMsT0FBTztRQUNWLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTTtRQUNULE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQzdELElBQUkseUJBQXlCLENBQUMsU0FBUyxHQUFHLFlBQVksRUFBRTtZQUNwRCx3QkFBd0I7WUFDeEIsS0FBSyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDeEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLHlCQUF5QixDQUFDLFNBQVMsSUFBSSxDQUFDO1NBQzdEO2FBQU0sSUFBSSxZQUFZLEdBQUcsWUFBWSxFQUFFO1lBQ3BDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztTQUN0QztJQUNMLENBQUM7O0FBekJNLG1DQUFTLEdBQVcsR0FBSSxDQUFBOzRKQUZ0Qix5QkFBeUI7Z0pBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQU5yQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7aUJBQ3BDO2lHQVdVLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0ZXh0YXJlYVthcC1hdXRvc2l6ZV0nXG59KVxuLyoqXG4gKiBleHBhbmQgdGV4dGFyZWEgdG8gZml0IGNvbnRlbnQuIERvZXNuJ3Qgc2hyaW5rLlxuICovXG5leHBvcnQgY2xhc3MgQXV0b3NpemVUZXh0YXJlYURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuXG4gICAgc3RhdGljIG1heEhlaWdodDogbnVtYmVyID0gMjAwO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gICAgcHVibGljIG9uSW5wdXQoKSB7XG4gICAgICAgIHRoaXMucmVzaXplKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzaXplKCkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlO1xuICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGFjdHVhbEhlaWdodCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgaWYgKEF1dG9zaXplVGV4dGFyZWFEaXJlY3RpdmUubWF4SGVpZ2h0IDwgc2Nyb2xsSGVpZ2h0KSB7XG4gICAgICAgICAgICAvLyB3ZSBhcnJpdmVkIGF0IHRoZSBtYXhcbiAgICAgICAgICAgIHN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICAgICAgICAgICAgc3R5bGUuaGVpZ2h0ID0gYCR7QXV0b3NpemVUZXh0YXJlYURpcmVjdGl2ZS5tYXhIZWlnaHR9cHhgO1xuICAgICAgICB9IGVsc2UgaWYgKGFjdHVhbEhlaWdodCA8IHNjcm9sbEhlaWdodCkge1xuICAgICAgICAgICAgc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIHN0eWxlLmhlaWdodCA9IGAke3Njcm9sbEhlaWdodH1weGA7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DefaultImageDirective {
|
|
4
|
+
updateUrl() {
|
|
5
|
+
if (this.default) {
|
|
6
|
+
this.src = this.default;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
this.src = 'assets/lib-ui-components/img/default-avatar.png';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** @nocollapse */ /** @nocollapse */ DefaultImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
+
/** @nocollapse */ /** @nocollapse */ DefaultImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: DefaultImageDirective, selector: "img[default]", inputs: { src: "src", default: "default" }, host: { listeners: { "error": "updateUrl()" }, properties: { "src": "src" } }, ngImport: i0 });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DefaultImageDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: 'img[default]',
|
|
19
|
+
host: {
|
|
20
|
+
'(error)': 'updateUrl()',
|
|
21
|
+
'[src]': 'src'
|
|
22
|
+
}
|
|
23
|
+
}]
|
|
24
|
+
}], propDecorators: { src: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], default: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1pbWFnZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL2RlZmF1bHQtaW1hZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQVMvQyxNQUFNLE9BQU8scUJBQXFCO0lBSTlCLFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDM0I7YUFBTTtZQUNILElBQUksQ0FBQyxHQUFHLEdBQUcsaURBQWlELENBQUM7U0FDaEU7SUFDTCxDQUFDOzt3SkFWUSxxQkFBcUI7NElBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQVBqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixJQUFJLEVBQUU7d0JBQ0YsU0FBUyxFQUFFLGFBQWE7d0JBQ3hCLE9BQU8sRUFBRSxLQUFLO3FCQUNqQjtpQkFDSjs4QkFFWSxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbWdbZGVmYXVsdF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhlcnJvciknOiAndXBkYXRlVXJsKCknLFxuICAgICAgICAnW3NyY10nOiAnc3JjJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdEltYWdlRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoKSBzcmM6IHN0cmluZztcbiAgICBASW5wdXQoKSBkZWZhdWx0OiBzdHJpbmc7XG5cbiAgICB1cGRhdGVVcmwoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuc3JjID0gdGhpcy5kZWZhdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zcmMgPSAnYXNzZXRzL2xpYi11aS1jb21wb25lbnRzL2ltZy9kZWZhdWx0LWF2YXRhci5wbmcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Removes excess text from element until it fits in elements
|
|
5
|
+
* and appends a ellipsis symbol to end of text. This requires that
|
|
6
|
+
* the elements height be fixed
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```html
|
|
10
|
+
* <p apEllipsis>Ullamco esse laborum</p>
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
export class EllipsisDirective {
|
|
15
|
+
constructor(el) {
|
|
16
|
+
this.el = el;
|
|
17
|
+
this.apEllipsisClip = false;
|
|
18
|
+
this.apEllipsisChar = '...';
|
|
19
|
+
this.apEllipsisClickable = false;
|
|
20
|
+
this.apEllipsisRemovedElementsCount = new EventEmitter();
|
|
21
|
+
this.apEllipsisRemovedText = new EventEmitter();
|
|
22
|
+
}
|
|
23
|
+
get hasOverflow() {
|
|
24
|
+
const el = this.el.nativeElement;
|
|
25
|
+
return (el.scrollHeight > el.offsetHeight) || (el.scrollWidth > el.offsetWidth);
|
|
26
|
+
}
|
|
27
|
+
ngAfterContentChecked() {
|
|
28
|
+
this.clipText();
|
|
29
|
+
}
|
|
30
|
+
clipText() {
|
|
31
|
+
const el = this.el.nativeElement;
|
|
32
|
+
let text = el.innerText;
|
|
33
|
+
let removedText = '';
|
|
34
|
+
if (this.apEllipsisIndex > -1) {
|
|
35
|
+
removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;
|
|
36
|
+
text = text.substring(0, this.apEllipsisIndex);
|
|
37
|
+
el.innerText = `${text}${this.apEllipsisChar}`;
|
|
38
|
+
if (this.apEllipsisClickable) {
|
|
39
|
+
el.addEventListener('click', () => {
|
|
40
|
+
el.innerText = `${text}${removedText}`;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
while (this.hasOverflow && text.length > 0) {
|
|
46
|
+
removedText = text[text.length - 1] + removedText;
|
|
47
|
+
text = text.substring(0, text.length - 1);
|
|
48
|
+
el.innerText = `${text}${this.apEllipsisChar}`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (this.apEllipsisSeparator) {
|
|
52
|
+
const removedElementsCount = removedText.split(this.apEllipsisSeparator)
|
|
53
|
+
.filter(element => !!element && element.length > 0).length;
|
|
54
|
+
if (removedElementsCount > 0) {
|
|
55
|
+
this.apEllipsisRemovedElementsCount.emit(removedElementsCount);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (removedText && removedText.length > 0) {
|
|
59
|
+
this.apEllipsisRemovedText.emit(removedText);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
handleReadmore() {
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/** @nocollapse */ /** @nocollapse */ EllipsisDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
66
|
+
/** @nocollapse */ /** @nocollapse */ EllipsisDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: EllipsisDirective, selector: "[apEllipsis]", inputs: { apEllipsisSeparator: "apEllipsisSeparator", apEllipsisClip: "apEllipsisClip", apEllipsisIndex: "apEllipsisIndex", apEllipsisChar: "apEllipsisChar", apEllipsisClickable: "apEllipsisClickable" }, outputs: { apEllipsisRemovedElementsCount: "apEllipsisRemovedElementsCount", apEllipsisRemovedText: "apEllipsisRemovedText" }, ngImport: i0 });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: EllipsisDirective, decorators: [{
|
|
68
|
+
type: Directive,
|
|
69
|
+
args: [{
|
|
70
|
+
selector: '[apEllipsis]',
|
|
71
|
+
}]
|
|
72
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { apEllipsisSeparator: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], apEllipsisClip: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], apEllipsisIndex: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], apEllipsisChar: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], apEllipsisClickable: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], apEllipsisRemovedElementsCount: [{
|
|
83
|
+
type: Output
|
|
84
|
+
}], apEllipsisRemovedText: [{
|
|
85
|
+
type: Output
|
|
86
|
+
}] } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9lbGxpcHNpcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXZHOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBZ0IxQixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWJ6QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUVoQyxtQkFBYyxHQUFXLEtBQUssQ0FBQztRQUMvQix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFFcEMsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM1RCwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBT3ZCLENBQUM7SUFMdkMsSUFBWSxXQUFXO1FBQ25CLE1BQU0sRUFBRSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBSUQscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU8sUUFBUTtRQUNaLE1BQU0sRUFBRSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hCLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDM0IsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUNsRixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9DLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRS9DLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUMxQixFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDOUIsRUFBRSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7YUFDTjtTQUNKO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3hDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7Z0JBQ2xELElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUNsRDtTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDMUIsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztpQkFDbkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMvRCxJQUFJLG9CQUFvQixHQUFHLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQ2xFO1NBQ0o7UUFDRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0wsQ0FBQztJQUVPLGNBQWM7SUFFdEIsQ0FBQzs7b0pBMURRLGlCQUFpQjt3SUFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7aUJBQzNCO2lHQUdZLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUksOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJDb250ZW50Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZW1vdmVzIGV4Y2VzcyB0ZXh0IGZyb20gZWxlbWVudCB1bnRpbCBpdCBmaXRzIGluIGVsZW1lbnRzXG4gKiBhbmQgYXBwZW5kcyBhIGVsbGlwc2lzIHN5bWJvbCB0byBlbmQgb2YgdGV4dC4gVGhpcyByZXF1aXJlcyB0aGF0XG4gKiB0aGUgZWxlbWVudHMgaGVpZ2h0IGJlIGZpeGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxwIGFwRWxsaXBzaXM+VWxsYW1jbyBlc3NlIGxhYm9ydW08L3A+XG4gKiBgYGBcbiAqXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwRWxsaXBzaXNdJyxcbn0pXG5leHBvcnQgY2xhc3MgRWxsaXBzaXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcblxuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNTZXBhcmF0b3I6IHN0cmluZztcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzQ2xpcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNJbmRleDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNDaGFyOiBzdHJpbmcgPSAnLi4uJztcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzQ2xpY2thYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgYXBFbGxpcHNpc1JlbW92ZWRFbGVtZW50c0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIGFwRWxsaXBzaXNSZW1vdmVkVGV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBnZXQgaGFzT3ZlcmZsb3coKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIChlbC5zY3JvbGxIZWlnaHQgPiBlbC5vZmZzZXRIZWlnaHQpIHx8IChlbC5zY3JvbGxXaWR0aCA+IGVsLm9mZnNldFdpZHRoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IH1cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jbGlwVGV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xpcFRleHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgbGV0IHRleHQgPSBlbC5pbm5lclRleHQ7XG4gICAgICAgIGxldCByZW1vdmVkVGV4dCA9ICcnO1xuICAgICAgICBpZiAodGhpcy5hcEVsbGlwc2lzSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmVtb3ZlZFRleHQgPSB0ZXh0LnN1YnN0cmluZyh0aGlzLmFwRWxsaXBzaXNJbmRleCwgdGV4dC5sZW5ndGggLSAxKSArIHJlbW92ZWRUZXh0O1xuICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRoaXMuYXBFbGxpcHNpc0luZGV4KTtcbiAgICAgICAgICAgIGVsLmlubmVyVGV4dCA9IGAke3RleHR9JHt0aGlzLmFwRWxsaXBzaXNDaGFyfWA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFwRWxsaXBzaXNDbGlja2FibGUpIHtcbiAgICAgICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gYCR7dGV4dH0ke3JlbW92ZWRUZXh0fWA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5oYXNPdmVyZmxvdyAmJiB0ZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZW1vdmVkVGV4dCA9IHRleHRbdGV4dC5sZW5ndGggLSAxXSArIHJlbW92ZWRUZXh0O1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGVsLmlubmVyVGV4dCA9IGAke3RleHR9JHt0aGlzLmFwRWxsaXBzaXNDaGFyfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcEVsbGlwc2lzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCByZW1vdmVkRWxlbWVudHNDb3VudCA9IHJlbW92ZWRUZXh0LnNwbGl0KHRoaXMuYXBFbGxpcHNpc1NlcGFyYXRvcilcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gISFlbGVtZW50ICYmIGVsZW1lbnQubGVuZ3RoID4gMCkubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKHJlbW92ZWRFbGVtZW50c0NvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBFbGxpcHNpc1JlbW92ZWRFbGVtZW50c0NvdW50LmVtaXQocmVtb3ZlZEVsZW1lbnRzQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZW1vdmVkVGV4dCAmJiByZW1vdmVkVGV4dC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFwRWxsaXBzaXNSZW1vdmVkVGV4dC5lbWl0KHJlbW92ZWRUZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUmVhZG1vcmUoKTogdm9pZCB7XG5cbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2
|
|
2
|
+
import { Directive, forwardRef, Attribute } from '@angular/core';
|
|
3
|
+
import { NG_VALIDATORS } from '@angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class EqualValidatorDirective {
|
|
6
|
+
constructor(validateEqual, validateEqualReference) {
|
|
7
|
+
this.validateEqual = validateEqual;
|
|
8
|
+
this.validateEqualReference = validateEqualReference;
|
|
9
|
+
}
|
|
10
|
+
validate(self) {
|
|
11
|
+
let other = self.root.get(this.validateEqual);
|
|
12
|
+
if (other) {
|
|
13
|
+
if (this.isReference()) {
|
|
14
|
+
if (self.value === other.value) {
|
|
15
|
+
delete other.errors['validateEqual'];
|
|
16
|
+
if (!Object.keys(other.errors).length) {
|
|
17
|
+
other.setErrors(null);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
other.setErrors({ validateEqual: false });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (self.value !== other.value) {
|
|
25
|
+
return { validateEqual: false };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
isReference() {
|
|
31
|
+
if (!this.validateEqualReference) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return this.validateEqualReference === 'true';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** @nocollapse */ /** @nocollapse */ EqualValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: EqualValidatorDirective, deps: [{ token: 'validateEqual', attribute: true }, { token: 'validateEqualReference', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
+
/** @nocollapse */ /** @nocollapse */ EqualValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: EqualValidatorDirective, selector: "[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
|
|
39
|
+
{
|
|
40
|
+
provide: NG_VALIDATORS,
|
|
41
|
+
useExisting: forwardRef((() => EqualValidatorDirective)),
|
|
42
|
+
multi: true
|
|
43
|
+
}
|
|
44
|
+
], ngImport: i0 });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: EqualValidatorDirective, decorators: [{
|
|
46
|
+
type: Directive,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
|
|
49
|
+
providers: [
|
|
50
|
+
{
|
|
51
|
+
provide: NG_VALIDATORS,
|
|
52
|
+
useExisting: forwardRef((() => EqualValidatorDirective)),
|
|
53
|
+
multi: true
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
58
|
+
type: Attribute,
|
|
59
|
+
args: ['validateEqual']
|
|
60
|
+
}] }, { type: undefined, decorators: [{
|
|
61
|
+
type: Attribute,
|
|
62
|
+
args: ['validateEqualReference']
|
|
63
|
+
}] }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtSEFBbUg7QUFDbkgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBOEIsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBWTNFLE1BQU0sT0FBTyx1QkFBdUI7SUFFaEMsWUFBK0MsYUFBcUIsRUFDWixzQkFBOEI7UUFEdkMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDWiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7SUFBRyxDQUFDO0lBRTFGLFFBQVEsQ0FBQyxJQUFxQjtRQUMxQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUU7b0JBQzVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTt3QkFDbkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDekI7aUJBQ0o7cUJBQU07b0JBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUM3QzthQUNKO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ25DO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxNQUFNLENBQUM7SUFDbEQsQ0FBQzs7MEpBN0JRLHVCQUF1QixrQkFFVCxlQUFlLDhCQUNmLHdCQUF3Qjs4SUFIdEMsdUJBQXVCLGlIQVJyQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsRUFBQztZQUN0RCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0o7MkZBRVEsdUJBQXVCO2tCQVZuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3RkFBd0Y7b0JBQ2xHLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsd0JBQXdCLEVBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKO2lCQUNKOzswQkFHZ0IsU0FBUzsyQkFBQyxlQUFlOzswQkFDekIsU0FBUzsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCYXNlZCBvbiBodHRwczovL3Njb3RjaC5pby90dXRvcmlhbHMvaG93LXRvLWltcGxlbWVudC1hLWN1c3RvbS12YWxpZGF0b3ItZGlyZWN0aXZlLWNvbmZpcm0tcGFzc3dvcmQtaW4tYW5ndWxhci0yXG5pbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIEF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yLCBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sTmFtZV0sW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sXSxbdmFsaWRhdGVFcXVhbF1bbmdNb2RlbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRXF1YWxWYWxpZGF0b3JEaXJlY3RpdmUpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRXF1YWxWYWxpZGF0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuXG4gICAgY29uc3RydWN0b3IoQEF0dHJpYnV0ZSgndmFsaWRhdGVFcXVhbCcpIHB1YmxpYyB2YWxpZGF0ZUVxdWFsOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgQEF0dHJpYnV0ZSgndmFsaWRhdGVFcXVhbFJlZmVyZW5jZScpIHB1YmxpYyB2YWxpZGF0ZUVxdWFsUmVmZXJlbmNlOiBzdHJpbmcpIHt9XG5cbiAgICB2YWxpZGF0ZShzZWxmOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICAgICAgbGV0IG90aGVyID0gc2VsZi5yb290LmdldCh0aGlzLnZhbGlkYXRlRXF1YWwpO1xuICAgICAgICBpZiAob3RoZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmVmZXJlbmNlKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi52YWx1ZSA9PT0gb3RoZXIudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG90aGVyLmVycm9yc1sndmFsaWRhdGVFcXVhbCddO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKG90aGVyLmVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdGhlci5zZXRFcnJvcnMoeyB2YWxpZGF0ZUVxdWFsOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGYudmFsdWUgIT09IG90aGVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWRhdGVFcXVhbDogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUmVmZXJlbmNlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGVFcXVhbFJlZmVyZW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlRXF1YWxSZWZlcmVuY2UgPT09ICd0cnVlJztcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class GifService {
|
|
4
|
+
static isGif(src) {
|
|
5
|
+
return src && src.split('?')[0].endsWith('.gif');
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* If the image is a GIF then replace the img element by a canvas containing a frozen gif.
|
|
10
|
+
* Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the
|
|
11
|
+
* new canvas element will have the same condition.
|
|
12
|
+
* Note 2: the image must not have the properties "display" and "visibility" in its style. Since they are used to frozen
|
|
13
|
+
* the GIF. You need to apply this properties on the parent element.
|
|
14
|
+
* Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched
|
|
15
|
+
* with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.
|
|
16
|
+
*/
|
|
17
|
+
export class FrozenGifDirective {
|
|
18
|
+
constructor(elementRef) {
|
|
19
|
+
this.elementRef = elementRef;
|
|
20
|
+
this.frozen = true;
|
|
21
|
+
// Add all the events that need to be propagated.
|
|
22
|
+
this.events = ['click'];
|
|
23
|
+
const element = this.elementRef.nativeElement;
|
|
24
|
+
if (!(element instanceof HTMLImageElement)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.element = element;
|
|
28
|
+
}
|
|
29
|
+
ngOnChanges(changes) {
|
|
30
|
+
let freeze = false;
|
|
31
|
+
if (changes.src) {
|
|
32
|
+
freeze = true;
|
|
33
|
+
}
|
|
34
|
+
if (changes.frozen) {
|
|
35
|
+
if (changes.frozen.currentValue) {
|
|
36
|
+
freeze = true;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.unfreeze();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (freeze) {
|
|
43
|
+
this.freeze();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
freeze() {
|
|
47
|
+
if (!GifService.isGif(this.src) || !this.frozen) {
|
|
48
|
+
this.unfreeze();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// hack to avoid displaying the GIF before replacing it by the canvas
|
|
52
|
+
this.element.style.visibility = 'hidden';
|
|
53
|
+
this.element.addEventListener('load', () => this.addCanvas());
|
|
54
|
+
}
|
|
55
|
+
addCanvas() {
|
|
56
|
+
if (this.canvas) {
|
|
57
|
+
this.canvas.remove();
|
|
58
|
+
}
|
|
59
|
+
this.canvas = document.createElement('canvas');
|
|
60
|
+
this.canvas.width = this.element.width;
|
|
61
|
+
this.canvas.height = this.element.height;
|
|
62
|
+
this.canvas.getContext('2d').drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);
|
|
63
|
+
for (let i = 0; i < this.element.attributes.length; i++) {
|
|
64
|
+
const attr = this.element.attributes[i];
|
|
65
|
+
if (attr.name === 'id') { // avoid two elements with the same id
|
|
66
|
+
this.canvas.setAttribute('id', attr.value + '_frozenGif');
|
|
67
|
+
}
|
|
68
|
+
else if (attr.name === 'style' && attr.value.includes('visibility: hidden;') || attr.value.includes('display: none;')) {
|
|
69
|
+
// remove the added 'visibility: hidden' and 'display: none'
|
|
70
|
+
const styleValue = attr.value;
|
|
71
|
+
this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));
|
|
72
|
+
}
|
|
73
|
+
else if (attr.name !== '"') { // test for invalid attributes
|
|
74
|
+
this.canvas.setAttribute(attr.name, attr.value);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
this.addEvents();
|
|
78
|
+
this.element.parentNode.insertBefore(this.canvas, this.element);
|
|
79
|
+
this.element.style.display = 'none';
|
|
80
|
+
}
|
|
81
|
+
addEvents() {
|
|
82
|
+
this.events.forEach((eventName) => {
|
|
83
|
+
this.canvas.addEventListener(eventName, (ev) => this.element.dispatchEvent(
|
|
84
|
+
// wm: find a way to dispatch the right event type
|
|
85
|
+
new Event(ev.type, ev)));
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
unfreeze() {
|
|
89
|
+
if (this.canvas) {
|
|
90
|
+
this.canvas.remove();
|
|
91
|
+
this.canvas = null;
|
|
92
|
+
}
|
|
93
|
+
this.element.style.visibility = 'inherit';
|
|
94
|
+
this.element.style.display = 'inherit';
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** @nocollapse */ /** @nocollapse */ FrozenGifDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FrozenGifDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
/** @nocollapse */ /** @nocollapse */ FrozenGifDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: FrozenGifDirective, selector: "img[apFrozenGif]", inputs: { src: "src", frozen: ["apFrozen", "frozen"], events: ["apGifEvents", "events"] }, host: { properties: { "src": "src" } }, usesOnChanges: true, ngImport: i0 });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FrozenGifDirective, decorators: [{
|
|
100
|
+
type: Directive,
|
|
101
|
+
args: [{
|
|
102
|
+
selector: 'img[apFrozenGif]',
|
|
103
|
+
host: {
|
|
104
|
+
'[src]': 'src'
|
|
105
|
+
}
|
|
106
|
+
}]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { src: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], frozen: [{
|
|
110
|
+
type: Input,
|
|
111
|
+
args: ['apFrozen']
|
|
112
|
+
}], events: [{
|
|
113
|
+
type: Input,
|
|
114
|
+
args: ['apGifEvents']
|
|
115
|
+
}] } });
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvemVuLWdpZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL2Zyb3plbi1naWYuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUV0RSxNQUFNLE9BQU8sVUFBVTtJQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQVc7UUFDcEIsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNKO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBUzNCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFQdkIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNqQyxpREFBaUQ7UUFDM0IsV0FBTSxHQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFNL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLENBQUMsT0FBTyxZQUFZLGdCQUFnQixDQUFDLEVBQUU7WUFDeEMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFZO1FBQ3BCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7Z0JB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Q0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQzdFLGtEQUFrRDtZQUNsRCxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUN6QixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxRQUFRO1FBQ1osSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUMzQyxDQUFDOztxSkE1RlEsa0JBQWtCO3lJQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFOOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixJQUFJLEVBQUU7d0JBQ0YsT0FBTyxFQUFFLEtBQUs7cUJBQ2pCO2lCQUNKO2lHQUVZLEdBQUc7c0JBQVgsS0FBSztnQkFDYSxNQUFNO3NCQUF4QixLQUFLO3VCQUFDLFVBQVU7Z0JBRUssTUFBTTtzQkFBM0IsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgR2lmU2VydmljZSB7XG4gICAgc3RhdGljIGlzR2lmKHNyYzogU3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzcmMgJiYgc3JjLnNwbGl0KCc/JylbMF0uZW5kc1dpdGgoJy5naWYnKTtcbiAgICB9XG59XG5cbi8qKlxuICogSWYgdGhlIGltYWdlIGlzIGEgR0lGIHRoZW4gcmVwbGFjZSB0aGUgaW1nIGVsZW1lbnQgYnkgYSBjYW52YXMgY29udGFpbmluZyBhIGZyb3plbiBnaWYuXG4gKiBOb3RlIDE6IGlmIHRoZSBpbWFnZSBpcyBkaXNwbGF5ZWQgdW5kZXIgYSBjb25kaXRpb24sIHRoZSBjb25kaXRpb24gbXVzdCBiZSBhcHBsaWVkIG9uIHRoZSBwYXJlbnQgb2YgdGhlIGltYWdlLCBzbyB0aGVcbiAqIG5ldyBjYW52YXMgZWxlbWVudCB3aWxsIGhhdmUgdGhlIHNhbWUgY29uZGl0aW9uLlxuICogTm90ZSAyOiB0aGUgaW1hZ2UgbXVzdCBub3QgaGF2ZSB0aGUgcHJvcGVydGllcyBcImRpc3BsYXlcIiBhbmQgXCJ2aXNpYmlsaXR5XCIgaW4gaXRzIHN0eWxlLiBTaW5jZSB0aGV5IGFyZSB1c2VkIHRvIGZyb3plblxuICogdGhlIEdJRi4gWW91IG5lZWQgdG8gYXBwbHkgdGhpcyBwcm9wZXJ0aWVzIG9uIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAqIE5vdGUgMzogSWYgdGhlIEdJRiBpcyBmcm96ZW4sIGFsbCB0aGUgZXZlbnQgYXJlIHByb3BhZ2F0ZWQgdG8gdGhlIGltYWdlLiBIb3dldmVyLCBhbGwgZXZlbnRzIGFyZSBkaXNwYXRjaGVkXG4gKiB3aXRoIGFuIEV2ZW50IGluc3RhbmNlLiBFeDogY2xpY2sgZXZlbnQgaXMgbm90IGRpc3BhdGNoZWQgd2l0aCBhIE1vdXNlRXZlbnQgaW5zdGFuY2UuXG4gKi9cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbWdbYXBGcm96ZW5HaWZdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3JjXSc6ICdzcmMnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBGcm96ZW5HaWZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHNyYzogc3RyaW5nO1xuICAgIEBJbnB1dCgnYXBGcm96ZW4nKSBmcm96ZW4gPSB0cnVlO1xuICAgIC8vIEFkZCBhbGwgdGhlIGV2ZW50cyB0aGF0IG5lZWQgdG8gYmUgcHJvcGFnYXRlZC5cbiAgICBASW5wdXQoJ2FwR2lmRXZlbnRzJykgZXZlbnRzOiBzdHJpbmdbXSA9IFsnY2xpY2snXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogSFRNTEltYWdlRWxlbWVudDtcbiAgICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBmcmVlemUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGNoYW5nZXMuc3JjKSB7XG4gICAgICAgICAgICBmcmVlemUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmZyb3plbikge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuZnJvemVuLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGZyZWV6ZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudW5mcmVlemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcmVlemUpIHtcbiAgICAgICAgICAgIHRoaXMuZnJlZXplKCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHByaXZhdGUgZnJlZXplKCkge1xuICAgICAgICBpZiAoIUdpZlNlcnZpY2UuaXNHaWYodGhpcy5zcmMpIHx8ICF0aGlzLmZyb3plbikge1xuICAgICAgICAgICAgdGhpcy51bmZyZWV6ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaGFjayB0byBhdm9pZCBkaXNwbGF5aW5nIHRoZSBHSUYgYmVmb3JlIHJlcGxhY2luZyBpdCBieSB0aGUgY2FudmFzXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpcy5hZGRDYW52YXMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDYW52YXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5jYW52YXMucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICB0aGlzLmNhbnZhcy53aWR0aCA9IHRoaXMuZWxlbWVudC53aWR0aDtcbiAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gdGhpcy5lbGVtZW50LmhlaWdodDtcbiAgICAgICAgdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5kcmF3SW1hZ2UodGhpcy5lbGVtZW50LCAwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnQuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYXR0ciA9IHRoaXMuZWxlbWVudC5hdHRyaWJ1dGVzW2ldO1xuICAgICAgICAgICAgaWYgKGF0dHIubmFtZSA9PT0gJ2lkJykgeyAvLyBhdm9pZCB0d28gZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBpZFxuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgnaWQnLCBhdHRyLnZhbHVlICsgJ19mcm96ZW5HaWYnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0ci5uYW1lID09PSAnc3R5bGUnICYmIGF0dHIudmFsdWUuaW5jbHVkZXMoJ3Zpc2liaWxpdHk6IGhpZGRlbjsnKSB8fCBhdHRyLnZhbHVlLmluY2x1ZGVzKCdkaXNwbGF5OiBub25lOycpKSB7XG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBhZGRlZCAndmlzaWJpbGl0eTogaGlkZGVuJyBhbmQgJ2Rpc3BsYXk6IG5vbmUnXG4gICAgICAgICAgICAgICAgY29uc3Qgc3R5bGVWYWx1ZSA9IGF0dHIudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMuc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlVmFsdWUucmVwbGFjZSgndmlzaWJpbGl0eTogaGlkZGVuOycsICcnKS5yZXBsYWNlKCdkaXNwbGF5OiBub25lOycsICcnKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHIubmFtZSAhPT0gJ1wiJykgeyAvLyB0ZXN0IGZvciBpbnZhbGlkIGF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhcy5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRkRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuY2FudmFzLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5ldmVudHMuZm9yRWFjaCgoZXZlbnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCAoZXY6IEV2ZW50KSA9PiB0aGlzLmVsZW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAvLyB3bTogZmluZCBhIHdheSB0byBkaXNwYXRjaCB0aGUgcmlnaHQgZXZlbnQgdHlwZVxuICAgICAgICAgICAgICAgIG5ldyBFdmVudChldi50eXBlLCBldilcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVuZnJlZXplKCkge1xuICAgICAgICBpZiAodGhpcy5jYW52YXMpIHtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2luaGVyaXQnO1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdpbmhlcml0JztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
const PART_START = '<ng-container data-mst="';
|
|
4
|
+
const PARSE_MIDDLE = '">';
|
|
5
|
+
const PARSE_END = '</ng-container>';
|
|
6
|
+
const CLASS_SEPARATOR = ',';
|
|
7
|
+
/**
|
|
8
|
+
* This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes.
|
|
9
|
+
* The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES>TEXT</ng-container>.
|
|
10
|
+
* Example: 'Lorem <ng-container data-mst="my-style">ipsum</ng-container> dolor sit amet'.
|
|
11
|
+
*/
|
|
12
|
+
export class MultiStyleTextDirective {
|
|
13
|
+
constructor(elRef, renderer) {
|
|
14
|
+
this.elRef = elRef;
|
|
15
|
+
this.renderer = renderer;
|
|
16
|
+
this.childrenCreated = [];
|
|
17
|
+
}
|
|
18
|
+
set multiStyleText(fullText) {
|
|
19
|
+
// First remove previously added children (on update).
|
|
20
|
+
for (const child of this.childrenCreated) {
|
|
21
|
+
this.renderer.removeChild(this.elRef.nativeElement, child);
|
|
22
|
+
}
|
|
23
|
+
const parts = MultiStyleTextDirective.parse(fullText);
|
|
24
|
+
for (const part of parts) {
|
|
25
|
+
if (part.clazz) {
|
|
26
|
+
const span = this.renderer.createElement('span');
|
|
27
|
+
const text = this.renderer.createText(part.content);
|
|
28
|
+
this.renderer.appendChild(span, text);
|
|
29
|
+
part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));
|
|
30
|
+
this.renderer.appendChild(this.elRef.nativeElement, span);
|
|
31
|
+
this.childrenCreated.push(span);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const text = this.renderer.createText(part.content);
|
|
35
|
+
this.renderer.appendChild(this.elRef.nativeElement, text);
|
|
36
|
+
this.childrenCreated.push(text);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static parse(toParse) {
|
|
41
|
+
const parts = [];
|
|
42
|
+
let startIndex = toParse.indexOf(PART_START);
|
|
43
|
+
while (startIndex >= 0) {
|
|
44
|
+
if (startIndex > 0) {
|
|
45
|
+
// Optional start before parser start.
|
|
46
|
+
parts.push({ content: toParse.substr(0, startIndex) });
|
|
47
|
+
}
|
|
48
|
+
const elem = this.cutFirstGroup(toParse.substr(startIndex));
|
|
49
|
+
if (elem === 'invalid') {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
else if (elem) {
|
|
53
|
+
parts.push({ content: elem.content, clazz: elem.classes });
|
|
54
|
+
toParse = elem.rest;
|
|
55
|
+
startIndex = toParse.indexOf(PART_START);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
parts.push({ content: toParse });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Very end
|
|
62
|
+
if (toParse.length > 0) {
|
|
63
|
+
parts.push({ content: toParse });
|
|
64
|
+
}
|
|
65
|
+
return parts;
|
|
66
|
+
}
|
|
67
|
+
static cutFirstGroup(toCut) {
|
|
68
|
+
if (!toCut.startsWith(PART_START)) {
|
|
69
|
+
// String doesnt start with expected parser start.
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const afterParserStart = toCut.substr(PART_START.length);
|
|
73
|
+
let index = afterParserStart.indexOf(PARSE_MIDDLE);
|
|
74
|
+
if (index <= 0) {
|
|
75
|
+
console.error('Not able to parse invalid string: ' + toCut);
|
|
76
|
+
return 'invalid';
|
|
77
|
+
}
|
|
78
|
+
const classes = afterParserStart.substr(0, index);
|
|
79
|
+
let rest = afterParserStart.substr(index + PARSE_MIDDLE.length);
|
|
80
|
+
index = rest.indexOf(PARSE_END);
|
|
81
|
+
if (index <= 0) {
|
|
82
|
+
console.error('Not able to parse invalid string: ' + toCut);
|
|
83
|
+
return 'invalid';
|
|
84
|
+
}
|
|
85
|
+
const content = rest.substr(0, index);
|
|
86
|
+
rest = rest.substr(index + PARSE_END.length);
|
|
87
|
+
return { content, classes: classes.split(CLASS_SEPARATOR), rest };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/** @nocollapse */ /** @nocollapse */ MultiStyleTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
91
|
+
/** @nocollapse */ /** @nocollapse */ MultiStyleTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: MultiStyleTextDirective, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, ngImport: i0 });
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: MultiStyleTextDirective, decorators: [{
|
|
93
|
+
type: Directive,
|
|
94
|
+
args: [{
|
|
95
|
+
// tslint:disable-next-line:directive-selector
|
|
96
|
+
selector: '[multiStyleText]'
|
|
97
|
+
}]
|
|
98
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { multiStyleText: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}] } });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL211bHRpLXN0eWxlLXRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUF3QixNQUFNLGVBQWUsQ0FBQzs7QUFFdEUsTUFBTSxVQUFVLEdBQUcsMEJBQTBCLENBQUM7QUFDOUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBQzFCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDO0FBQ3BDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQU81Qjs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQTRCaEMsWUFDWSxLQUFpQixFQUNqQixRQUFtQjtRQURuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVc7UUE1QnZCLG9CQUFlLEdBQVUsRUFBRSxDQUFDO0lBOEJwQyxDQUFDO0lBNUJELElBQWEsY0FBYyxDQUFDLFFBQWdCO1FBQ3hDLHNEQUFzRDtRQUN0RCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDOUQ7UUFFRCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqRCxN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QUMsb0NBQW9DLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDNUQsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDNUQsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDcEUsQ0FBQzs7MEpBcEZRLHVCQUF1Qjs4SUFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1AsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsa0JBQWtCO2lCQUMvQjt5SEFLZ0IsY0FBYztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgUEFSVF9TVEFSVCA9ICc8bmctY29udGFpbmVyIGRhdGEtbXN0PVwiJztcbmNvbnN0IFBBUlNFX01JRERMRSA9ICdcIj4nO1xuY29uc3QgUEFSU0VfRU5EID0gJzwvbmctY29udGFpbmVyPic7XG5jb25zdCBDTEFTU19TRVBBUkFUT1IgPSAnLCc7XG5cbmludGVyZmFjZSBQYXJ0IHtcbiAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgY2xheno/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBhaW1zIHRvIHBhcnNlIHNpbXBsZSBzdHJpbmcgdG8gZXh0cmFjdCBzb21lIHNwZWNpZmljIHRhZ3MgYW5kIHRvIHR1cm4gdGhlbSBpbnRvIFNQQU4gd2l0aCBzdHlsaW5nIGNsYXNzZXMgYXR0cmlidXRlcy5cbiAqIFRoZSBzcGVjaWZpYyB0YWdzIG11c3QgdGhpcyBzY2hlbWE6IDxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCJTVFlMSU5HLUNMQVNTRVM+VEVYVDwvbmctY29udGFpbmVyPi5cbiAqIEV4YW1wbGU6ICdMb3JlbSA8bmctY29udGFpbmVyIGRhdGEtbXN0PVwibXktc3R5bGVcIj5pcHN1bTwvbmctY29udGFpbmVyPiBkb2xvciBzaXQgYW1ldCcuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1ttdWx0aVN0eWxlVGV4dF0nXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU3R5bGVUZXh0RGlyZWN0aXZlIHtcblxuICAgIHByaXZhdGUgY2hpbGRyZW5DcmVhdGVkOiBhbnlbXSA9IFtdO1xuXG4gICAgQElucHV0KCkgc2V0IG11bHRpU3R5bGVUZXh0KGZ1bGxUZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgLy8gRmlyc3QgcmVtb3ZlIHByZXZpb3VzbHkgYWRkZWQgY2hpbGRyZW4gKG9uIHVwZGF0ZSkuXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbkNyZWF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCBjaGlsZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJ0cyA9IE11bHRpU3R5bGVUZXh0RGlyZWN0aXZlLnBhcnNlKGZ1bGxUZXh0KTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgICAgICAgIGlmIChwYXJ0LmNsYXp6KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQocGFydC5jb250ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwYW4sIHRleHQpO1xuICAgICAgICAgICAgICAgIHBhcnQuY2xhenouZm9yRWFjaChjbGF6eiA9PiB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHNwYW4sIGNsYXp6KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5DcmVhdGVkLnB1c2goc3Bhbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQocGFydC5jb250ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlbkNyZWF0ZWQucHVzaCh0ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcGFyc2UodG9QYXJzZTogc3RyaW5nKTogUGFydFtdIHtcbiAgICAgICAgY29uc3QgcGFydHM6IFBhcnRbXSA9IFtdO1xuXG4gICAgICAgIGxldCBzdGFydEluZGV4ID0gdG9QYXJzZS5pbmRleE9mKFBBUlRfU1RBUlQpO1xuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBPcHRpb25hbCBzdGFydCBiZWZvcmUgcGFyc2VyIHN0YXJ0LlxuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goe2NvbnRlbnQ6IHRvUGFyc2Uuc3Vic3RyKDAsIHN0YXJ0SW5kZXgpfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gdGhpcy5jdXRGaXJzdEdyb3VwKHRvUGFyc2Uuc3Vic3RyKHN0YXJ0SW5kZXgpKTtcbiAgICAgICAgICAgIGlmIChlbGVtID09PSAnaW52YWxpZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW0pIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKHtjb250ZW50OiBlbGVtLmNvbnRlbnQsIGNsYXp6OiBlbGVtLmNsYXNzZXN9KTtcbiAgICAgICAgICAgICAgICB0b1BhcnNlID0gZWxlbS5yZXN0O1xuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSB0b1BhcnNlLmluZGV4T2YoUEFSVF9TVEFSVCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goe2NvbnRlbnQ6IHRvUGFyc2V9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBWZXJ5IGVuZFxuICAgICAgICBpZiAodG9QYXJzZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKHtjb250ZW50OiB0b1BhcnNlfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGN1dEZpcnN0R3JvdXAodG9DdXQ6IHN0cmluZyk6IHtjb250ZW50OiBzdHJpbmcsIGNsYXNzZXM6IHN0cmluZ1tdLCByZXN0OiBzdHJpbmd9IHwgJ2ludmFsaWQnIHwgbnVsbCB7XG4gICAgICAgIGlmICghdG9DdXQuc3RhcnRzV2l0aChQQVJUX1NUQVJUKSkge1xuICAgICAgICAgICAgLy8gU3RyaW5nIGRvZXNudCBzdGFydCB3aXRoIGV4cGVjdGVkIHBhcnNlciBzdGFydC5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJQYXJzZXJTdGFydCA9IHRvQ3V0LnN1YnN0cihQQVJUX1NUQVJULmxlbmd0aCk7XG4gICAgICAgIGxldCBpbmRleCA9IGFmdGVyUGFyc2VyU3RhcnQuaW5kZXhPZihQQVJTRV9NSURETEUpO1xuICAgICAgICBpZiAoaW5kZXggPD0gMCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm90IGFibGUgdG8gcGFyc2UgaW52YWxpZCBzdHJpbmc6ICcgKyB0b0N1dCk7XG4gICAgICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBhZnRlclBhcnNlclN0YXJ0LnN1YnN0cigwLCBpbmRleCk7XG4gICAgICAgIGxldCByZXN0ID0gYWZ0ZXJQYXJzZXJTdGFydC5zdWJzdHIoaW5kZXggKyBQQVJTRV9NSURETEUubGVuZ3RoKTtcbiAgICAgICAgaW5kZXggPSByZXN0LmluZGV4T2YoUEFSU0VfRU5EKTtcbiAgICAgICAgaWYgKGluZGV4IDw9IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vdCBhYmxlIHRvIHBhcnNlIGludmFsaWQgc3RyaW5nOiAnICsgdG9DdXQpO1xuICAgICAgICAgICAgcmV0dXJuICdpbnZhbGlkJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZW50ID0gcmVzdC5zdWJzdHIoMCwgaW5kZXgpO1xuICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHIoaW5kZXggKyBQQVJTRV9FTkQubGVuZ3RoKTtcblxuICAgICAgICByZXR1cm4ge2NvbnRlbnQsIGNsYXNzZXM6IGNsYXNzZXMuc3BsaXQoQ0xBU1NfU0VQQVJBVE9SKSwgcmVzdH07XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Directive, Input } from '@angular/core';
|
|
3
|
+
// Third-parties
|
|
4
|
+
import { fromEvent } from "rxjs";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../tooltip-neo/tooltip-neo.directive";
|
|
7
|
+
export class TruncateTooltipDirective {
|
|
8
|
+
constructor(tooltipNeo, elementRef) {
|
|
9
|
+
this.tooltipNeo = tooltipNeo;
|
|
10
|
+
this.elementRef = elementRef;
|
|
11
|
+
}
|
|
12
|
+
updateTruncateState() {
|
|
13
|
+
const element = this.elementRef.nativeElement;
|
|
14
|
+
const truncated = element.scrollWidth > element.clientWidth;
|
|
15
|
+
this.tooltipNeo.apTooltipNeo = truncated ? this.truncateTooltip : '';
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.elementRefMouseOver$ = fromEvent(this.elementRef.nativeElement, 'mouseover')
|
|
19
|
+
.subscribe(() => this.updateTruncateState());
|
|
20
|
+
}
|
|
21
|
+
ngOnDestroy() {
|
|
22
|
+
this.elementRefMouseOver$.unsubscribe();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** @nocollapse */ /** @nocollapse */ TruncateTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TruncateTooltipDirective, deps: [{ token: i1.TooltipNeoDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
+
/** @nocollapse */ /** @nocollapse */ TruncateTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: TruncateTooltipDirective, selector: "[apTooltipNeo][truncateTooltip]", inputs: { truncateTooltip: "truncateTooltip" }, ngImport: i0 });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TruncateTooltipDirective, decorators: [{
|
|
28
|
+
type: Directive,
|
|
29
|
+
args: [{ selector: '[apTooltipNeo][truncateTooltip]' }]
|
|
30
|
+
}], ctorParameters: function () { return [{ type: i1.TooltipNeoDirective }, { type: i0.ElementRef }]; }, propDecorators: { truncateTooltip: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}] } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUtdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3RydW5jYXRlLXRvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFVBQVU7QUFDVixPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDOUUsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxNQUFNLENBQUM7OztBQUc3QyxNQUFNLE9BQU8sd0JBQXdCO0lBTWpDLFlBQ1ksVUFBK0IsRUFDL0IsVUFBbUM7UUFEbkMsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDL0IsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFFL0MsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQzthQUM1RSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzsySkF6QlEsd0JBQXdCOytJQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSxpQ0FBaUMsRUFBQzttSUFHM0MsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFnb3JhcHVsc2VcbmltcG9ydCB7VG9vbHRpcE5lb0RpcmVjdGl2ZX0gZnJvbSAnLi4vdG9vbHRpcC1uZW8vdG9vbHRpcC1uZW8uZGlyZWN0aXZlJztcbmltcG9ydCB7VG9vbHRpcE5lb1BhcmFtc30gZnJvbSAnLi4vdG9vbHRpcC1uZW8vdG9vbHRpcC1uZW8ubW9kZWwnO1xuLy8gQW5ndWxhclxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBUaGlyZC1wYXJ0aWVzXG5pbXBvcnQge2Zyb21FdmVudCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1thcFRvb2x0aXBOZW9dW3RydW5jYXRlVG9vbHRpcF0nfSlcbmV4cG9ydCBjbGFzcyBUcnVuY2F0ZVRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoKSB0cnVuY2F0ZVRvb2x0aXA6IHN0cmluZyB8IFRvb2x0aXBOZW9QYXJhbXM7XG5cbiAgICBwcml2YXRlIGVsZW1lbnRSZWZNb3VzZU92ZXIkOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0b29sdGlwTmVvOiBUb29sdGlwTmVvRGlyZWN0aXZlLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcnVuY2F0ZVN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlZCA9IGVsZW1lbnQuc2Nyb2xsV2lkdGggPiBlbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICB0aGlzLnRvb2x0aXBOZW8uYXBUb29sdGlwTmVvID0gdHJ1bmNhdGVkID8gdGhpcy50cnVuY2F0ZVRvb2x0aXAgOiAnJztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmTW91c2VPdmVyJCA9IGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlb3ZlcicpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVHJ1bmNhdGVTdGF0ZSgpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmTW91c2VPdmVyJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class DotsStepperComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.disabled = false;
|
|
7
|
+
this.forwardAllowed = true;
|
|
8
|
+
this.items = [];
|
|
9
|
+
this.size = '';
|
|
10
|
+
this.dotClick = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngOnChanges() {
|
|
13
|
+
this.currentItem = this.items[this.index];
|
|
14
|
+
}
|
|
15
|
+
onDotClick(event, item, index) {
|
|
16
|
+
event.stopPropagation();
|
|
17
|
+
if (this.disabled || (!this.forwardAllowed && index > this.index)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this.currentItem = item;
|
|
21
|
+
this.index = index;
|
|
22
|
+
this.dotClick.emit(this.index);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** @nocollapse */ /** @nocollapse */ DotsStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DotsStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
/** @nocollapse */ /** @nocollapse */ DotsStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: DotsStepperComponent, selector: "ap-dots-stepper", inputs: { disabled: "disabled", forwardAllowed: "forwardAllowed", index: "index", items: "items", size: "size" }, outputs: { dotClick: "dotClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dots\"\n [ngClass]=\"{'small-dots': size == 'small'}\">\n <div class=\"dot\"\n *ngFor=\"let item of items; let i = index\"\n [ngClass]=\"{'active': item === currentItem, 'disabled': disabled || (!forwardAllowed && i > index) }\"\n (click)=\"onDotClick($event, item, i)\">\n </div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;place-content:stretch center;position:absolute}.dots .dot{-webkit-transition:all .2s ease-in-out;background:#d6dae0;border-radius:50%;cursor:pointer;height:8px;margin:16px 4px;transition:all .2s ease-in-out;width:8px}.dots .dot.active{background:#178dfe;cursor:initial}.dots .dot.disabled{background:#d6dae0;cursor:initial}.dots.small-dots .dot{height:6px;margin:16px 2px;width:6px}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DotsStepperComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-dots-stepper', template: "<div class=\"dots\"\n [ngClass]=\"{'small-dots': size == 'small'}\">\n <div class=\"dot\"\n *ngFor=\"let item of items; let i = index\"\n [ngClass]=\"{'active': item === currentItem, 'disabled': disabled || (!forwardAllowed && i > index) }\"\n (click)=\"onDotClick($event, item, i)\">\n </div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;place-content:stretch center;position:absolute}.dots .dot{-webkit-transition:all .2s ease-in-out;background:#d6dae0;border-radius:50%;cursor:pointer;height:8px;margin:16px 4px;transition:all .2s ease-in-out;width:8px}.dots .dot.active{background:#178dfe;cursor:initial}.dots .dot.disabled{background:#d6dae0;cursor:initial}.dots.small-dots .dot{height:6px;margin:16px 2px;width:6px}\n"] }]
|
|
30
|
+
}], ctorParameters: function () { return []; }, propDecorators: { disabled: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], forwardAllowed: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], index: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], items: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], size: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], dotClick: [{
|
|
41
|
+
type: Output
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90cy1zdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcmMvbGliL2RvdHMtc3RlcHBlci9kb3RzLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZG90cy1zdGVwcGVyL2RvdHMtc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFRekcsTUFBTSxPQUFPLG9CQUFvQjtJQVk3QjtRQVZTLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFL0IsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWpCLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUt0RSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDekIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9ELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzt1SkEzQlEsb0JBQW9COzJJQUFwQixvQkFBb0IsaU9DUmpDLG1WQVFBOzJGREFhLG9CQUFvQjtrQkFOaEMsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQjswRUFNbEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1kb3RzLXN0ZXBwZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3RzLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvdHMtc3RlcHBlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvdHNTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZm9yd2FyZEFsbG93ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGluZGV4OiBudW1iZXI7XG4gICAgQElucHV0KCkgaXRlbXM6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAT3V0cHV0KCkgZG90Q2xpY2s6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBjdXJyZW50SXRlbTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW0gPSB0aGlzLml0ZW1zW3RoaXMuaW5kZXhdO1xuICAgIH1cblxuICAgIG9uRG90Q2xpY2soZXZlbnQsIGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fMKgKCF0aGlzLmZvcndhcmRBbGxvd2VkICYmIGluZGV4ID4gdGhpcy5pbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gaXRlbTtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmRvdENsaWNrLmVtaXQodGhpcy5pbmRleCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvdHNcIlxuICAgIFtuZ0NsYXNzXT1cInsnc21hbGwtZG90cyc6IHNpemUgPT0gJ3NtYWxsJ31cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZG90XCJcbiAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaXRlbSA9PT0gY3VycmVudEl0ZW0sICdkaXNhYmxlZCc6IGRpc2FibGVkIHx8ICghZm9yd2FyZEFsbG93ZWQgICYmIGkgPiBpbmRleCkgfVwiXG4gICAgICAgICAoY2xpY2spPVwib25Eb3RDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|