@entake/particle 18.0.5 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/app/{modules → shared/components}/accordion/accordion.component.d.ts +3 -3
- package/app/{modules/date-picker → shared}/components/calendar/calendar.component.d.ts +7 -12
- package/app/{modules → shared/components}/checkbox/checkbox.component.d.ts +5 -7
- package/app/{modules → shared/components}/color-picker/color-picker.component.d.ts +3 -9
- package/app/{modules → shared/components}/date-picker/date-picker.component.d.ts +20 -26
- package/app/{modules/date-picker → shared}/components/date-range-picker/date-range-picker.component.d.ts +10 -11
- package/app/{modules → shared/components}/dialog/dialog.component.d.ts +14 -24
- package/app/{modules → shared/components}/dropdown/dropdown.component.d.ts +12 -14
- package/app/{modules/icons/components → shared/components/icon-select}/icon-select.component.d.ts +14 -17
- package/app/{modules → shared/components}/idle-timeout/idle-timeout.component.d.ts +3 -4
- package/app/{modules → shared/components}/input-mask/input-mask.component.d.ts +6 -7
- package/app/shared/components/layout-full-framing/layout-full-framing.component.d.ts +27 -0
- package/app/shared/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.d.ts +23 -0
- package/app/{modules/loader/components → shared/components/loader}/loader.component.d.ts +2 -2
- package/app/{modules → shared/components}/multi-select/multi-select.component.d.ts +18 -24
- package/app/{modules → shared/components}/notification/notification.component.d.ts +5 -13
- package/app/{modules → shared/components}/paginator/paginator.component.d.ts +12 -11
- package/app/{modules → shared/components}/popover/popover.component.d.ts +10 -15
- package/app/{modules → shared/components}/profile-pic/profile-pic.component.d.ts +1 -1
- package/app/shared/components/progress-bar/progress-bar.component.d.ts +15 -0
- package/app/{modules → shared/components}/rich-text/rich-text.component.d.ts +11 -12
- package/app/shared/components/scroll-to-top/scroll-to-top.component.d.ts +18 -0
- package/app/shared/components/slideover/slideover.component.d.ts +35 -0
- package/app/{modules → shared/components}/slider/slider.component.d.ts +8 -22
- package/app/{modules → shared/components}/toggle-switch/toggle-switch.component.d.ts +4 -6
- package/app/{modules → shared/components}/week-picker/week-picker.component.d.ts +21 -22
- package/app/{modules/accordion → shared}/directives/accordion-content.directive.d.ts +1 -2
- package/app/{modules/accordion → shared}/directives/accordion-header.directive.d.ts +1 -2
- package/app/{modules/accordion → shared}/directives/accordion-item.directive.d.ts +1 -1
- package/app/{modules/background-carousel → shared/directives}/background-carousel.directive.d.ts +4 -4
- package/app/{modules/keyfilter → shared/directives}/keyfilter.directive.d.ts +1 -7
- package/app/{modules/tooltip → shared/directives}/tooltip.directive.d.ts +3 -9
- package/app/shared/models/carousel-options.model.d.ts +21 -0
- package/app/shared/models/pagination-event.model.d.ts +8 -0
- package/app/shared/models/particle-component-text.model.d.ts +0 -24
- package/app/shared/modules/icons/particle-icons.module.d.ts +7 -0
- package/app/{modules/ordinal-number-pipe → shared/pipes}/ordinal-number.pipe.d.ts +1 -1
- package/app/shared/services/base-data.service.d.ts +2 -2
- package/app/shared/services/dialog.service.d.ts +1 -1
- package/app/{modules/notification → shared}/services/notification.service.d.ts +0 -4
- package/app/{modules/theming → shared}/services/theming.service.d.ts +0 -19
- package/fesm2022/entake-particle.mjs +3871 -5573
- package/fesm2022/entake-particle.mjs.map +1 -1
- package/package.json +16 -25
- package/public_api.d.ts +47 -82
- package/app/modules/accordion/accordion.module.d.ts +0 -11
- package/app/modules/background-carousel/carousel-options.model.d.ts +0 -30
- package/app/modules/background-carousel/particle-background-carousel.module.d.ts +0 -8
- package/app/modules/checkbox/checkbox.module.d.ts +0 -9
- package/app/modules/color-picker/color-picker.module.d.ts +0 -9
- package/app/modules/date-picker/date-picker.module.d.ts +0 -15
- package/app/modules/dialog/dialog.module.d.ts +0 -9
- package/app/modules/dropdown/dropdown.module.d.ts +0 -9
- package/app/modules/endpoint-state/components/endpoint-state.component.d.ts +0 -46
- package/app/modules/endpoint-state/endpoint-state.module.d.ts +0 -8
- package/app/modules/icons/particle-icons.module.d.ts +0 -13
- package/app/modules/idle-timeout/particle-idle-timeout.module.d.ts +0 -9
- package/app/modules/input-mask/input-mask.module.d.ts +0 -8
- package/app/modules/keyfilter/keyfilter.module.d.ts +0 -8
- package/app/modules/layout/components/layout-full-framing/layout-full-framing.component.d.ts +0 -27
- package/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.d.ts +0 -23
- package/app/modules/layout/layout.module.d.ts +0 -10
- package/app/modules/loader/loader.module.d.ts +0 -8
- package/app/modules/multi-select/multi-select.module.d.ts +0 -8
- package/app/modules/notification/notification.module.d.ts +0 -8
- package/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.d.ts +0 -8
- package/app/modules/paginator/pagination-event.model.d.ts +0 -24
- package/app/modules/paginator/particle-paginator.module.d.ts +0 -13
- package/app/modules/popover/popover.module.d.ts +0 -9
- package/app/modules/profile-pic/particle-profile-pic.module.d.ts +0 -9
- package/app/modules/progress-bar/progress-bar.component.d.ts +0 -16
- package/app/modules/progress-bar/progress-bar.module.d.ts +0 -8
- package/app/modules/push-container/particle-push-container.module.d.ts +0 -9
- package/app/modules/push-container/push-container-state.model.d.ts +0 -7
- package/app/modules/push-container/push-container.component.d.ts +0 -137
- package/app/modules/rich-text/particle-rich-text.module.d.ts +0 -15
- package/app/modules/rich-text/render-rich-text.component.d.ts +0 -6
- package/app/modules/scroll-to-top/particle-scroll-to-top.module.d.ts +0 -8
- package/app/modules/scroll-to-top/scroll-to-top.component.d.ts +0 -19
- package/app/modules/slideover/particle-slideover.module.d.ts +0 -8
- package/app/modules/slideover/slideover.component.d.ts +0 -35
- package/app/modules/slider/slider.module.d.ts +0 -9
- package/app/modules/theming/components/theming.component.d.ts +0 -43
- package/app/modules/theming/theming.module.d.ts +0 -12
- package/app/modules/toggle-switch/toggle-switch.module.d.ts +0 -8
- package/app/modules/tooltip/tooltip.module.d.ts +0 -8
- package/app/modules/week-picker/week-picker.module.d.ts +0 -13
- package/app/shared/enums/endpoint-status.enum.d.ts +0 -9
- package/esm2022/app/modules/accordion/accordion.component.mjs +0 -101
- package/esm2022/app/modules/accordion/accordion.module.mjs +0 -37
- package/esm2022/app/modules/accordion/directives/accordion-content.directive.mjs +0 -17
- package/esm2022/app/modules/accordion/directives/accordion-header.directive.mjs +0 -17
- package/esm2022/app/modules/accordion/directives/accordion-item.directive.mjs +0 -36
- package/esm2022/app/modules/background-carousel/background-carousel.directive.mjs +0 -91
- package/esm2022/app/modules/background-carousel/carousel-options.model.mjs +0 -36
- package/esm2022/app/modules/background-carousel/particle-background-carousel.module.mjs +0 -24
- package/esm2022/app/modules/checkbox/checkbox.component.mjs +0 -108
- package/esm2022/app/modules/checkbox/checkbox.module.mjs +0 -28
- package/esm2022/app/modules/color-picker/color-picker.component.mjs +0 -306
- package/esm2022/app/modules/color-picker/color-picker.module.mjs +0 -19
- package/esm2022/app/modules/date-picker/components/calendar/calendar.component.mjs +0 -496
- package/esm2022/app/modules/date-picker/components/date-range-picker/date-range-picker.component.mjs +0 -250
- package/esm2022/app/modules/date-picker/date-picker.component.mjs +0 -538
- package/esm2022/app/modules/date-picker/date-picker.module.mjs +0 -56
- package/esm2022/app/modules/dialog/dialog.component.mjs +0 -177
- package/esm2022/app/modules/dialog/dialog.module.mjs +0 -28
- package/esm2022/app/modules/dropdown/dropdown.component.mjs +0 -682
- package/esm2022/app/modules/dropdown/dropdown.module.mjs +0 -28
- package/esm2022/app/modules/dropdown/models/dropdown-option-group.model.mjs +0 -2
- package/esm2022/app/modules/dropdown/models/dropdown-option.model.mjs +0 -2
- package/esm2022/app/modules/endpoint-state/components/endpoint-state.component.mjs +0 -75
- package/esm2022/app/modules/endpoint-state/endpoint-state.module.mjs +0 -22
- package/esm2022/app/modules/icons/components/icon-select.component.mjs +0 -376
- package/esm2022/app/modules/icons/models/fontawesome-icons-brands.model.mjs +0 -471
- package/esm2022/app/modules/icons/models/fontawesome-icons-regular.model.mjs +0 -166
- package/esm2022/app/modules/icons/models/fontawesome-icons-solid.model.mjs +0 -1016
- package/esm2022/app/modules/icons/models/particle-icons-brands.model.mjs +0 -24
- package/esm2022/app/modules/icons/models/particle-icons-regular.model.mjs +0 -50
- package/esm2022/app/modules/icons/models/particle-icons-solid.model.mjs +0 -89
- package/esm2022/app/modules/icons/particle-icons.module.mjs +0 -66
- package/esm2022/app/modules/icons/services/icons.service.mjs +0 -82
- package/esm2022/app/modules/idle-timeout/idle-timeout.component.mjs +0 -85
- package/esm2022/app/modules/idle-timeout/idle-timer.mjs +0 -66
- package/esm2022/app/modules/idle-timeout/particle-idle-timeout.module.mjs +0 -28
- package/esm2022/app/modules/input-mask/input-mask.component.mjs +0 -594
- package/esm2022/app/modules/input-mask/input-mask.module.mjs +0 -18
- package/esm2022/app/modules/keyfilter/keyfilter.directive.mjs +0 -174
- package/esm2022/app/modules/keyfilter/keyfilter.module.mjs +0 -18
- package/esm2022/app/modules/layout/components/layout-full-framing/layout-full-framing.component.mjs +0 -81
- package/esm2022/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.mjs +0 -67
- package/esm2022/app/modules/layout/layout.module.mjs +0 -33
- package/esm2022/app/modules/loader/components/loader.component.mjs +0 -30
- package/esm2022/app/modules/loader/loader.module.mjs +0 -24
- package/esm2022/app/modules/multi-select/models/multi-select-option-group.model.mjs +0 -2
- package/esm2022/app/modules/multi-select/models/multi-select-option.model.mjs +0 -2
- package/esm2022/app/modules/multi-select/multi-select.component.mjs +0 -665
- package/esm2022/app/modules/multi-select/multi-select.module.mjs +0 -18
- package/esm2022/app/modules/notification/models/notification.model.mjs +0 -2
- package/esm2022/app/modules/notification/notification.component.mjs +0 -122
- package/esm2022/app/modules/notification/notification.module.mjs +0 -18
- package/esm2022/app/modules/notification/services/notification.service.mjs +0 -84
- package/esm2022/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.mjs +0 -20
- package/esm2022/app/modules/ordinal-number-pipe/ordinal-number.pipe.mjs +0 -49
- package/esm2022/app/modules/paginator/pagination-event.model.mjs +0 -29
- package/esm2022/app/modules/paginator/paginator.component.mjs +0 -207
- package/esm2022/app/modules/paginator/particle-paginator.module.mjs +0 -48
- package/esm2022/app/modules/popover/popover.component.mjs +0 -352
- package/esm2022/app/modules/popover/popover.module.mjs +0 -24
- package/esm2022/app/modules/profile-pic/particle-profile-pic.module.mjs +0 -28
- package/esm2022/app/modules/profile-pic/profile-pic.component.mjs +0 -75
- package/esm2022/app/modules/progress-bar/progress-bar.component.mjs +0 -43
- package/esm2022/app/modules/progress-bar/progress-bar.module.mjs +0 -24
- package/esm2022/app/modules/push-container/particle-push-container.module.mjs +0 -26
- package/esm2022/app/modules/push-container/push-container-state.model.mjs +0 -2
- package/esm2022/app/modules/push-container/push-container.component.mjs +0 -363
- package/esm2022/app/modules/rich-text/particle-rich-text.module.mjs +0 -64
- package/esm2022/app/modules/rich-text/render-rich-text.component.mjs +0 -18
- package/esm2022/app/modules/rich-text/rich-text-capabilities.model.mjs +0 -2
- package/esm2022/app/modules/rich-text/rich-text.component.mjs +0 -209
- package/esm2022/app/modules/scroll-to-top/particle-scroll-to-top.module.mjs +0 -24
- package/esm2022/app/modules/scroll-to-top/scroll-to-top.component.mjs +0 -49
- package/esm2022/app/modules/slideover/particle-slideover.module.mjs +0 -24
- package/esm2022/app/modules/slideover/slideover.component.mjs +0 -115
- package/esm2022/app/modules/slider/slider.component.mjs +0 -243
- package/esm2022/app/modules/slider/slider.module.mjs +0 -26
- package/esm2022/app/modules/theming/components/theming.component.mjs +0 -86
- package/esm2022/app/modules/theming/models/theme.model.mjs +0 -9
- package/esm2022/app/modules/theming/services/theme-change-detection.service.mjs +0 -38
- package/esm2022/app/modules/theming/services/theming.service.mjs +0 -510
- package/esm2022/app/modules/theming/theming.module.mjs +0 -55
- package/esm2022/app/modules/toggle-switch/models/toggle-options.model.mjs +0 -2
- package/esm2022/app/modules/toggle-switch/toggle-switch.component.mjs +0 -107
- package/esm2022/app/modules/toggle-switch/toggle-switch.module.mjs +0 -24
- package/esm2022/app/modules/tooltip/tooltip.directive.mjs +0 -381
- package/esm2022/app/modules/tooltip/tooltip.module.mjs +0 -18
- package/esm2022/app/modules/week-picker/week-picker.component.mjs +0 -511
- package/esm2022/app/modules/week-picker/week-picker.module.mjs +0 -40
- package/esm2022/app/shared/enums/endpoint-status.enum.mjs +0 -11
- package/esm2022/app/shared/interceptors/json.interceptor.mjs +0 -23
- package/esm2022/app/shared/models/auditable.model.mjs +0 -2
- package/esm2022/app/shared/models/data-list.model.mjs +0 -2
- package/esm2022/app/shared/models/id.model.mjs +0 -2
- package/esm2022/app/shared/models/observable-container.mjs +0 -15
- package/esm2022/app/shared/models/particle-component-text.model.mjs +0 -2
- package/esm2022/app/shared/services/base-data.service.mjs +0 -190
- package/esm2022/app/shared/services/dialog.service.mjs +0 -50
- package/esm2022/app/shared/services/local-storage.service.mjs +0 -60
- package/esm2022/entake-particle.mjs +0 -5
- package/esm2022/public_api.mjs +0 -98
- /package/app/{modules/dropdown → shared}/models/dropdown-option-group.model.d.ts +0 -0
- /package/app/{modules/dropdown → shared}/models/dropdown-option.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/fontawesome-icons-brands.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/fontawesome-icons-regular.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/fontawesome-icons-solid.model.d.ts +0 -0
- /package/app/{modules/multi-select → shared}/models/multi-select-option-group.model.d.ts +0 -0
- /package/app/{modules/multi-select → shared}/models/multi-select-option.model.d.ts +0 -0
- /package/app/{modules/notification → shared}/models/notification.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/particle-icons-brands.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/particle-icons-regular.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/particle-icons-solid.model.d.ts +0 -0
- /package/app/{modules/rich-text → shared/models}/rich-text-capabilities.model.d.ts +0 -0
- /package/app/{modules/theming → shared}/models/theme.model.d.ts +0 -0
- /package/app/{modules/toggle-switch → shared}/models/toggle-options.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/services/icons.service.d.ts +0 -0
- /package/app/{modules/idle-timeout → shared/services}/idle-timer.d.ts +0 -0
- /package/app/{modules/theming → shared}/services/theme-change-detection.service.d.ts +0 -0
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, forwardRef, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { Editor } from '@tiptap/core';
|
|
3
|
-
import StarterKit from '@tiptap/starter-kit';
|
|
4
|
-
import Link from '@tiptap/extension-link';
|
|
5
|
-
import Placeholder from '@tiptap/extension-placeholder';
|
|
6
|
-
import TextAlign from '@tiptap/extension-text-align';
|
|
7
|
-
import Image from '@tiptap/extension-image';
|
|
8
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common";
|
|
11
|
-
import * as i2 from "../tooltip/tooltip.directive";
|
|
12
|
-
import * as i3 from "ngx-tiptap";
|
|
13
|
-
import * as i4 from "@angular/forms";
|
|
14
|
-
import * as i5 from "../dialog/dialog.component";
|
|
15
|
-
export const RICH_TEXT_VALUE_ACCESSOR = {
|
|
16
|
-
provide: NG_VALUE_ACCESSOR,
|
|
17
|
-
useExisting: forwardRef(() => RichTextComponent),
|
|
18
|
-
multi: true
|
|
19
|
-
};
|
|
20
|
-
export class RichTextComponent {
|
|
21
|
-
placeholder = '';
|
|
22
|
-
hideControls = false;
|
|
23
|
-
height = '100px';
|
|
24
|
-
get readonly() {
|
|
25
|
-
return this._editable;
|
|
26
|
-
}
|
|
27
|
-
set readonly(readonly) {
|
|
28
|
-
this._editable = !readonly;
|
|
29
|
-
this.editor.setEditable(this._editable);
|
|
30
|
-
}
|
|
31
|
-
text = {
|
|
32
|
-
heading1: 'Heading 1',
|
|
33
|
-
heading2: 'Heading 2',
|
|
34
|
-
bold: 'Bold',
|
|
35
|
-
italic: 'Italic',
|
|
36
|
-
strike: 'Strike',
|
|
37
|
-
bulletedList: 'Bulleted List',
|
|
38
|
-
orderedList: 'Ordered List',
|
|
39
|
-
leftAlign: 'Left Align',
|
|
40
|
-
centerAlign: 'Center Align',
|
|
41
|
-
rightAlign: 'Right Align',
|
|
42
|
-
justifyAlign: 'Justify Align',
|
|
43
|
-
setLink: 'Set Link',
|
|
44
|
-
removeLink: 'Remove Link',
|
|
45
|
-
clearFormat: 'Clear Format',
|
|
46
|
-
modifyLink: 'Modify Link',
|
|
47
|
-
cancel: 'Cancel',
|
|
48
|
-
update: 'Update',
|
|
49
|
-
url: 'URL',
|
|
50
|
-
addImage: 'Add Image',
|
|
51
|
-
modifyImage: 'Modify Image'
|
|
52
|
-
};
|
|
53
|
-
capabilities = {
|
|
54
|
-
heading: true,
|
|
55
|
-
textDecoration: true,
|
|
56
|
-
list: true,
|
|
57
|
-
alignment: true,
|
|
58
|
-
link: true,
|
|
59
|
-
images: false
|
|
60
|
-
};
|
|
61
|
-
borderRadius = '0px';
|
|
62
|
-
textChanged = new EventEmitter();
|
|
63
|
-
showDialog = null;
|
|
64
|
-
dialogLink = null;
|
|
65
|
-
dialogType = null;
|
|
66
|
-
/**
|
|
67
|
-
* Function called on change
|
|
68
|
-
*/
|
|
69
|
-
onChange;
|
|
70
|
-
/**
|
|
71
|
-
* Function called on touch
|
|
72
|
-
*/
|
|
73
|
-
onTouched;
|
|
74
|
-
_value = null;
|
|
75
|
-
_editable = true;
|
|
76
|
-
window = window;
|
|
77
|
-
editor = new Editor({
|
|
78
|
-
extensions: [
|
|
79
|
-
StarterKit,
|
|
80
|
-
Link.configure({
|
|
81
|
-
openOnClick: false,
|
|
82
|
-
HTMLAttributes: {
|
|
83
|
-
class: 'rich-text-link',
|
|
84
|
-
target: '_blank'
|
|
85
|
-
},
|
|
86
|
-
}),
|
|
87
|
-
TextAlign.configure({
|
|
88
|
-
types: ['heading', 'paragraph'],
|
|
89
|
-
}),
|
|
90
|
-
Placeholder.configure({
|
|
91
|
-
placeholder: () => this.placeholder
|
|
92
|
-
}),
|
|
93
|
-
Image
|
|
94
|
-
],
|
|
95
|
-
editorProps: {
|
|
96
|
-
attributes: {
|
|
97
|
-
class: '',
|
|
98
|
-
spellcheck: 'true',
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
enablePasteRules: [Link, StarterKit, TextAlign]
|
|
102
|
-
});
|
|
103
|
-
get value() {
|
|
104
|
-
return this._value;
|
|
105
|
-
}
|
|
106
|
-
set value(value) {
|
|
107
|
-
if (value === '<p></p>') {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
if (value !== this._value) {
|
|
111
|
-
this._value = value;
|
|
112
|
-
if (this.onChange) {
|
|
113
|
-
this.onChange(value);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
ngAfterViewInit() {
|
|
118
|
-
this.editor.setEditable(this._editable);
|
|
119
|
-
this.editor.on('update', ({ editor }) => {
|
|
120
|
-
this.textChanged.emit({
|
|
121
|
-
textValue: editor.getText(),
|
|
122
|
-
htmlValue: this._value
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
onBlur() {
|
|
127
|
-
if (this.onTouched) {
|
|
128
|
-
this.onTouched();
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
writeValue(value) {
|
|
132
|
-
if (value !== this._value) {
|
|
133
|
-
this._value = value;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
registerOnChange(fn) {
|
|
137
|
-
this.onChange = fn;
|
|
138
|
-
}
|
|
139
|
-
registerOnTouched(fn) {
|
|
140
|
-
this.onTouched = fn;
|
|
141
|
-
}
|
|
142
|
-
setDisabledState(isDisabled) {
|
|
143
|
-
this.editor.setEditable(isDisabled);
|
|
144
|
-
}
|
|
145
|
-
openLinkDialog() {
|
|
146
|
-
const previousUrl = this.editor.getAttributes('link').href;
|
|
147
|
-
this.showDialog = {};
|
|
148
|
-
this.dialogLink = previousUrl;
|
|
149
|
-
this.dialogType = 'link';
|
|
150
|
-
}
|
|
151
|
-
openImageDialog() {
|
|
152
|
-
const previousUrl = this.editor.getAttributes('image').src;
|
|
153
|
-
this.showDialog = {};
|
|
154
|
-
this.dialogLink = previousUrl;
|
|
155
|
-
this.dialogType = 'image';
|
|
156
|
-
}
|
|
157
|
-
changeEditorLink(action) {
|
|
158
|
-
switch (action) {
|
|
159
|
-
case 'remove':
|
|
160
|
-
this.editor.chain().focus().extendMarkRange('link').unsetLink().run();
|
|
161
|
-
break;
|
|
162
|
-
case 'save':
|
|
163
|
-
if (this.dialogType === 'link') {
|
|
164
|
-
this.editor.chain().focus().extendMarkRange('link').setLink({
|
|
165
|
-
href: this.dialogLink,
|
|
166
|
-
target: this.dialogLink && !this.dialogLink.startsWith('/') ? '_blank' : '_self'
|
|
167
|
-
}).run();
|
|
168
|
-
}
|
|
169
|
-
else if (this.dialogType === 'image') {
|
|
170
|
-
this.editor.chain().focus().setImage({ src: this.dialogLink }).run();
|
|
171
|
-
}
|
|
172
|
-
break;
|
|
173
|
-
default:
|
|
174
|
-
console.log(action);
|
|
175
|
-
}
|
|
176
|
-
this.dialogLink = null;
|
|
177
|
-
this.dialogType = null;
|
|
178
|
-
this.showDialog = null;
|
|
179
|
-
}
|
|
180
|
-
focus(position) {
|
|
181
|
-
if (!position) {
|
|
182
|
-
position = 'start';
|
|
183
|
-
}
|
|
184
|
-
this.editor.commands.focus(position);
|
|
185
|
-
}
|
|
186
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RichTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
187
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RichTextComponent, selector: "particle-rich-text", inputs: { placeholder: "placeholder", hideControls: "hideControls", height: "height", readonly: "readonly", text: "text", capabilities: "capabilities", borderRadius: "borderRadius" }, outputs: { textChanged: "textChanged" }, providers: [RICH_TEXT_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"row_block width100 content_color ptl_brdr_radius ptl_brdr_color ptl_brdr_size\" style=\"overflow: hidden\">\r\n <ng-container *ngIf=\"!this.hideControls && this.editor.isEditable\">\r\n <div class=\"row ptl_input_bg_color ptl_brdr_color ptl_brdr_size border_bottom wrap hide_element\">\r\n <ng-container *ngIf=\"capabilities.heading\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"heading1\"\r\n [attr.aria-label]=\"text.heading1\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right5 mar_left5 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.heading1\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleHeading({ level: 1 }).run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('heading', { level: 1 }) }\"\r\n >\r\n <i class=\"fas fa-header fa-fw\"></i>1\r\n </button>\r\n <button\r\n id=\"heading2\"\r\n [attr.aria-label]=\"text.heading2\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right5 mar_left5 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.heading2\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleHeading({ level: 2 }).run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('heading', { level: 2 }) }\"\r\n >\r\n <i class=\"fas fa-header fa-fw\"></i>2\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.textDecoration\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"bold\"\r\n [attr.aria-label]=\"text.bold\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.bold\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleBold().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('bold') }\"\r\n >\r\n <i class=\"fas fa-bold fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"italic\"\r\n [attr.aria-label]=\"text.italic\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.italic\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleItalic().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('italic') }\"\r\n >\r\n <i class=\"fas fa-italic fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"strike\"\r\n [attr.aria-label]=\"text.strike\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.strike\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleStrike().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('strike') }\"\r\n >\r\n <i class=\"fas fa-strikethrough fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.list\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"bullet-list\"\r\n [attr.aria-label]=\"text.bulletedList\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.bulletedList\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleBulletList().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('bullet-list') }\"\r\n >\r\n <i class=\"fas fa-list fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"ordered-list\"\r\n [attr.aria-label]=\"text.orderedList\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.orderedList\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleOrderedList().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('ordered-list') }\"\r\n >\r\n <i class=\"fas fa-list-ol fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.alignment\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"left-align\"\r\n [attr.aria-label]=\"text.leftAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.leftAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('left').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'left' }) }\"\r\n >\r\n <i class=\"fas fa-align-left fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"center-align\"\r\n [attr.aria-label]=\"text.centerAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.centerAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('center').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'center' }) }\"\r\n >\r\n <i class=\"fas fa-align-center fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"right-align\"\r\n [attr.aria-label]=\"text.rightAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.rightAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('right').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'right' }) }\"\r\n >\r\n <i class=\"fas fa-align-right fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"justify-align\"\r\n [attr.aria-label]=\"text.justifyAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.justifyAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('justify').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'justify' }) }\"\r\n >\r\n <i class=\"fas fa-align-justify fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.link\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"link\"\r\n [attr.aria-label]=\"text.setLink\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.setLink\" tooltipPosition=\"top\"\r\n (click)=\"openLinkDialog()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('link') }\"\r\n >\r\n <i class=\"fas fa-link fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"unlink\"\r\n [attr.aria-label]=\"text.removeLink\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.removeLink\" tooltipPosition=\"top\"\r\n (click)=\"this.editor.isActive('link') ? changeEditorLink('remove') : null\"\r\n [disabled]=\"!this.editor.isActive('link')\"\r\n >\r\n <i class=\"fas fa-unlink fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.images\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"image\"\r\n [attr.aria-label]=\"this.editor.isActive('image') ? text.modifyImage : text.addImage\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n (click)=\"openImageDialog()\"\r\n [particleTooltip]=\"this.editor.isActive('image') ? text.modifyImage : text.addImage\"\r\n tooltipPosition=\"top\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('image') }\"\r\n >\r\n <i class=\"far fa-image fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <div class=\"col v_center pad_5\">\r\n <button\r\n id=\"clear-format\"\r\n [attr.aria-label]=\"text.clearFormat\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.clearFormat\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().clearNodes().unsetAllMarks().run()\"\r\n >\r\n <i class=\"fas fa-text-slash fa-fw\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"pad_10 ptl_input_text_size scroll_yauto\" [style.height]=\"this.height\">\r\n <tiptap-editor [editor]=\"editor\" [(ngModel)]=\"value\"></tiptap-editor>\r\n </div>\r\n</div>\r\n\r\n<particle-dialog\r\n [title]=\"dialogType === 'link' ? text.modifyLink : text.modifyImage\"\r\n titleClass=\"header_color min_h40\"\r\n [object]=\"showDialog\"\r\n [allowClose]=\"false\"\r\n [borderRadius]=\"borderRadius\"\r\n width=\"400px\"\r\n height=\"150px\"\r\n>\r\n <div class=\"pad_15 ptl_input_text_size\" [style.height]=\"window.innerWidth > 768 ? '70px' : 'calc(100% - 40px)'\">\r\n <input class=\"access input md\"\r\n [(ngModel)]=\"dialogLink\"\r\n [attr.aria-label]=\"text.url\"\r\n placeholder=\"eg. https://www.google.com\"\r\n (keyup.enter)=\"changeEditorLink('save')\"\r\n />\r\n </div>\r\n <div class=\"col min_h40 footer_color\">\r\n <div class=\"row center_right pad_right15 pad_left15\">\r\n <div class=\"col\">\r\n <button class=\"access btnset clear\" [attr.aria-label]=\"text.cancel\" (click)=\"changeEditorLink('cancel')\">\r\n <div class=\" pad_5\">{{text.cancel}}</div>\r\n </button>\r\n <div class=\"mar_lr5 ptl_brdr_size ptl_brdr_color border_left\">\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"access btnset spaced md hov_glow ok_button_color ptl_brdr_radius\"\r\n [attr.aria-label]=\"text.update\"\r\n (click)=\"changeEditorLink('save')\"\r\n >\r\n <div class=\"brdr border_right mar_right5 pad_right5\"><i class=\"fas fa-check\"></i></div>\r\n <div>{{text.update}}</div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</particle-dialog>\r\n", styles: [".ProseMirror:focus{outline:none}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;pointer-events:none}.chip_size{display:flex;align-items:center;justify-content:center;width:22px;height:22px;max-width:22px;max-height:22px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TooltipDirective, selector: "[particleTooltip]", inputs: ["particleTooltip", "tooltipPosition", "tooltipDisabled"] }, { kind: "directive", type: i3.EditorDirective, selector: "tiptap[editor], [tiptap][editor], tiptap-editor[editor], [tiptapEditor][editor]", inputs: ["editor", "outputFormat"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DialogComponent, selector: "particle-dialog", inputs: ["object", "title", "titleClass", "showTitle", "allowClose", "bodyClass", "height", "width", "borderRadius", "text"], outputs: ["closed", "opened"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
188
|
-
}
|
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RichTextComponent, decorators: [{
|
|
190
|
-
type: Component,
|
|
191
|
-
args: [{ selector: 'particle-rich-text', providers: [RICH_TEXT_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<div class=\"row_block width100 content_color ptl_brdr_radius ptl_brdr_color ptl_brdr_size\" style=\"overflow: hidden\">\r\n <ng-container *ngIf=\"!this.hideControls && this.editor.isEditable\">\r\n <div class=\"row ptl_input_bg_color ptl_brdr_color ptl_brdr_size border_bottom wrap hide_element\">\r\n <ng-container *ngIf=\"capabilities.heading\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"heading1\"\r\n [attr.aria-label]=\"text.heading1\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right5 mar_left5 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.heading1\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleHeading({ level: 1 }).run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('heading', { level: 1 }) }\"\r\n >\r\n <i class=\"fas fa-header fa-fw\"></i>1\r\n </button>\r\n <button\r\n id=\"heading2\"\r\n [attr.aria-label]=\"text.heading2\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right5 mar_left5 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.heading2\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleHeading({ level: 2 }).run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('heading', { level: 2 }) }\"\r\n >\r\n <i class=\"fas fa-header fa-fw\"></i>2\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.textDecoration\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"bold\"\r\n [attr.aria-label]=\"text.bold\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.bold\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleBold().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('bold') }\"\r\n >\r\n <i class=\"fas fa-bold fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"italic\"\r\n [attr.aria-label]=\"text.italic\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.italic\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleItalic().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('italic') }\"\r\n >\r\n <i class=\"fas fa-italic fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"strike\"\r\n [attr.aria-label]=\"text.strike\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.strike\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleStrike().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('strike') }\"\r\n >\r\n <i class=\"fas fa-strikethrough fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.list\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"bullet-list\"\r\n [attr.aria-label]=\"text.bulletedList\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.bulletedList\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleBulletList().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('bullet-list') }\"\r\n >\r\n <i class=\"fas fa-list fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"ordered-list\"\r\n [attr.aria-label]=\"text.orderedList\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.orderedList\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().toggleOrderedList().run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('ordered-list') }\"\r\n >\r\n <i class=\"fas fa-list-ol fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.alignment\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"left-align\"\r\n [attr.aria-label]=\"text.leftAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.leftAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('left').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'left' }) }\"\r\n >\r\n <i class=\"fas fa-align-left fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"center-align\"\r\n [attr.aria-label]=\"text.centerAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.centerAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('center').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'center' }) }\"\r\n >\r\n <i class=\"fas fa-align-center fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"right-align\"\r\n [attr.aria-label]=\"text.rightAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.rightAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('right').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'right' }) }\"\r\n >\r\n <i class=\"fas fa-align-right fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"justify-align\"\r\n [attr.aria-label]=\"text.justifyAlign\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.justifyAlign\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().setTextAlign('justify').run()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive({ textAlign: 'justify' }) }\"\r\n >\r\n <i class=\"fas fa-align-justify fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.link\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"link\"\r\n [attr.aria-label]=\"text.setLink\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.setLink\" tooltipPosition=\"top\"\r\n (click)=\"openLinkDialog()\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('link') }\"\r\n >\r\n <i class=\"fas fa-link fa-fw\"></i>\r\n </button>\r\n <button\r\n id=\"unlink\"\r\n [attr.aria-label]=\"text.removeLink\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.removeLink\" tooltipPosition=\"top\"\r\n (click)=\"this.editor.isActive('link') ? changeEditorLink('remove') : null\"\r\n [disabled]=\"!this.editor.isActive('link')\"\r\n >\r\n <i class=\"fas fa-unlink fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"capabilities.images\">\r\n <div class=\"col v_center ptl_brdr_color ptl_brdr_size border_right pad_5\">\r\n <button\r\n id=\"image\"\r\n [attr.aria-label]=\"this.editor.isActive('image') ? text.modifyImage : text.addImage\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n (click)=\"openImageDialog()\"\r\n [particleTooltip]=\"this.editor.isActive('image') ? text.modifyImage : text.addImage\"\r\n tooltipPosition=\"top\"\r\n [ngClass]=\"{ 'ok_button_color': this.editor.isActive('image') }\"\r\n >\r\n <i class=\"far fa-image fa-fw\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <div class=\"col v_center pad_5\">\r\n <button\r\n id=\"clear-format\"\r\n [attr.aria-label]=\"text.clearFormat\"\r\n class=\"access btnset chip_size content_color_dark_1 mar_right3 mar_left3 ptl_brdr_radius hov_darken\"\r\n [particleTooltip]=\"text.clearFormat\" tooltipPosition=\"top\"\r\n (click)=\"editor.chain().focus().clearNodes().unsetAllMarks().run()\"\r\n >\r\n <i class=\"fas fa-text-slash fa-fw\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"pad_10 ptl_input_text_size scroll_yauto\" [style.height]=\"this.height\">\r\n <tiptap-editor [editor]=\"editor\" [(ngModel)]=\"value\"></tiptap-editor>\r\n </div>\r\n</div>\r\n\r\n<particle-dialog\r\n [title]=\"dialogType === 'link' ? text.modifyLink : text.modifyImage\"\r\n titleClass=\"header_color min_h40\"\r\n [object]=\"showDialog\"\r\n [allowClose]=\"false\"\r\n [borderRadius]=\"borderRadius\"\r\n width=\"400px\"\r\n height=\"150px\"\r\n>\r\n <div class=\"pad_15 ptl_input_text_size\" [style.height]=\"window.innerWidth > 768 ? '70px' : 'calc(100% - 40px)'\">\r\n <input class=\"access input md\"\r\n [(ngModel)]=\"dialogLink\"\r\n [attr.aria-label]=\"text.url\"\r\n placeholder=\"eg. https://www.google.com\"\r\n (keyup.enter)=\"changeEditorLink('save')\"\r\n />\r\n </div>\r\n <div class=\"col min_h40 footer_color\">\r\n <div class=\"row center_right pad_right15 pad_left15\">\r\n <div class=\"col\">\r\n <button class=\"access btnset clear\" [attr.aria-label]=\"text.cancel\" (click)=\"changeEditorLink('cancel')\">\r\n <div class=\" pad_5\">{{text.cancel}}</div>\r\n </button>\r\n <div class=\"mar_lr5 ptl_brdr_size ptl_brdr_color border_left\">\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"access btnset spaced md hov_glow ok_button_color ptl_brdr_radius\"\r\n [attr.aria-label]=\"text.update\"\r\n (click)=\"changeEditorLink('save')\"\r\n >\r\n <div class=\"brdr border_right mar_right5 pad_right5\"><i class=\"fas fa-check\"></i></div>\r\n <div>{{text.update}}</div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</particle-dialog>\r\n", styles: [".ProseMirror:focus{outline:none}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;pointer-events:none}.chip_size{display:flex;align-items:center;justify-content:center;width:22px;height:22px;max-width:22px;max-height:22px}\n"] }]
|
|
192
|
-
}], propDecorators: { placeholder: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], hideControls: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}], height: [{
|
|
197
|
-
type: Input
|
|
198
|
-
}], readonly: [{
|
|
199
|
-
type: Input
|
|
200
|
-
}], text: [{
|
|
201
|
-
type: Input
|
|
202
|
-
}], capabilities: [{
|
|
203
|
-
type: Input
|
|
204
|
-
}], borderRadius: [{
|
|
205
|
-
type: Input
|
|
206
|
-
}], textChanged: [{
|
|
207
|
-
type: Output
|
|
208
|
-
}] } });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yaWNoLXRleHQvcmljaC10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yaWNoLXRleHQvcmljaC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sVUFBVSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQzFDLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sU0FBUyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLHlCQUF5QixDQUFDO0FBQzVDLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUl2RSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBUTtJQUMzQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBVUYsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBR2pCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFHckIsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUVqQixJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFB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Q0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBQ3RFLENBQUM7Z0JBQ0QsTUFBTTtZQUNSO2dCQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBVyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBVyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBYztRQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt1R0EvTVUsaUJBQWlCOzJGQUFqQixpQkFBaUIsOFFBSmpCLENBQUMsd0JBQXdCLENBQUMsMEJDckJ2QyxrMVdBZ09BOzsyRkR2TWEsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLG9CQUFvQixhQUduQixDQUFDLHdCQUF3QixDQUFDLGlCQUN0QixpQkFBaUIsQ0FBQyxJQUFJOzhCQU1yQyxXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJRixRQUFRO3NCQURYLEtBQUs7Z0JBV04sSUFBSTtzQkFESCxLQUFLO2dCQXlCTixZQUFZO3NCQURYLEtBQUs7Z0JBV04sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtFZGl0b3J9IGZyb20gJ0B0aXB0YXAvY29yZSc7XHJcbmltcG9ydCBTdGFydGVyS2l0IGZyb20gJ0B0aXB0YXAvc3RhcnRlci1raXQnO1xyXG5pbXBvcnQgTGluayBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi1saW5rJztcclxuaW1wb3J0IFBsYWNlaG9sZGVyIGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLXBsYWNlaG9sZGVyJztcclxuaW1wb3J0IFRleHRBbGlnbiBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi10ZXh0LWFsaWduJztcclxuaW1wb3J0IEltYWdlIGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLWltYWdlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtSaWNoVGV4dEVkaXRvclRleHR9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvcGFydGljbGUtY29tcG9uZW50LXRleHQubW9kZWwnO1xyXG5pbXBvcnQge1JpY2hUZXh0Q2FwYWJpbGl0aWVzfSBmcm9tICcuL3JpY2gtdGV4dC1jYXBhYmlsaXRpZXMubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJJQ0hfVEVYVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJpY2hUZXh0Q29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwYXJ0aWNsZS1yaWNoLXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yaWNoLXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JpY2gtdGV4dC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbUklDSF9URVhUX1ZBTFVFX0FDQ0VTU09SXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmljaFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2Vob2xkZXIgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBoaWRlQ29udHJvbHMgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBoZWlnaHQgPSAnMTAwcHgnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcclxuICB9XHJcblxyXG4gIHNldCByZWFkb25seShyZWFkb25seTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZWRpdGFibGUgPSAhcmVhZG9ubHk7XHJcbiAgICB0aGlzLmVkaXRvci5zZXRFZGl0YWJsZSh0aGlzLl9lZGl0YWJsZSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHRleHQ6IFJpY2hUZXh0RWRpdG9yVGV4dCA9IHtcclxuICAgIGhlYWRpbmcxOiAnSGVhZGluZyAxJyxcclxuICAgIGhlYWRpbmcyOiAnSGVhZGluZyAyJyxcclxuICAgIGJvbGQ6ICdCb2xkJyxcclxuICAgIGl0YWxpYzogJ0l0YWxpYycsXHJcbiAgICBzdHJpa2U6ICdTdHJpa2UnLFxyXG4gICAgYnVsbGV0ZWRMaXN0OiAnQnVsbGV0ZWQgTGlzdCcsXHJcbiAgICBvcmRlcmVkTGlzdDogJ09yZGVyZWQgTGlzdCcsXHJcbiAgICBsZWZ0QWxpZ246ICdMZWZ0IEFsaWduJyxcclxuICAgIGNlbnRlckFsaWduOiAnQ2VudGVyIEFsaWduJyxcclxuICAgIHJpZ2h0QWxpZ246ICdSaWdodCBBbGlnbicsXHJcbiAgICBqdXN0aWZ5QWxpZ246ICdKdXN0aWZ5IEFsaWduJyxcclxuICAgIHNldExpbms6ICdTZXQgTGluaycsXHJcbiAgICByZW1vdmVMaW5rOiAnUmVtb3ZlIExpbmsnLFxyXG4gICAgY2xlYXJGb3JtYXQ6ICdDbGVhciBGb3JtYXQnLFxyXG4gICAgbW9kaWZ5TGluazogJ01vZGlmeSBMaW5rJyxcclxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXHJcbiAgICB1cGRhdGU6ICdVcGRhdGUnLFxyXG4gICAgdXJsOiAnVVJMJyxcclxuICAgIGFkZEltYWdlOiAnQWRkIEltYWdlJyxcclxuICAgIG1vZGlmeUltYWdlOiAnTW9kaWZ5IEltYWdlJ1xyXG4gIH0gYXMgUmljaFRleHRFZGl0b3JUZXh0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNhcGFiaWxpdGllcyA9IHtcclxuICAgIGhlYWRpbmc6IHRydWUsXHJcbiAgICB0ZXh0RGVjb3JhdGlvbjogdHJ1ZSxcclxuICAgIGxpc3Q6IHRydWUsXHJcbiAgICBhbGlnbm1lbnQ6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgaW1hZ2VzOiBmYWxzZVxyXG4gIH0gYXMgUmljaFRleHRDYXBhYmlsaXRpZXM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm9yZGVyUmFkaXVzID0gJzBweCc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHRleHRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBodG1sVmFsdWU6IHN0cmluZyxcclxuICAgIHRleHRWYWx1ZTogc3RyaW5nXHJcbiAgfT4oKTtcclxuXHJcbiAgc2hvd0RpYWxvZzogYW55ID0gbnVsbDtcclxuICBkaWFsb2dMaW5rOiBzdHJpbmcgPSBudWxsIGFzIGFueTtcclxuICBkaWFsb2dUeXBlOiBzdHJpbmcgPSBudWxsIGFzIGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gY2FsbGVkIG9uIGNoYW5nZVxyXG4gICAqL1xyXG4gIG9uQ2hhbmdlOiAoKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiBjYWxsZWQgb24gdG91Y2hcclxuICAgKi9cclxuICBvblRvdWNoZWQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9IG51bGwgYXMgYW55O1xyXG4gIHByaXZhdGUgX2VkaXRhYmxlID0gdHJ1ZTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvdyA9IHdpbmRvdztcclxuXHJcbiAgZWRpdG9yID0gbmV3IEVkaXRvcih7XHJcbiAgICBleHRlbnNpb25zOiBbXHJcbiAgICAgIFN0YXJ0ZXJLaXQsXHJcbiAgICAgIExpbmsuY29uZmlndXJlKHtcclxuICAgICAgICBvcGVuT25DbGljazogZmFsc2UsXHJcbiAgICAgICAgSFRNTEF0dHJpYnV0ZXM6IHtcclxuICAgICAgICAgIGNsYXNzOiAncmljaC10ZXh0LWxpbmsnLFxyXG4gICAgICAgICAgdGFyZ2V0OiAnX2JsYW5rJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pLFxyXG4gICAgICBUZXh0QWxpZ24uY29uZmlndXJlKHtcclxuICAgICAgICB0eXBlczogWydoZWFkaW5nJywgJ3BhcmFncmFwaCddLFxyXG5cclxuICAgICAgfSksXHJcbiAgICAgIFBsYWNlaG9sZGVyLmNvbmZpZ3VyZSh7XHJcbiAgICAgICAgcGxhY2Vob2xkZXI6ICgpID0+IHRoaXMucGxhY2Vob2xkZXJcclxuICAgICAgfSksXHJcbiAgICAgIEltYWdlXHJcbiAgICBdLFxyXG4gICAgZWRpdG9yUHJvcHM6IHtcclxuICAgICAgYXR0cmlidXRlczoge1xyXG4gICAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgICBzcGVsbGNoZWNrOiAndHJ1ZScsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgZW5hYmxlUGFzdGVSdWxlczogW0xpbmssIFN0YXJ0ZXJLaXQsIFRleHRBbGlnbl1cclxuICB9KTtcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlID09PSAnPHA+PC9wPicpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0b3Iuc2V0RWRpdGFibGUodGhpcy5fZWRpdGFibGUpO1xyXG5cclxuICAgIHRoaXMuZWRpdG9yLm9uKCd1cGRhdGUnLCAoe2VkaXRvcn0pID0+IHtcclxuICAgICAgdGhpcy50ZXh0Q2hhbmdlZC5lbWl0KHtcclxuICAgICAgICB0ZXh0VmFsdWU6IGVkaXRvci5nZXRUZXh0KCksXHJcbiAgICAgICAgaHRtbFZhbHVlOiB0aGlzLl92YWx1ZVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0b3Iuc2V0RWRpdGFibGUoaXNEaXNhYmxlZCk7XHJcbiAgfVxyXG5cclxuICBvcGVuTGlua0RpYWxvZygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHByZXZpb3VzVXJsID0gdGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcygnbGluaycpLmhyZWY7XHJcbiAgICB0aGlzLnNob3dEaWFsb2cgPSB7fTtcclxuICAgIHRoaXMuZGlhbG9nTGluayA9IHByZXZpb3VzVXJsO1xyXG4gICAgdGhpcy5kaWFsb2dUeXBlID0gJ2xpbmsnO1xyXG4gIH1cclxuXHJcbiAgb3BlbkltYWdlRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJldmlvdXNVcmwgPSB0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKCdpbWFnZScpLnNyYztcclxuICAgIHRoaXMuc2hvd0RpYWxvZyA9IHt9O1xyXG4gICAgdGhpcy5kaWFsb2dMaW5rID0gcHJldmlvdXNVcmw7XHJcbiAgICB0aGlzLmRpYWxvZ1R5cGUgPSAnaW1hZ2UnO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRWRpdG9yTGluayhhY3Rpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChhY3Rpb24pIHtcclxuICAgICAgY2FzZSAncmVtb3ZlJzpcclxuICAgICAgICB0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuZXh0ZW5kTWFya1JhbmdlKCdsaW5rJykudW5zZXRMaW5rKCkucnVuKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3NhdmUnOlxyXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1R5cGUgPT09ICdsaW5rJykge1xyXG4gICAgICAgICAgdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLmV4dGVuZE1hcmtSYW5nZSgnbGluaycpLnNldExpbmsoe1xyXG4gICAgICAgICAgICBocmVmOiB0aGlzLmRpYWxvZ0xpbmssXHJcbiAgICAgICAgICAgIHRhcmdldDogdGhpcy5kaWFsb2dMaW5rICYmICF0aGlzLmRpYWxvZ0xpbmsuc3RhcnRzV2l0aCgnLycpID8gJ19ibGFuaycgOiAnX3NlbGYnXHJcbiAgICAgICAgICB9KS5ydW4oKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGlhbG9nVHlwZSA9PT0gJ2ltYWdlJykge1xyXG4gICAgICAgICAgdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldEltYWdlKHsgc3JjOiB0aGlzLmRpYWxvZ0xpbmsgfSkucnVuKClcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY29uc29sZS5sb2coYWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpYWxvZ0xpbmsgPSBudWxsIGFzIGFueTtcclxuICAgIHRoaXMuZGlhbG9nVHlwZSA9IG51bGwgYXMgYW55O1xyXG4gICAgdGhpcy5zaG93RGlhbG9nID0gbnVsbCBhcyBhbnk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyhwb3NpdGlvbj86IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCFwb3NpdGlvbikge1xyXG4gICAgICBwb3NpdGlvbiA9ICdzdGFydCc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0b3IuY29tbWFuZHMuZm9jdXMocG9zaXRpb24pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvd19ibG9jayB3aWR0aDEwMCBjb250ZW50X2NvbG9yIHB0bF9icmRyX3JhZGl1cyBwdGxfYnJkcl9jb2xvciBwdGxfYnJkcl9zaXplXCIgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0aGlzLmhpZGVDb250cm9scyAmJiB0aGlzLmVkaXRvci5pc0VkaXRhYmxlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHB0bF9pbnB1dF9iZ19jb2xvciBwdGxfYnJkcl9jb2xvciBwdGxfYnJkcl9zaXplIGJvcmRlcl9ib3R0b20gd3JhcCBoaWRlX2VsZW1lbnRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcGFiaWxpdGllcy5oZWFkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB2X2NlbnRlciBwdGxfYnJkcl9jb2xvciBwdGxfYnJkcl9zaXplIGJvcmRlcl9yaWdodCBwYWRfNVwiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBpZD1cImhlYWRpbmcxXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmhlYWRpbmcxXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhY2Nlc3MgYnRuc2V0IGNoaXBfc2l6ZSBjb250ZW50X2NvbG9yX2RhcmtfMSBtYXJfcmlnaHQ1IG1hcl9sZWZ0NSBwdGxfYnJkcl9yYWRpdXMgaG92X2RhcmtlblwiXHJcbiAgICAgICAgICAgIFtwYXJ0aWNsZVRvb2x0aXBdPVwidGV4dC5oZWFkaW5nMVwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoeyBsZXZlbDogMSB9KS5ydW4oKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ29rX2J1dHRvbl9jb2xvcic6IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMSB9KSB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtaGVhZGVyIGZhLWZ3XCI+PC9pPjFcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBpZD1cImhlYWRpbmcyXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmhlYWRpbmcyXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhY2Nlc3MgYnRuc2V0IGNoaXBfc2l6ZSBjb250ZW50X2NvbG9yX2RhcmtfMSBtYXJfcmlnaHQ1IG1hcl9sZWZ0NSBwdGxfYnJkcl9yYWRpdXMgaG92X2RhcmtlblwiXHJcbiAgICAgICAgICAgIFtwYXJ0aWNsZVRvb2x0aXBdPVwidGV4dC5oZWFkaW5nMlwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoeyBsZXZlbDogMiB9KS5ydW4oKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ29rX2J1dHRvbl9jb2xvcic6IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMiB9KSB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtaGVhZGVyIGZhLWZ3XCI+PC9pPjJcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcGFiaWxpdGllcy50ZXh0RGVjb3JhdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdl9jZW50ZXIgcHRsX2JyZHJfY29sb3IgcHRsX2JyZHJfc2l6ZSBib3JkZXJfcmlnaHQgcGFkXzVcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgaWQ9XCJib2xkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmJvbGRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFjY2VzcyBidG5zZXQgY2hpcF9zaXplIGNvbnRlbnRfY29sb3JfZGFya18xIG1hcl9yaWdodDMgbWFyX2xlZnQzIHB0bF9icmRyX3JhZGl1cyBob3ZfZGFya2VuXCJcclxuICAgICAgICAgICAgW3BhcnRpY2xlVG9vbHRpcF09XCJ0ZXh0LmJvbGRcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCb2xkKCkucnVuKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSgnYm9sZCcpIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1ib2xkIGZhLWZ3XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGlkPVwiaXRhbGljXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0Lml0YWxpY1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWNjZXNzIGJ0bnNldCBjaGlwX3NpemUgY29udGVudF9jb2xvcl9kYXJrXzEgbWFyX3JpZ2h0MyBtYXJfbGVmdDMgcHRsX2JyZHJfcmFkaXVzIGhvdl9kYXJrZW5cIlxyXG4gICAgICAgICAgICBbcGFydGljbGVUb29sdGlwXT1cInRleHQuaXRhbGljXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSXRhbGljKCkucnVuKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSgnaXRhbGljJykgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWl0YWxpYyBmYS1md1wiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBpZD1cInN0cmlrZVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGV4dC5zdHJpa2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFjY2VzcyBidG5zZXQgY2hpcF9zaXplIGNvbnRlbnRfY29sb3JfZGFya18xIG1hcl9yaWdodDMgbWFyX2xlZnQzIHB0bF9icmRyX3JhZGl1cyBob3ZfZGFya2VuXCJcclxuICAgICAgICAgICAgW3BhcnRpY2xlVG9vbHRpcF09XCJ0ZXh0LnN0cmlrZVwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnb2tfYnV0dG9uX2NvbG9yJzogdGhpcy5lZGl0b3IuaXNBY3RpdmUoJ3N0cmlrZScpIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1zdHJpa2V0aHJvdWdoIGZhLWZ3XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmxpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZfY2VudGVyIHB0bF9icmRyX2NvbG9yIHB0bF9icmRyX3NpemUgYm9yZGVyX3JpZ2h0IHBhZF81XCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGlkPVwiYnVsbGV0LWxpc3RcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRleHQuYnVsbGV0ZWRMaXN0XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhY2Nlc3MgYnRuc2V0IGNoaXBfc2l6ZSBjb250ZW50X2NvbG9yX2RhcmtfMSBtYXJfcmlnaHQzIG1hcl9sZWZ0MyBwdGxfYnJkcl9yYWRpdXMgaG92X2RhcmtlblwiXHJcbiAgICAgICAgICAgIFtwYXJ0aWNsZVRvb2x0aXBdPVwidGV4dC5idWxsZXRlZExpc3RcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCdWxsZXRMaXN0KCkucnVuKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSgnYnVsbGV0LWxpc3QnKSB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbGlzdCBmYS1md1wiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBpZD1cIm9yZGVyZWQtbGlzdFwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGV4dC5vcmRlcmVkTGlzdFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWNjZXNzIGJ0bnNldCBjaGlwX3NpemUgY29udGVudF9jb2xvcl9kYXJrXzEgbWFyX3JpZ2h0MyBtYXJfbGVmdDMgcHRsX2JyZHJfcmFkaXVzIGhvdl9kYXJrZW5cIlxyXG4gICAgICAgICAgICBbcGFydGljbGVUb29sdGlwXT1cInRleHQub3JkZXJlZExpc3RcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVPcmRlcmVkTGlzdCgpLnJ1bigpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnb2tfYnV0dG9uX2NvbG9yJzogdGhpcy5lZGl0b3IuaXNBY3RpdmUoJ29yZGVyZWQtbGlzdCcpIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1saXN0LW9sIGZhLWZ3XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmFsaWdubWVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdl9jZW50ZXIgcHRsX2JyZHJfY29sb3IgcHRsX2JyZHJfc2l6ZSBib3JkZXJfcmlnaHQgcGFkXzVcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgaWQ9XCJsZWZ0LWFsaWduXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmxlZnRBbGlnblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWNjZXNzIGJ0bnNldCBjaGlwX3NpemUgY29udGVudF9jb2xvcl9kYXJrXzEgbWFyX3JpZ2h0MyBtYXJfbGVmdDMgcHRsX2JyZHJfcmFkaXVzIGhvdl9kYXJrZW5cIlxyXG4gICAgICAgICAgICBbcGFydGljbGVUb29sdGlwXT1cInRleHQubGVmdEFsaWduXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCdsZWZ0JykucnVuKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSh7IHRleHRBbGlnbjogJ2xlZnQnIH0pIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbGlnbi1sZWZ0IGZhLWZ3XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGlkPVwiY2VudGVyLWFsaWduXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmNlbnRlckFsaWduXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhY2Nlc3MgYnRuc2V0IGNoaXBfc2l6ZSBjb250ZW50X2NvbG9yX2RhcmtfMSBtYXJfcmlnaHQzIG1hcl9sZWZ0MyBwdGxfYnJkcl9yYWRpdXMgaG92X2RhcmtlblwiXHJcbiAgICAgICAgICAgIFtwYXJ0aWNsZVRvb2x0aXBdPVwidGV4dC5jZW50ZXJBbGlnblwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbignY2VudGVyJykucnVuKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSh7IHRleHRBbGlnbjogJ2NlbnRlcicgfSkgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWFsaWduLWNlbnRlciBmYS1md1wiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBpZD1cInJpZ2h0LWFsaWduXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LnJpZ2h0QWxpZ25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFjY2VzcyBidG5zZXQgY2hpcF9zaXplIGNvbnRlbnRfY29sb3JfZGFya18xIG1hcl9yaWdodDMgbWFyX2xlZnQzIHB0bF9icmRyX3JhZGl1cyBob3ZfZGFya2VuXCJcclxuICAgICAgICAgICAgW3BhcnRpY2xlVG9vbHRpcF09XCJ0ZXh0LnJpZ2h0QWxpZ25cIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oJ3JpZ2h0JykucnVuKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSh7IHRleHRBbGlnbjogJ3JpZ2h0JyB9KSB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYWxpZ24tcmlnaHQgZmEtZndcIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgaWQ9XCJqdXN0aWZ5LWFsaWduXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0Lmp1c3RpZnlBbGlnblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWNjZXNzIGJ0bnNldCBjaGlwX3NpemUgY29udGVudF9jb2xvcl9kYXJrXzEgbWFyX3JpZ2h0MyBtYXJfbGVmdDMgcHRsX2JyZHJfcmFkaXVzIGhvdl9kYXJrZW5cIlxyXG4gICAgICAgICAgICBbcGFydGljbGVUb29sdGlwXT1cInRleHQuanVzdGlmeUFsaWduXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCdqdXN0aWZ5JykucnVuKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSh7IHRleHRBbGlnbjogJ2p1c3RpZnknIH0pIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbGlnbi1qdXN0aWZ5IGZhLWZ3XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmxpbmtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZfY2VudGVyIHB0bF9icmRyX2NvbG9yIHB0bF9icmRyX3NpemUgYm9yZGVyX3JpZ2h0IHBhZF81XCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGlkPVwibGlua1wiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGV4dC5zZXRMaW5rXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhY2Nlc3MgYnRuc2V0IGNoaXBfc2l6ZSBjb250ZW50X2NvbG9yX2RhcmtfMSBtYXJfcmlnaHQzIG1hcl9sZWZ0MyBwdGxfYnJkcl9yYWRpdXMgaG92X2RhcmtlblwiXHJcbiAgICAgICAgICAgIFtwYXJ0aWNsZVRvb2x0aXBdPVwidGV4dC5zZXRMaW5rXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5MaW5rRGlhbG9nKClcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdva19idXR0b25fY29sb3InOiB0aGlzLmVkaXRvci5pc0FjdGl2ZSgnbGluaycpIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1saW5rIGZhLWZ3XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGlkPVwidW5saW5rXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LnJlbW92ZUxpbmtcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFjY2VzcyBidG5zZXQgY2hpcF9zaXplIGNvbnRlbnRfY29sb3JfZGFya18xIG1hcl9yaWdodDMgbWFyX2xlZnQzIHB0bF9icmRyX3JhZGl1cyBob3ZfZGFya2VuXCJcclxuICAgICAgICAgICAgW3BhcnRpY2xlVG9vbHRpcF09XCJ0ZXh0LnJlbW92ZUxpbmtcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidGhpcy5lZGl0b3IuaXNBY3RpdmUoJ2xpbmsnKSA/IGNoYW5nZUVkaXRvckxpbmsoJ3JlbW92ZScpIDogbnVsbFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhdGhpcy5lZGl0b3IuaXNBY3RpdmUoJ2xpbmsnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXVubGluayBmYS1md1wiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcGFiaWxpdGllcy5pbWFnZXNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZfY2VudGVyIHB0bF9icmRyX2NvbG9yIHB0bF9icmRyX3NpemUgYm9yZGVyX3JpZ2h0IHBhZF81XCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGlkPVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRoaXMuZWRpdG9yLmlzQWN0aXZlKCdpbWFnZScpID8gdGV4dC5tb2RpZnlJbWFnZSA6IHRleHQuYWRkSW1hZ2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFjY2VzcyBidG5zZXQgY2hpcF9zaXplIGNvbnRlbnRfY29sb3JfZGFya18xIG1hcl9yaWdodDMgbWFyX2xlZnQzIHB0bF9icmRyX3JhZGl1cyBob3ZfZGFya2VuXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbWFnZURpYWxvZygpXCJcclxuICAgICAgICAgICAgW3BhcnRpY2xlVG9vbHRpcF09XCJ0aGlzLmVkaXRvci5pc0FjdGl2ZSgnaW1hZ2UnKSA/IHRleHQubW9kaWZ5SW1hZ2UgOiB0ZXh0LmFkZEltYWdlXCJcclxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnb2tfYnV0dG9uX2NvbG9yJzogdGhpcy5lZGl0b3IuaXNBY3RpdmUoJ2ltYWdlJykgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWltYWdlIGZhLWZ3XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIHZfY2VudGVyIHBhZF81XCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgaWQ9XCJjbGVhci1mb3JtYXRcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmNsZWFyRm9ybWF0XCJcclxuICAgICAgICAgIGNsYXNzPVwiYWNjZXNzIGJ0bnNldCBjaGlwX3NpemUgY29udGVudF9jb2xvcl9kYXJrXzEgbWFyX3JpZ2h0MyBtYXJfbGVmdDMgcHRsX2JyZHJfcmFkaXVzIGhvdl9kYXJrZW5cIlxyXG4gICAgICAgICAgW3BhcnRpY2xlVG9vbHRpcF09XCJ0ZXh0LmNsZWFyRm9ybWF0XCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0b3IuY2hhaW4oKS5mb2N1cygpLmNsZWFyTm9kZXMoKS51bnNldEFsbE1hcmtzKCkucnVuKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRleHQtc2xhc2ggZmEtZndcIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cInBhZF8xMCBwdGxfaW5wdXRfdGV4dF9zaXplIHNjcm9sbF95YXV0b1wiIFtzdHlsZS5oZWlnaHRdPVwidGhpcy5oZWlnaHRcIj5cclxuICAgIDx0aXB0YXAtZWRpdG9yIFtlZGl0b3JdPVwiZWRpdG9yXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiPjwvdGlwdGFwLWVkaXRvcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48cGFydGljbGUtZGlhbG9nXHJcbiAgW3RpdGxlXT1cImRpYWxvZ1R5cGUgPT09ICdsaW5rJyA/IHRleHQubW9kaWZ5TGluayA6IHRleHQubW9kaWZ5SW1hZ2VcIlxyXG4gIHRpdGxlQ2xhc3M9XCJoZWFkZXJfY29sb3IgbWluX2g0MFwiXHJcbiAgW29iamVjdF09XCJzaG93RGlhbG9nXCJcclxuICBbYWxsb3dDbG9zZV09XCJmYWxzZVwiXHJcbiAgW2JvcmRlclJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxyXG4gIHdpZHRoPVwiNDAwcHhcIlxyXG4gIGhlaWdodD1cIjE1MHB4XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJwYWRfMTUgcHRsX2lucHV0X3RleHRfc2l6ZVwiIFtzdHlsZS5oZWlnaHRdPVwid2luZG93LmlubmVyV2lkdGggPiA3NjggPyAnNzBweCcgOiAnY2FsYygxMDAlIC0gNDBweCknXCI+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJhY2Nlc3MgaW5wdXQgbWRcIlxyXG4gICAgICAgICAgIFsobmdNb2RlbCldPVwiZGlhbG9nTGlua1wiXHJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LnVybFwiXHJcbiAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlZy4gaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbVwiXHJcbiAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImNoYW5nZUVkaXRvckxpbmsoJ3NhdmUnKVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wgbWluX2g0MCBmb290ZXJfY29sb3JcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyX3JpZ2h0IHBhZF9yaWdodDE1IHBhZF9sZWZ0MTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhY2Nlc3MgYnRuc2V0IGNsZWFyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmNhbmNlbFwiIChjbGljayk9XCJjaGFuZ2VFZGl0b3JMaW5rKCdjYW5jZWwnKVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIiBwYWRfNVwiPnt7dGV4dC5jYW5jZWx9fTwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJfbHI1IHB0bF9icmRyX3NpemUgcHRsX2JyZHJfY29sb3IgYm9yZGVyX2xlZnRcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYWNjZXNzIGJ0bnNldCBzcGFjZWQgbWQgaG92X2dsb3cgb2tfYnV0dG9uX2NvbG9yIHB0bF9icmRyX3JhZGl1c1wiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRleHQudXBkYXRlXCJcclxuICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VFZGl0b3JMaW5rKCdzYXZlJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJicmRyIGJvcmRlcl9yaWdodCBtYXJfcmlnaHQ1IHBhZF9yaWdodDVcIj48aSBjbGFzcz1cImZhcyBmYS1jaGVja1wiPjwvaT48L2Rpdj5cclxuICAgICAgICAgIDxkaXY+e3t0ZXh0LnVwZGF0ZX19PC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvcGFydGljbGUtZGlhbG9nPlxyXG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ScrollToTopComponent } from './scroll-to-top.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ParticleScrollToTopModule {
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleScrollToTopModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: ParticleScrollToTopModule, declarations: [ScrollToTopComponent], imports: [CommonModule], exports: [ScrollToTopComponent] });
|
|
8
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleScrollToTopModule, imports: [CommonModule] });
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleScrollToTopModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [
|
|
14
|
-
ScrollToTopComponent
|
|
15
|
-
],
|
|
16
|
-
exports: [
|
|
17
|
-
ScrollToTopComponent
|
|
18
|
-
],
|
|
19
|
-
imports: [
|
|
20
|
-
CommonModule,
|
|
21
|
-
]
|
|
22
|
-
}]
|
|
23
|
-
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGUtc2Nyb2xsLXRvLXRvcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2Nyb2xsLXRvLXRvcC9wYXJ0aWNsZS1zY3JvbGwtdG8tdG9wLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFhL0QsTUFBTSxPQUFPLHlCQUF5Qjt1R0FBekIseUJBQXlCO3dHQUF6Qix5QkFBeUIsaUJBVGxDLG9CQUFvQixhQU1wQixZQUFZLGFBSFosb0JBQW9CO3dHQU1YLHlCQUF5QixZQUhsQyxZQUFZOzsyRkFHSCx5QkFBeUI7a0JBWHJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7U2Nyb2xsVG9Ub3BDb21wb25lbnR9IGZyb20gJy4vc2Nyb2xsLXRvLXRvcC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNjcm9sbFRvVG9wQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTY3JvbGxUb1RvcENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlU2Nyb2xsVG9Ub3BNb2R1bGUge1xyXG59XHJcbiJdfQ==
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class ScrollToTopComponent {
|
|
6
|
-
renderer;
|
|
7
|
-
content = null;
|
|
8
|
-
scrollDistance = 500;
|
|
9
|
-
bottomOffset = 50;
|
|
10
|
-
text = {
|
|
11
|
-
scrollToTop: 'Scroll back to the top of the page'
|
|
12
|
-
};
|
|
13
|
-
$scrollTop = new BehaviorSubject(0);
|
|
14
|
-
_listener;
|
|
15
|
-
constructor(renderer) {
|
|
16
|
-
this.renderer = renderer;
|
|
17
|
-
}
|
|
18
|
-
ngAfterViewInit() {
|
|
19
|
-
this._listener = this.renderer.listen(this.content, 'scroll', () => {
|
|
20
|
-
this.$scrollTop.next(this.content.scrollTop);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
ngOnDestroy() {
|
|
24
|
-
this._listener();
|
|
25
|
-
}
|
|
26
|
-
scrollToTop() {
|
|
27
|
-
if (this.content) {
|
|
28
|
-
this.content.scroll({
|
|
29
|
-
top: 0,
|
|
30
|
-
behavior: 'smooth'
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScrollToTopComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ScrollToTopComponent, selector: "particle-scroll-to-top", inputs: { content: "content", scrollDistance: "scrollDistance", bottomOffset: "bottomOffset", text: "text" }, ngImport: i0, template: "<ng-container *ngIf=\"$scrollTop | async as scrollTop\">\r\n <div [style.visibility]=\"scrollTop > scrollDistance ? 'visible' : 'hidden'\"\r\n [style.opacity]=\"scrollTop > scrollDistance ? '1' : '0'\"\r\n [style.bottom]=\"bottomOffset + 'px'\"\r\n class=\"particle_scroll_button mar_right10 mar_bot15\">\r\n <button (click)=\"scrollToTop()\"\r\n class=\"access btn pad_10 brad_3 brdr content_color\"\r\n type=\"button\"\r\n [attr.aria-label]=\"text.scrollToTop\">\r\n <span class=\"icon slide_up\"><i class=\"fas fa-chevron-up\"></i></span>\r\n </button>\r\n </div>\r\n</ng-container>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScrollToTopComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{ selector: 'particle-scroll-to-top', template: "<ng-container *ngIf=\"$scrollTop | async as scrollTop\">\r\n <div [style.visibility]=\"scrollTop > scrollDistance ? 'visible' : 'hidden'\"\r\n [style.opacity]=\"scrollTop > scrollDistance ? '1' : '0'\"\r\n [style.bottom]=\"bottomOffset + 'px'\"\r\n class=\"particle_scroll_button mar_right10 mar_bot15\">\r\n <button (click)=\"scrollToTop()\"\r\n class=\"access btn pad_10 brad_3 brdr content_color\"\r\n type=\"button\"\r\n [attr.aria-label]=\"text.scrollToTop\">\r\n <span class=\"icon slide_up\"><i class=\"fas fa-chevron-up\"></i></span>\r\n </button>\r\n </div>\r\n</ng-container>\r\n" }]
|
|
40
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { content: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], scrollDistance: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], bottomOffset: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}], text: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvLXRvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2Nyb2xsLXRvLXRvcC9zY3JvbGwtdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zY3JvbGwtdG8tdG9wL3Njcm9sbC10by10b3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFPckMsTUFBTSxPQUFPLG9CQUFvQjtJQXFCdEI7SUFsQlQsT0FBTyxHQUFnQixJQUFXLENBQUM7SUFHbkMsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUdyQixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBR2xCLElBQUksR0FBb0I7UUFDdEIsV0FBVyxFQUFFLG9DQUFvQztLQUMvQixDQUFDO0lBRXJCLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUVwQyxTQUFTLENBQU07SUFFdkIsWUFDUyxRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQ3pCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ2xCLEdBQUcsRUFBRSxDQUFDO2dCQUNOLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3VHQXpDVSxvQkFBb0I7MkZBQXBCLG9CQUFvQiw0S0NSakMsK29CQWFBOzsyRkRMYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usd0JBQXdCOzhFQU1sQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1Njcm9sbFRvVG9wVGV4dH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9wYXJ0aWNsZS1jb21wb25lbnQtdGV4dC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BhcnRpY2xlLXNjcm9sbC10by10b3AnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGwtdG8tdG9wLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Nyb2xsVG9Ub3BDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbnRlbnQ6IEhUTUxFbGVtZW50ID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2Nyb2xsRGlzdGFuY2UgPSA1MDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm90dG9tT2Zmc2V0ID0gNTA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dDogU2Nyb2xsVG9Ub3BUZXh0ID0ge1xyXG4gICAgc2Nyb2xsVG9Ub3A6ICdTY3JvbGwgYmFjayB0byB0aGUgdG9wIG9mIHRoZSBwYWdlJ1xyXG4gIH0gYXMgU2Nyb2xsVG9Ub3BUZXh0O1xyXG5cclxuICAkc2Nyb2xsVG9wID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuICBwcml2YXRlIF9saXN0ZW5lcjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9saXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuY29udGVudCwgJ3Njcm9sbCcsICgpID0+IHtcclxuICAgICAgdGhpcy4kc2Nyb2xsVG9wLm5leHQodGhpcy5jb250ZW50LnNjcm9sbFRvcCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbGlzdGVuZXIoKTtcclxuICB9XHJcblxyXG4gIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xyXG4gICAgICB0aGlzLmNvbnRlbnQuc2Nyb2xsKHtcclxuICAgICAgICB0b3A6IDAsXHJcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiRzY3JvbGxUb3AgfCBhc3luYyBhcyBzY3JvbGxUb3BcIj5cclxuICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cInNjcm9sbFRvcCA+IHNjcm9sbERpc3RhbmNlID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIlxyXG4gICAgICAgW3N0eWxlLm9wYWNpdHldPVwic2Nyb2xsVG9wID4gc2Nyb2xsRGlzdGFuY2UgPyAnMScgOiAnMCdcIlxyXG4gICAgICAgW3N0eWxlLmJvdHRvbV09XCJib3R0b21PZmZzZXQgKyAncHgnXCJcclxuICAgICAgIGNsYXNzPVwicGFydGljbGVfc2Nyb2xsX2J1dHRvbiBtYXJfcmlnaHQxMCBtYXJfYm90MTVcIj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cInNjcm9sbFRvVG9wKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFjY2VzcyBidG4gcGFkXzEwIGJyYWRfMyBicmRyIGNvbnRlbnRfY29sb3JcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LnNjcm9sbFRvVG9wXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBzbGlkZV91cFwiPjxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tdXBcIj48L2k+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { SlideoverComponent } from './slideover.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ParticleSlideoverModule {
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleSlideoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: ParticleSlideoverModule, declarations: [SlideoverComponent], imports: [CommonModule], exports: [SlideoverComponent] });
|
|
8
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleSlideoverModule, imports: [CommonModule] });
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleSlideoverModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [
|
|
14
|
-
SlideoverComponent
|
|
15
|
-
],
|
|
16
|
-
exports: [
|
|
17
|
-
SlideoverComponent
|
|
18
|
-
],
|
|
19
|
-
imports: [
|
|
20
|
-
CommonModule
|
|
21
|
-
]
|
|
22
|
-
}]
|
|
23
|
-
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGUtc2xpZGVvdmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zbGlkZW92ZXIvcGFydGljbGUtc2xpZGVvdmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFhM0QsTUFBTSxPQUFPLHVCQUF1Qjt1R0FBdkIsdUJBQXVCO3dHQUF2Qix1QkFBdUIsaUJBVGhDLGtCQUFrQixhQU1sQixZQUFZLGFBSFosa0JBQWtCO3dHQU1ULHVCQUF1QixZQUhoQyxZQUFZOzsyRkFHSCx1QkFBdUI7a0JBWG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNsaWRlb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vc2xpZGVvdmVyLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU2xpZGVvdmVyQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTbGlkZW92ZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlU2xpZGVvdmVyTW9kdWxlIHtcclxufVxyXG4iXX0=
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class SlideoverComponent {
|
|
5
|
-
_position = 'right';
|
|
6
|
-
slideoverOpen = false;
|
|
7
|
-
visible = false;
|
|
8
|
-
set position(position) {
|
|
9
|
-
if (position && ['left', 'right', 'top', 'bottom'].indexOf(position.toLowerCase()) > -1) {
|
|
10
|
-
this._position = position.toLowerCase();
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
this._position = 'right';
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
get position() {
|
|
17
|
-
return this._position;
|
|
18
|
-
}
|
|
19
|
-
modal = true;
|
|
20
|
-
width = '300px';
|
|
21
|
-
height = '100px';
|
|
22
|
-
bgClass = 'content_color';
|
|
23
|
-
text = {
|
|
24
|
-
close: 'Close Slideover'
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Breakpoint that will make the container take over the screen when it's crossed.
|
|
28
|
-
*/
|
|
29
|
-
breakpoint = 769;
|
|
30
|
-
opened = new EventEmitter();
|
|
31
|
-
closed = new EventEmitter();
|
|
32
|
-
overlay = null;
|
|
33
|
-
breakpointExceeded = false;
|
|
34
|
-
constructor() {
|
|
35
|
-
}
|
|
36
|
-
onResize(event) {
|
|
37
|
-
this._determineBreakpointExceeded(event.target.innerWidth);
|
|
38
|
-
}
|
|
39
|
-
_determineBreakpointExceeded(innerWidth) {
|
|
40
|
-
if (this.breakpoint) {
|
|
41
|
-
this.breakpointExceeded = innerWidth < this.breakpoint || innerWidth < +this.width.substring(0, this.width.length - 2);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
open() {
|
|
45
|
-
this.addModalMask();
|
|
46
|
-
this.slideoverOpen = true;
|
|
47
|
-
this.visible = true;
|
|
48
|
-
this.opened.emit();
|
|
49
|
-
}
|
|
50
|
-
close() {
|
|
51
|
-
this.removeModalMask();
|
|
52
|
-
this.slideoverOpen = false;
|
|
53
|
-
this.closed.emit();
|
|
54
|
-
setTimeout(() => this.visible = false, 200);
|
|
55
|
-
}
|
|
56
|
-
toggle() {
|
|
57
|
-
if (this.slideoverOpen) {
|
|
58
|
-
this.close();
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.open();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
addModalMask() {
|
|
65
|
-
if (this.modal) {
|
|
66
|
-
this.overlay.nativeElement.classList.add('particle_dialog_overlay');
|
|
67
|
-
document.body.classList.add('scroll_none');
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
removeModalMask() {
|
|
71
|
-
if (this.modal) {
|
|
72
|
-
this.overlay.nativeElement.classList.remove('particle_dialog_overlay');
|
|
73
|
-
document.body.classList.remove('scroll_none');
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
ngOnDestroy() {
|
|
77
|
-
this.removeModalMask();
|
|
78
|
-
}
|
|
79
|
-
ngAfterViewInit() {
|
|
80
|
-
setTimeout(() => {
|
|
81
|
-
this._determineBreakpointExceeded(window.innerWidth);
|
|
82
|
-
}, 100);
|
|
83
|
-
}
|
|
84
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SlideoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: SlideoverComponent, selector: "particle-slideover", inputs: { position: "position", modal: "modal", width: "width", height: "height", bgClass: "bgClass", text: "text", breakpoint: "breakpoint" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "overlay", first: true, predicate: ["overlay"], descendants: true }], ngImport: i0, template: "<div #overlay (click)=\"close()\"></div>\r\n<div\r\n [ngClass]=\"bgClass + ' ' + (slideoverOpen ? 'slideover_active_' + position : 'slideover_inactive_' + position) + ' slideover-panel ' + position\"\r\n [style.width]=\"position === 'right' || position === 'left' ? (breakpointExceeded ? '100%' : width) : null\"\r\n [style.height]=\"position === 'top' || position === 'bottom' ? (breakpointExceeded ? '100%' : height) : null\"\r\n [style.left]=\"position === 'left' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : width) : null\"\r\n [style.right]=\"position === 'right' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : width) : null\"\r\n [style.bottom]=\"position === 'bottom' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : height) : null\"\r\n [style.top]=\"position === 'top' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : height) : null\"\r\n [style.visibility]=\"!visible ? 'hidden': 'visible'\"\r\n [attr.aria-hidden]=\"!slideoverOpen\"\r\n>\r\n <div class=\"push_close_bar\">\r\n <button class=\"access btnset clear\"\r\n [attr.aria-label]=\"text.close\"\r\n (click)=\"close()\">\r\n <div class=\"circle_20px ptl_brdr_color ptl_brdr_size ptl_input_bg_color\">\r\n <i class=\"fas fa-times\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".slideover-panel{position:fixed;transition:transform .3s;display:flex;flex-direction:column;z-index:var(--z-dialog)}.slideover-panel.left{top:0;left:0;height:100%}.slideover-panel.right{top:0;right:0;height:100%}.slideover-panel.top{top:0;left:0;width:100%}.slideover-panel.bottom{bottom:0;left:0;width:100%}.slideover_inactive_left,.slideover_active_left{transition:left .2s ease-in-out}.slideover_inactive_right,.slideover_active_right{transition:right .2s ease-in-out}.slideover_inactive_top,.slideover_active_top{transition:top .2s ease-in-out}.slideover_inactive_bottom,.slideover_active_bottom{transition:bottom .2s ease-in-out}.push_close_bar{position:absolute;right:0;top:0;width:45px;height:45px;z-index:var(--z-dialog);display:flex;justify-content:center;align-items:center}.data_hide_button{float:right;display:flex;align-items:center;justify-content:center;font-size:9pt;min-height:20px;height:20px;min-width:20px;width:20px;border-radius:50%;cursor:pointer;padding:0;transition:all .2s ease-in-out;background-color:#ffffffe6;color:#0006;border:1px solid rgba(0,0,0,.1)}.data_hide_button:hover{background-color:#0000004d;color:#fffc;border:1px solid rgba(0,0,0,.1)}.particle_dialog_overlay{position:fixed;display:block;width:100%;height:100%;inset:0;background-color:#78787866;z-index:var(--z-dialog)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
86
|
-
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SlideoverComponent, decorators: [{
|
|
88
|
-
type: Component,
|
|
89
|
-
args: [{ selector: 'particle-slideover', template: "<div #overlay (click)=\"close()\"></div>\r\n<div\r\n [ngClass]=\"bgClass + ' ' + (slideoverOpen ? 'slideover_active_' + position : 'slideover_inactive_' + position) + ' slideover-panel ' + position\"\r\n [style.width]=\"position === 'right' || position === 'left' ? (breakpointExceeded ? '100%' : width) : null\"\r\n [style.height]=\"position === 'top' || position === 'bottom' ? (breakpointExceeded ? '100%' : height) : null\"\r\n [style.left]=\"position === 'left' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : width) : null\"\r\n [style.right]=\"position === 'right' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : width) : null\"\r\n [style.bottom]=\"position === 'bottom' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : height) : null\"\r\n [style.top]=\"position === 'top' && !slideoverOpen ? '-' + (breakpointExceeded ? '100%' : height) : null\"\r\n [style.visibility]=\"!visible ? 'hidden': 'visible'\"\r\n [attr.aria-hidden]=\"!slideoverOpen\"\r\n>\r\n <div class=\"push_close_bar\">\r\n <button class=\"access btnset clear\"\r\n [attr.aria-label]=\"text.close\"\r\n (click)=\"close()\">\r\n <div class=\"circle_20px ptl_brdr_color ptl_brdr_size ptl_input_bg_color\">\r\n <i class=\"fas fa-times\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".slideover-panel{position:fixed;transition:transform .3s;display:flex;flex-direction:column;z-index:var(--z-dialog)}.slideover-panel.left{top:0;left:0;height:100%}.slideover-panel.right{top:0;right:0;height:100%}.slideover-panel.top{top:0;left:0;width:100%}.slideover-panel.bottom{bottom:0;left:0;width:100%}.slideover_inactive_left,.slideover_active_left{transition:left .2s ease-in-out}.slideover_inactive_right,.slideover_active_right{transition:right .2s ease-in-out}.slideover_inactive_top,.slideover_active_top{transition:top .2s ease-in-out}.slideover_inactive_bottom,.slideover_active_bottom{transition:bottom .2s ease-in-out}.push_close_bar{position:absolute;right:0;top:0;width:45px;height:45px;z-index:var(--z-dialog);display:flex;justify-content:center;align-items:center}.data_hide_button{float:right;display:flex;align-items:center;justify-content:center;font-size:9pt;min-height:20px;height:20px;min-width:20px;width:20px;border-radius:50%;cursor:pointer;padding:0;transition:all .2s ease-in-out;background-color:#ffffffe6;color:#0006;border:1px solid rgba(0,0,0,.1)}.data_hide_button:hover{background-color:#0000004d;color:#fffc;border:1px solid rgba(0,0,0,.1)}.particle_dialog_overlay{position:fixed;display:block;width:100%;height:100%;inset:0;background-color:#78787866;z-index:var(--z-dialog)}\n"] }]
|
|
90
|
-
}], ctorParameters: () => [], propDecorators: { position: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], modal: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], width: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], height: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], bgClass: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], text: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], breakpoint: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], opened: [{
|
|
105
|
-
type: Output
|
|
106
|
-
}], closed: [{
|
|
107
|
-
type: Output
|
|
108
|
-
}], overlay: [{
|
|
109
|
-
type: ViewChild,
|
|
110
|
-
args: ['overlay']
|
|
111
|
-
}], onResize: [{
|
|
112
|
-
type: HostListener,
|
|
113
|
-
args: ['window:resize', ['$event']]
|
|
114
|
-
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zbGlkZW92ZXIvc2xpZGVvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zbGlkZW92ZXIvc2xpZGVvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7O0FBUXZCLE1BQU0sT0FBTyxrQkFBa0I7SUFFckIsU0FBUyxHQUFHLE9BQU8sQ0FBQztJQUU1QixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFaEIsSUFDSSxRQUFRLENBQUMsUUFBZ0I7UUFDM0IsSUFBSSxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFHRCxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBR2IsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUdoQixNQUFNLEdBQUcsT0FBTyxDQUFDO0lBR2pCLE9BQU8sR0FBRyxlQUFlLENBQUM7SUFHMUIsSUFBSSxHQUFrQjtRQUNwQixLQUFLLEVBQUUs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QUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQVNOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixNQUFNO3NCQURMLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxNQUFNO2dCQUlQLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTO2dCQVNwQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U2xpZGVvdmVyVGV4dH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9wYXJ0aWNsZS1jb21wb25lbnQtdGV4dC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BhcnRpY2xlLXNsaWRlb3ZlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlb3Zlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGVvdmVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpZGVvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHJpdmF0ZSBfcG9zaXRpb24gPSAncmlnaHQnO1xyXG5cclxuICBzbGlkZW92ZXJPcGVuID0gZmFsc2U7XHJcbiAgdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBwb3NpdGlvbihwb3NpdGlvbjogc3RyaW5nKSB7XHJcbiAgICBpZiAocG9zaXRpb24gJiYgWydsZWZ0JywgJ3JpZ2h0JywgJ3RvcCcsICdib3R0b20nXS5pbmRleE9mKHBvc2l0aW9uLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcclxuICAgICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fcG9zaXRpb24gPSAncmlnaHQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHBvc2l0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICB3aWR0aCA9ICczMDBweCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGVpZ2h0ID0gJzEwMHB4JztcclxuXHJcbiAgQElucHV0KClcclxuICBiZ0NsYXNzID0gJ2NvbnRlbnRfY29sb3InO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRleHQ6IFNsaWRlb3ZlclRleHQgPSB7XHJcbiAgICBjbG9zZTogJ0Nsb3NlIFNsaWRlb3ZlcidcclxuICB9IGFzIFNsaWRlb3ZlclRleHQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJyZWFrcG9pbnQgdGhhdCB3aWxsIG1ha2UgdGhlIGNvbnRhaW5lciB0YWtlIG92ZXIgdGhlIHNjcmVlbiB3aGVuIGl0J3MgY3Jvc3NlZC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGJyZWFrcG9pbnQgPSA3Njk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnb3ZlcmxheScpXHJcbiAgb3ZlcmxheTogRWxlbWVudFJlZiA9IG51bGwgYXMgYW55O1xyXG5cclxuICBicmVha3BvaW50RXhjZWVkZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXRlcm1pbmVCcmVha3BvaW50RXhjZWVkZWQoZXZlbnQudGFyZ2V0LmlubmVyV2lkdGgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGV0ZXJtaW5lQnJlYWtwb2ludEV4Y2VlZGVkKGlubmVyV2lkdGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYnJlYWtwb2ludCkge1xyXG4gICAgICB0aGlzLmJyZWFrcG9pbnRFeGNlZWRlZCA9IGlubmVyV2lkdGggPCB0aGlzLmJyZWFrcG9pbnQgfHwgaW5uZXJXaWR0aCA8ICt0aGlzLndpZHRoLnN1YnN0cmluZygwLCB0aGlzLndpZHRoLmxlbmd0aCAtIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkTW9kYWxNYXNrKCk7XHJcbiAgICB0aGlzLnNsaWRlb3Zlck9wZW4gPSB0cnVlO1xyXG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW1vdmVNb2RhbE1hc2soKTtcclxuICAgIHRoaXMuc2xpZGVvdmVyT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy52aXNpYmxlID0gZmFsc2UsIDIwMCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zbGlkZW92ZXJPcGVuKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRNb2RhbE1hc2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RhbCkge1xyXG4gICAgICB0aGlzLm92ZXJsYXkubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwYXJ0aWNsZV9kaWFsb2dfb3ZlcmxheScpO1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3Njcm9sbF9ub25lJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZU1vZGFsTWFzaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZGFsKSB7XHJcbiAgICAgIHRoaXMub3ZlcmxheS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3BhcnRpY2xlX2RpYWxvZ19vdmVybGF5Jyk7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnc2Nyb2xsX25vbmUnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW1vdmVNb2RhbE1hc2soKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9kZXRlcm1pbmVCcmVha3BvaW50RXhjZWVkZWQod2luZG93LmlubmVyV2lkdGgpXHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAjb3ZlcmxheSAoY2xpY2spPVwiY2xvc2UoKVwiPjwvZGl2PlxyXG48ZGl2XHJcbiAgW25nQ2xhc3NdPVwiYmdDbGFzcyArICcgJyArIChzbGlkZW92ZXJPcGVuID8gJ3NsaWRlb3Zlcl9hY3RpdmVfJyArIHBvc2l0aW9uIDogJ3NsaWRlb3Zlcl9pbmFjdGl2ZV8nICsgcG9zaXRpb24pICsgJyBzbGlkZW92ZXItcGFuZWwgJyArIHBvc2l0aW9uXCJcclxuICBbc3R5bGUud2lkdGhdPVwicG9zaXRpb24gPT09ICdyaWdodCcgfHwgcG9zaXRpb24gPT09ICdsZWZ0JyA/IChicmVha3BvaW50RXhjZWVkZWQgPyAnMTAwJScgOiB3aWR0aCkgOiBudWxsXCJcclxuICBbc3R5bGUuaGVpZ2h0XT1cInBvc2l0aW9uID09PSAndG9wJyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbScgPyAoYnJlYWtwb2ludEV4Y2VlZGVkID8gJzEwMCUnIDogaGVpZ2h0KSA6IG51bGxcIlxyXG4gIFtzdHlsZS5sZWZ0XT1cInBvc2l0aW9uID09PSAnbGVmdCcgJiYgIXNsaWRlb3Zlck9wZW4gPyAnLScgKyAoYnJlYWtwb2ludEV4Y2VlZGVkID8gJzEwMCUnIDogd2lkdGgpIDogbnVsbFwiXHJcbiAgW3N0eWxlLnJpZ2h0XT1cInBvc2l0aW9uID09PSAncmlnaHQnICYmICFzbGlkZW92ZXJPcGVuID8gJy0nICsgKGJyZWFrcG9pbnRFeGNlZWRlZCA/ICcxMDAlJyA6IHdpZHRoKSA6IG51bGxcIlxyXG4gIFtzdHlsZS5ib3R0b21dPVwicG9zaXRpb24gPT09ICdib3R0b20nICYmICFzbGlkZW92ZXJPcGVuID8gJy0nICsgKGJyZWFrcG9pbnRFeGNlZWRlZCA/ICcxMDAlJyA6IGhlaWdodCkgOiBudWxsXCJcclxuICBbc3R5bGUudG9wXT1cInBvc2l0aW9uID09PSAndG9wJyAmJiAhc2xpZGVvdmVyT3BlbiA/ICctJyArIChicmVha3BvaW50RXhjZWVkZWQgPyAnMTAwJScgOiBoZWlnaHQpIDogbnVsbFwiXHJcbiAgW3N0eWxlLnZpc2liaWxpdHldPVwiIXZpc2libGUgPyAnaGlkZGVuJzogJ3Zpc2libGUnXCJcclxuICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhc2xpZGVvdmVyT3BlblwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwicHVzaF9jbG9zZV9iYXJcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhY2Nlc3MgYnRuc2V0IGNsZWFyXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0LmNsb3NlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNpcmNsZV8yMHB4IHB0bF9icmRyX2NvbG9yIHB0bF9icmRyX3NpemUgcHRsX2lucHV0X2JnX2NvbG9yXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19
|