@festo-ui/angular 3.2.1-pre-20220825.1 → 3.2.1-pre-20220915.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +5 -1
- package/esm2020/lib/festo-angular.module.mjs +21 -7
- package/esm2020/lib/forms/date-picker.module.mjs +28 -0
- package/esm2020/lib/forms/forms.module.mjs +1 -22
- package/esm2020/lib/forms/text-editor/text-editor.module.mjs +25 -0
- package/fesm2015/festo-ui-angular.mjs +1353 -1325
- package/fesm2015/festo-ui-angular.mjs.map +1 -1
- package/fesm2020/festo-ui-angular.mjs +1313 -1285
- package/fesm2020/festo-ui-angular.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/festo-angular.module.d.ts +6 -4
- package/lib/forms/date-picker.module.d.ts +17 -0
- package/lib/forms/forms.module.d.ts +16 -23
- package/lib/forms/text-editor/text-editor.module.d.ts +14 -0
- package/package.json +1 -1
|
@@ -20,9 +20,9 @@ import { ObserversModule } from '@angular/cdk/observers';
|
|
|
20
20
|
import * as i1$4 from '@angular/forms';
|
|
21
21
|
import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
22
22
|
import { __awaiter } from 'tslib';
|
|
23
|
+
import { trigger, state, style, transition, animate, sequence } from '@angular/animations';
|
|
23
24
|
import flatpickr from 'flatpickr';
|
|
24
25
|
import QuillType from 'quill';
|
|
25
|
-
import { trigger, state, style, transition, animate, sequence } from '@angular/animations';
|
|
26
26
|
import * as i1$5 from 'swiper/angular';
|
|
27
27
|
import { SwiperModule } from 'swiper/angular';
|
|
28
28
|
import SwiperCore, { FreeMode, Navigation, Keyboard, Thumbs, Zoom } from 'swiper';
|
|
@@ -4317,69 +4317,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
4317
4317
|
type: Input
|
|
4318
4318
|
}] } });
|
|
4319
4319
|
|
|
4320
|
-
class
|
|
4320
|
+
class TimePickerDropdownComponent {
|
|
4321
4321
|
constructor() {
|
|
4322
|
+
this.showSeconds = false;
|
|
4323
|
+
this.timeFormat = '24';
|
|
4322
4324
|
this.dateChange = new EventEmitter();
|
|
4323
4325
|
}
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
minDate: this.options.minDate || null,
|
|
4328
|
-
maxDate: this.options.maxDate || null,
|
|
4329
|
-
mode: this.options.mode || 'single'
|
|
4330
|
-
}
|
|
4331
|
-
: {
|
|
4332
|
-
minDate: null,
|
|
4333
|
-
maxDate: null,
|
|
4334
|
-
mode: 'single'
|
|
4335
|
-
};
|
|
4336
|
-
this.datePicker = flatpickr(this.datePickerRef.nativeElement, {
|
|
4337
|
-
inline: true,
|
|
4338
|
-
defaultDate: this.date,
|
|
4339
|
-
onChange: c => this.onDateChange(c),
|
|
4340
|
-
maxDate: options.maxDate,
|
|
4341
|
-
minDate: options.minDate,
|
|
4342
|
-
mode: options.mode
|
|
4343
|
-
});
|
|
4344
|
-
}
|
|
4345
|
-
ngOnDestroy() {
|
|
4346
|
-
if (this.datePicker != null) {
|
|
4347
|
-
this.datePicker.destroy();
|
|
4326
|
+
hide(event) {
|
|
4327
|
+
if (event.key === 'Escape' || event.key === 'Enter') {
|
|
4328
|
+
this.onDateChange(true, event.key === 'Escape');
|
|
4348
4329
|
}
|
|
4349
4330
|
}
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
this.dateChange.emit(dateOption);
|
|
4331
|
+
ngAfterViewInit() {
|
|
4332
|
+
if (this.hoursInput != null && this.hoursInput.nativeElement != null) {
|
|
4333
|
+
this.hoursInput.nativeElement.focus();
|
|
4354
4334
|
}
|
|
4355
|
-
|
|
4356
|
-
|
|
4335
|
+
}
|
|
4336
|
+
onHourUp() {
|
|
4337
|
+
var _a;
|
|
4338
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setHours(this.date.getHours() + 1);
|
|
4339
|
+
this.onDateChange(false, false);
|
|
4340
|
+
}
|
|
4341
|
+
onHourDown() {
|
|
4342
|
+
var _a;
|
|
4343
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setHours(this.date.getHours() - 1);
|
|
4344
|
+
this.onDateChange(false, false);
|
|
4345
|
+
}
|
|
4346
|
+
onMinuteUp() {
|
|
4347
|
+
var _a;
|
|
4348
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setMinutes(this.date.getMinutes() + 1);
|
|
4349
|
+
this.onDateChange(false, false);
|
|
4350
|
+
}
|
|
4351
|
+
onMinuteDown() {
|
|
4352
|
+
var _a;
|
|
4353
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setMinutes(this.date.getMinutes() - 1);
|
|
4354
|
+
this.onDateChange(false, false);
|
|
4355
|
+
}
|
|
4356
|
+
onSecondUp() {
|
|
4357
|
+
var _a;
|
|
4358
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setSeconds(this.date.getSeconds() + 1);
|
|
4359
|
+
this.onDateChange(false, false);
|
|
4360
|
+
}
|
|
4361
|
+
onSecondDown() {
|
|
4362
|
+
var _a;
|
|
4363
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setSeconds(this.date.getSeconds() - 1);
|
|
4364
|
+
this.onDateChange(false, false);
|
|
4365
|
+
}
|
|
4366
|
+
onHourChange(event) {
|
|
4367
|
+
var _a;
|
|
4368
|
+
const max = +event.target.max;
|
|
4369
|
+
const min = +event.target.min;
|
|
4370
|
+
const hour = +event.target.value;
|
|
4371
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setHours(hour > max ? max : hour < min ? min : hour);
|
|
4372
|
+
}
|
|
4373
|
+
onMinuteChange(event) {
|
|
4374
|
+
var _a;
|
|
4375
|
+
const max = +event.target.max;
|
|
4376
|
+
const min = +event.target.min;
|
|
4377
|
+
const minute = +event.target.value;
|
|
4378
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setMinutes(minute > max ? max : minute < min ? min : minute);
|
|
4379
|
+
}
|
|
4380
|
+
onSecondChange(event) {
|
|
4381
|
+
var _a;
|
|
4382
|
+
const max = +event.target.max;
|
|
4383
|
+
const min = +event.target.min;
|
|
4384
|
+
const seconds = +event.target.value;
|
|
4385
|
+
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setSeconds(seconds > max ? max : seconds < min ? min : seconds);
|
|
4386
|
+
}
|
|
4387
|
+
onDateChange(close, reset) {
|
|
4388
|
+
if (this.date != null) {
|
|
4389
|
+
this.date = new Date(this.date);
|
|
4390
|
+
this.dateChange.emit({ date: !reset ? new Date(this.date) : null, close });
|
|
4357
4391
|
}
|
|
4358
4392
|
}
|
|
4359
4393
|
}
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type:
|
|
4394
|
+
TimePickerDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePickerDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4395
|
+
TimePickerDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TimePickerDropdownComponent, selector: "fng-time-picker-dropdown", inputs: { date: "date", showSeconds: "showSeconds", timeFormat: "timeFormat" }, outputs: { dateChange: "dateChange" }, host: { listeners: { "document:keydown": "hide($event)" } }, viewQueries: [{ propertyName: "hoursInput", first: true, predicate: ["hoursInput"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-timepicker\" [class.fwe-timepicker-am-pm]=\"timeFormat === '12'\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date: (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date: 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date: 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <span *ngIf=\"timeFormat === '12'\" class=\"fwe-badge fwe-badge-control\">\n {{ date | date: 'a' }}\n </span>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "date": i1.DatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
4396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePickerDropdownComponent, decorators: [{
|
|
4363
4397
|
type: Component,
|
|
4364
|
-
args: [{ selector: 'fng-
|
|
4398
|
+
args: [{ selector: 'fng-time-picker-dropdown', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-timepicker\" [class.fwe-timepicker-am-pm]=\"timeFormat === '12'\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date: (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date: 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date: 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <span *ngIf=\"timeFormat === '12'\" class=\"fwe-badge fwe-badge-control\">\n {{ date | date: 'a' }}\n </span>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"] }]
|
|
4365
4399
|
}], propDecorators: { date: [{
|
|
4366
4400
|
type: Input
|
|
4367
|
-
}],
|
|
4401
|
+
}], showSeconds: [{
|
|
4402
|
+
type: Input
|
|
4403
|
+
}], timeFormat: [{
|
|
4368
4404
|
type: Input
|
|
4369
4405
|
}], dateChange: [{
|
|
4370
4406
|
type: Output
|
|
4371
|
-
}],
|
|
4407
|
+
}], hoursInput: [{
|
|
4372
4408
|
type: ViewChild,
|
|
4373
|
-
args: ['
|
|
4409
|
+
args: ['hoursInput']
|
|
4410
|
+
}], hide: [{
|
|
4411
|
+
type: HostListener,
|
|
4412
|
+
args: ['document:keydown', ['$event']]
|
|
4374
4413
|
}] } });
|
|
4375
4414
|
|
|
4376
|
-
class
|
|
4377
|
-
constructor(overlay
|
|
4415
|
+
class TimePickerComponent {
|
|
4416
|
+
constructor(overlay) {
|
|
4378
4417
|
this.overlay = overlay;
|
|
4379
|
-
this.localeDefault = localeDefault;
|
|
4380
|
-
this.innerDisabled = false;
|
|
4381
4418
|
this.innerRequired = false;
|
|
4382
4419
|
this.display = 'block';
|
|
4420
|
+
this.innerDisabled = false;
|
|
4383
4421
|
this.complete = new Subject();
|
|
4384
4422
|
}
|
|
4385
4423
|
get value() {
|
|
@@ -4408,23 +4446,23 @@ class DatePickerComponent {
|
|
|
4408
4446
|
set required(value) {
|
|
4409
4447
|
this.innerRequired = coerceBooleanProperty(value);
|
|
4410
4448
|
}
|
|
4411
|
-
get
|
|
4412
|
-
|
|
4413
|
-
|
|
4449
|
+
get timeFormat() {
|
|
4450
|
+
let timeFormat = 'H:mm';
|
|
4451
|
+
if (this.options != null) {
|
|
4452
|
+
if (this.options.showSeconds) {
|
|
4453
|
+
timeFormat += ':ss';
|
|
4454
|
+
}
|
|
4455
|
+
if (this.options.timeFormat === '12') {
|
|
4456
|
+
timeFormat = timeFormat.toLowerCase() + ' a';
|
|
4457
|
+
}
|
|
4414
4458
|
}
|
|
4415
|
-
|
|
4416
|
-
const locale = this.locale || this.localeDefault;
|
|
4417
|
-
const timezone = this.timezone;
|
|
4418
|
-
return formatDate(this.value, format, locale, timezone);
|
|
4459
|
+
return timeFormat;
|
|
4419
4460
|
}
|
|
4420
4461
|
hide(event) {
|
|
4421
|
-
if (event.key === 'Escape'
|
|
4462
|
+
if (event.key === 'Escape') {
|
|
4422
4463
|
this.dispose();
|
|
4423
4464
|
}
|
|
4424
4465
|
}
|
|
4425
|
-
onDateChange(date) {
|
|
4426
|
-
this.value = date;
|
|
4427
|
-
}
|
|
4428
4466
|
writeValue(date) {
|
|
4429
4467
|
this.innerValue = date;
|
|
4430
4468
|
}
|
|
@@ -4441,8 +4479,11 @@ class DatePickerComponent {
|
|
|
4441
4479
|
event.preventDefault();
|
|
4442
4480
|
event.stopPropagation();
|
|
4443
4481
|
if (!this.disabled) {
|
|
4444
|
-
if (this.
|
|
4445
|
-
|
|
4482
|
+
if (this.timePickerRef == null && this.connector != null && this.connector.nativeElement != null) {
|
|
4483
|
+
const labelWidth = this.connector.nativeElement.clientWidth;
|
|
4484
|
+
this.timePickerRef = this.overlay.create({
|
|
4485
|
+
width: `${labelWidth}px`,
|
|
4486
|
+
panelClass: 'fng-first-child-fullwidth',
|
|
4446
4487
|
hasBackdrop: true,
|
|
4447
4488
|
backdropClass: 'fng-date-picker-backdrop',
|
|
4448
4489
|
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
@@ -4455,38 +4496,36 @@ class DatePickerComponent {
|
|
|
4455
4496
|
originY: 'bottom',
|
|
4456
4497
|
overlayX: 'center',
|
|
4457
4498
|
overlayY: 'top',
|
|
4458
|
-
offsetY: -12
|
|
4459
|
-
offsetX: -10,
|
|
4460
|
-
panelClass: ['flatpickr-calendar', 'open']
|
|
4499
|
+
offsetY: -12
|
|
4461
4500
|
},
|
|
4462
4501
|
{
|
|
4463
4502
|
originX: 'center',
|
|
4464
4503
|
originY: 'top',
|
|
4465
4504
|
overlayX: 'center',
|
|
4466
4505
|
overlayY: 'bottom',
|
|
4467
|
-
offsetY: 4
|
|
4468
|
-
offsetX: -10,
|
|
4469
|
-
panelClass: ['flatpickr-calendar', 'open']
|
|
4506
|
+
offsetY: 4
|
|
4470
4507
|
}
|
|
4471
4508
|
])
|
|
4472
4509
|
.withFlexibleDimensions(false)
|
|
4473
4510
|
.withPush(false)
|
|
4474
4511
|
});
|
|
4475
|
-
const
|
|
4476
|
-
this.
|
|
4477
|
-
this.
|
|
4478
|
-
this.
|
|
4479
|
-
this.
|
|
4480
|
-
|
|
4481
|
-
if (
|
|
4512
|
+
const timePickerPortal = new ComponentPortal(TimePickerDropdownComponent);
|
|
4513
|
+
this.timePicker = this.timePickerRef.attach(timePickerPortal);
|
|
4514
|
+
this.timePicker.instance.timeFormat = this.options != null && this.options.timeFormat != null ? this.options.timeFormat : '24';
|
|
4515
|
+
this.timePicker.instance.showSeconds = this.options != null && this.options.showSeconds != null ? this.options.showSeconds : false;
|
|
4516
|
+
this.timePicker.instance.date = new Date(this.value);
|
|
4517
|
+
this.timePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe(ev => {
|
|
4518
|
+
if (ev.date != null) {
|
|
4519
|
+
this.value = ev.date;
|
|
4520
|
+
}
|
|
4521
|
+
if (ev.close) {
|
|
4482
4522
|
this.dispose();
|
|
4483
4523
|
}
|
|
4484
4524
|
});
|
|
4485
|
-
this.
|
|
4525
|
+
this.timePickerRef
|
|
4486
4526
|
.backdropClick()
|
|
4487
4527
|
.pipe(takeUntil(this.complete))
|
|
4488
4528
|
.subscribe(() => this.dispose());
|
|
4489
|
-
this.datePicker.instance.ngOnInit();
|
|
4490
4529
|
}
|
|
4491
4530
|
else {
|
|
4492
4531
|
this.dispose();
|
|
@@ -4494,10 +4533,10 @@ class DatePickerComponent {
|
|
|
4494
4533
|
}
|
|
4495
4534
|
}
|
|
4496
4535
|
dispose() {
|
|
4497
|
-
if (this.
|
|
4498
|
-
this.
|
|
4499
|
-
this.
|
|
4500
|
-
this.
|
|
4536
|
+
if (this.timePickerRef != null) {
|
|
4537
|
+
this.timePickerRef.detach();
|
|
4538
|
+
this.timePickerRef.dispose();
|
|
4539
|
+
this.timePickerRef = null;
|
|
4501
4540
|
}
|
|
4502
4541
|
if (this.complete != null) {
|
|
4503
4542
|
this.complete.next(true);
|
|
@@ -4505,49 +4544,35 @@ class DatePickerComponent {
|
|
|
4505
4544
|
}
|
|
4506
4545
|
}
|
|
4507
4546
|
}
|
|
4508
|
-
|
|
4509
|
-
|
|
4547
|
+
TimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePickerComponent, deps: [{ token: i1$2.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
4548
|
+
TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TimePickerComponent, selector: "fng-time-picker", inputs: { value: "value", disabled: "disabled", required: "required", hint: "hint", error: "error", options: "options", width: "width" }, host: { listeners: { "document:keydown": "hide($event)" }, properties: { "style.width": "this.width", "style.display": "this.display" } }, providers: [
|
|
4510
4549
|
{
|
|
4511
4550
|
provide: NG_VALUE_ACCESSOR,
|
|
4512
|
-
useExisting: forwardRef(() =>
|
|
4551
|
+
useExisting: forwardRef(() => TimePickerComponent),
|
|
4513
4552
|
multi: true
|
|
4514
4553
|
}
|
|
4515
|
-
], viewQueries: [{ propertyName: "connector", first: true, predicate: ["connector"], descendants: true, static: true }], ngImport: i0, template: "<label #connector class=\"fng-
|
|
4516
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type:
|
|
4554
|
+
], viewQueries: [{ propertyName: "connector", first: true, predicate: ["connector"], descendants: true, static: true }], ngImport: i0, template: "<label #connector class=\"fng-time-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i class=\"fwe-icon fwe-icon-time-time\" [class.fwe-color-hero]=\"timePickerRef != null\" [class.fwe-color-control-disabled]=\"disabled\"></i>\n <input\n aria-label=\"picked time\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"timePickerRef != null\"\n [value]=\"value | date: timeFormat\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n", styles: [".fng-first-child-fullwidth fng-time-picker-dropdown{width:100%}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "date": i1.DatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
4555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
4517
4556
|
type: Component,
|
|
4518
|
-
args: [{ selector: 'fng-
|
|
4557
|
+
args: [{ selector: 'fng-time-picker', providers: [
|
|
4519
4558
|
{
|
|
4520
4559
|
provide: NG_VALUE_ACCESSOR,
|
|
4521
|
-
useExisting: forwardRef(() =>
|
|
4560
|
+
useExisting: forwardRef(() => TimePickerComponent),
|
|
4522
4561
|
multi: true
|
|
4523
4562
|
}
|
|
4524
|
-
], encapsulation: ViewEncapsulation.None, template: "<label #connector class=\"fng-
|
|
4525
|
-
}], ctorParameters: function () {
|
|
4526
|
-
return [{ type: i1$2.Overlay }, { type: undefined, decorators: [{
|
|
4527
|
-
type: Inject,
|
|
4528
|
-
args: [LOCALE_ID]
|
|
4529
|
-
}] }];
|
|
4530
|
-
}, propDecorators: { value: [{
|
|
4563
|
+
], encapsulation: ViewEncapsulation.None, template: "<label #connector class=\"fng-time-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i class=\"fwe-icon fwe-icon-time-time\" [class.fwe-color-hero]=\"timePickerRef != null\" [class.fwe-color-control-disabled]=\"disabled\"></i>\n <input\n aria-label=\"picked time\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"timePickerRef != null\"\n [value]=\"value | date: timeFormat\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n", styles: [".fng-first-child-fullwidth fng-time-picker-dropdown{width:100%}\n"] }]
|
|
4564
|
+
}], ctorParameters: function () { return [{ type: i1$2.Overlay }]; }, propDecorators: { value: [{
|
|
4531
4565
|
type: Input
|
|
4532
4566
|
}], disabled: [{
|
|
4533
4567
|
type: Input
|
|
4568
|
+
}], required: [{
|
|
4569
|
+
type: Input
|
|
4534
4570
|
}], hint: [{
|
|
4535
4571
|
type: Input
|
|
4536
4572
|
}], error: [{
|
|
4537
4573
|
type: Input
|
|
4538
4574
|
}], options: [{
|
|
4539
4575
|
type: Input
|
|
4540
|
-
}], locale: [{
|
|
4541
|
-
type: Input
|
|
4542
|
-
}], format: [{
|
|
4543
|
-
type: Input
|
|
4544
|
-
}], timezone: [{
|
|
4545
|
-
type: Input
|
|
4546
|
-
}], required: [{
|
|
4547
|
-
type: Input
|
|
4548
|
-
}], connector: [{
|
|
4549
|
-
type: ViewChild,
|
|
4550
|
-
args: ['connector', { static: true }]
|
|
4551
4576
|
}], width: [{
|
|
4552
4577
|
type: Input
|
|
4553
4578
|
}, {
|
|
@@ -4556,1405 +4581,1396 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
4556
4581
|
}], display: [{
|
|
4557
4582
|
type: HostBinding,
|
|
4558
4583
|
args: ['style.display']
|
|
4584
|
+
}], connector: [{
|
|
4585
|
+
type: ViewChild,
|
|
4586
|
+
args: ['connector', { static: true }]
|
|
4559
4587
|
}], hide: [{
|
|
4560
4588
|
type: HostListener,
|
|
4561
4589
|
args: ['document:keydown', ['$event']]
|
|
4562
4590
|
}] } });
|
|
4563
4591
|
|
|
4564
|
-
class
|
|
4565
|
-
constructor(
|
|
4566
|
-
this.
|
|
4567
|
-
this.localeDefault = localeDefault;
|
|
4568
|
-
this.innerDisabled = false;
|
|
4569
|
-
this.innerRequired = false;
|
|
4570
|
-
this.display = 'block';
|
|
4571
|
-
this.fngChange = new EventEmitter();
|
|
4572
|
-
this.change = new EventEmitter();
|
|
4573
|
-
this.complete = new Subject();
|
|
4574
|
-
}
|
|
4575
|
-
get value() {
|
|
4576
|
-
return this.innerValue;
|
|
4592
|
+
class ContainerHostDirective {
|
|
4593
|
+
constructor(elementRef) {
|
|
4594
|
+
this.elementRef = elementRef;
|
|
4577
4595
|
}
|
|
4578
|
-
|
|
4579
|
-
if (
|
|
4580
|
-
|
|
4581
|
-
if (
|
|
4582
|
-
this.
|
|
4596
|
+
onHostClick(target) {
|
|
4597
|
+
if (this.elementRef && this.elementRef.nativeElement) {
|
|
4598
|
+
const containsTarget = this.elementRef.nativeElement.contains(target);
|
|
4599
|
+
if (!containsTarget) {
|
|
4600
|
+
this.onOutsideClick();
|
|
4583
4601
|
}
|
|
4584
|
-
|
|
4585
|
-
this.
|
|
4602
|
+
else {
|
|
4603
|
+
this.onContainerClick();
|
|
4586
4604
|
}
|
|
4587
|
-
this.fngChange.emit(this.innerValue);
|
|
4588
|
-
this.change.emit(this.innerValue);
|
|
4589
4605
|
}
|
|
4590
4606
|
}
|
|
4591
|
-
|
|
4592
|
-
|
|
4607
|
+
}
|
|
4608
|
+
ContainerHostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ContainerHostDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4609
|
+
ContainerHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: ContainerHostDirective, host: { listeners: { "document:click": "onHostClick($event.target)" } }, ngImport: i0 });
|
|
4610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ContainerHostDirective, decorators: [{
|
|
4611
|
+
type: Directive
|
|
4612
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onHostClick: [{
|
|
4613
|
+
type: HostListener,
|
|
4614
|
+
args: ['document:click', ['$event.target']]
|
|
4615
|
+
}] } });
|
|
4616
|
+
|
|
4617
|
+
class FestoAngularFormsModule {
|
|
4618
|
+
}
|
|
4619
|
+
FestoAngularFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4620
|
+
FestoAngularFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularFormsModule, declarations: [CheckboxComponent,
|
|
4621
|
+
SwitchComponent,
|
|
4622
|
+
RadioGroupDirective,
|
|
4623
|
+
RadioComponent,
|
|
4624
|
+
TextInputComponent,
|
|
4625
|
+
TextAreaComponent,
|
|
4626
|
+
ColorIndicatorComponent,
|
|
4627
|
+
ColorPickerComponent,
|
|
4628
|
+
SelectComponent,
|
|
4629
|
+
SelectOptionComponent,
|
|
4630
|
+
SliderComponent,
|
|
4631
|
+
SegmentComponent,
|
|
4632
|
+
SegmentControlComponent,
|
|
4633
|
+
TimePickerComponent,
|
|
4634
|
+
TimePickerDropdownComponent,
|
|
4635
|
+
ChipTextPipe], imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], exports: [ReactiveFormsModule,
|
|
4636
|
+
FormsModule,
|
|
4637
|
+
CheckboxComponent,
|
|
4638
|
+
SwitchComponent,
|
|
4639
|
+
RadioGroupDirective,
|
|
4640
|
+
RadioComponent,
|
|
4641
|
+
TextInputComponent,
|
|
4642
|
+
TextAreaComponent,
|
|
4643
|
+
ColorIndicatorComponent,
|
|
4644
|
+
ColorPickerComponent,
|
|
4645
|
+
SelectComponent,
|
|
4646
|
+
SelectOptionComponent,
|
|
4647
|
+
SliderComponent,
|
|
4648
|
+
SegmentComponent,
|
|
4649
|
+
SegmentControlComponent,
|
|
4650
|
+
TimePickerComponent,
|
|
4651
|
+
TimePickerDropdownComponent,
|
|
4652
|
+
ChipTextPipe] });
|
|
4653
|
+
FestoAngularFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularFormsModule, providers: [UniqueSelectionDispatcher], imports: [[ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], ReactiveFormsModule,
|
|
4654
|
+
FormsModule] });
|
|
4655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularFormsModule, decorators: [{
|
|
4656
|
+
type: NgModule,
|
|
4657
|
+
args: [{
|
|
4658
|
+
declarations: [
|
|
4659
|
+
CheckboxComponent,
|
|
4660
|
+
SwitchComponent,
|
|
4661
|
+
RadioGroupDirective,
|
|
4662
|
+
RadioComponent,
|
|
4663
|
+
TextInputComponent,
|
|
4664
|
+
TextAreaComponent,
|
|
4665
|
+
ColorIndicatorComponent,
|
|
4666
|
+
ColorPickerComponent,
|
|
4667
|
+
SelectComponent,
|
|
4668
|
+
SelectOptionComponent,
|
|
4669
|
+
SliderComponent,
|
|
4670
|
+
SegmentComponent,
|
|
4671
|
+
SegmentControlComponent,
|
|
4672
|
+
TimePickerComponent,
|
|
4673
|
+
TimePickerDropdownComponent,
|
|
4674
|
+
ChipTextPipe
|
|
4675
|
+
],
|
|
4676
|
+
imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],
|
|
4677
|
+
exports: [
|
|
4678
|
+
ReactiveFormsModule,
|
|
4679
|
+
FormsModule,
|
|
4680
|
+
CheckboxComponent,
|
|
4681
|
+
SwitchComponent,
|
|
4682
|
+
RadioGroupDirective,
|
|
4683
|
+
RadioComponent,
|
|
4684
|
+
TextInputComponent,
|
|
4685
|
+
TextAreaComponent,
|
|
4686
|
+
ColorIndicatorComponent,
|
|
4687
|
+
ColorPickerComponent,
|
|
4688
|
+
SelectComponent,
|
|
4689
|
+
SelectOptionComponent,
|
|
4690
|
+
SliderComponent,
|
|
4691
|
+
SegmentComponent,
|
|
4692
|
+
SegmentControlComponent,
|
|
4693
|
+
TimePickerComponent,
|
|
4694
|
+
TimePickerDropdownComponent,
|
|
4695
|
+
ChipTextPipe
|
|
4696
|
+
],
|
|
4697
|
+
providers: [UniqueSelectionDispatcher]
|
|
4698
|
+
}]
|
|
4699
|
+
}] });
|
|
4700
|
+
|
|
4701
|
+
class AlertComponent {
|
|
4702
|
+
constructor() {
|
|
4703
|
+
this.close = new EventEmitter();
|
|
4704
|
+
this.cancel = new EventEmitter();
|
|
4705
|
+
this.ok = new EventEmitter();
|
|
4593
4706
|
}
|
|
4594
|
-
|
|
4595
|
-
|
|
4707
|
+
onKeyUp(event) {
|
|
4708
|
+
event.preventDefault();
|
|
4709
|
+
event.stopPropagation();
|
|
4710
|
+
if (event.key === 'Esc' || event.key === 'Escape') {
|
|
4711
|
+
this.onClose();
|
|
4712
|
+
}
|
|
4596
4713
|
}
|
|
4597
|
-
|
|
4598
|
-
|
|
4714
|
+
ngAfterViewInit() {
|
|
4715
|
+
if (this.closeBtn) {
|
|
4716
|
+
this.closeBtn.nativeElement.focus();
|
|
4717
|
+
}
|
|
4599
4718
|
}
|
|
4600
|
-
|
|
4601
|
-
this.
|
|
4719
|
+
onClose() {
|
|
4720
|
+
this.close.emit();
|
|
4602
4721
|
}
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
if (!v || v.length !== 2) {
|
|
4606
|
-
return null;
|
|
4607
|
-
}
|
|
4608
|
-
const from = this.value[0];
|
|
4609
|
-
const format = this.format || 'mediumDate';
|
|
4610
|
-
const locale = this.locale || this.localeDefault;
|
|
4611
|
-
const timezone = this.timezone;
|
|
4612
|
-
return formatDate(from, format, locale, timezone);
|
|
4722
|
+
onOk() {
|
|
4723
|
+
this.ok.emit();
|
|
4613
4724
|
}
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
|
|
4725
|
+
onCancel() {
|
|
4726
|
+
this.cancel.emit();
|
|
4727
|
+
}
|
|
4728
|
+
}
|
|
4729
|
+
AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4730
|
+
AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AlertComponent, selector: "fng-alert", inputs: { data: "data" }, outputs: { close: "close", cancel: "cancel", ok: "ok" }, host: { listeners: { "window:keyup": "onKeyUp($event)" } }, viewQueries: [{ propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true }], ngImport: i0, template: "<div\n class=\"fwe-modal\"\n [ngClass]=\"{\n 'fwe-modal--with-indicator-bar': data?.strong === true,\n 'fwe-modal--warning': data?.alertType === 'warning',\n 'fwe-modal--error': data?.alertType === 'error',\n 'fwe-modal--info': data?.alertType === 'info'\n }\"\n>\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">\n <i\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-warning': data?.alertType === 'warning',\n 'fwe-icon-status-failure': data?.alertType === 'error',\n 'fwe-icon-status-check-status': data?.alertType === 'info'\n }\"\n ></i\n >{{ data?.subtitle }}\n </h2>\n <h1 class=\"fwe-modal-h1\">\n <i\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-warning': data?.alertType === 'warning',\n 'fwe-icon-status-failure': data?.alertType === 'error',\n 'fwe-icon-status-check-status': data?.alertType === 'info'\n }\"\n ></i\n >{{ data?.title }}\n </h1>\n </div>\n <div class=\"fwe-modal-body\">\n <p>{{ data?.body }}</p>\n </div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button\n *ngIf=\"data?.cancel\"\n type=\"button\"\n aria-label=\"Cancel\"\n class=\"fwe-btn fwe-btn-lg\"\n [class.fwe-btn-link]=\"data?.strong\"\n (click)=\"onCancel()\"\n >\n {{ data?.cancel }}\n </button>\n <button\n *ngIf=\"data?.ok\"\n type=\"button\"\n aria-label=\"Ok\"\n class=\"fwe-btn fwe-btn-lg\"\n [class.fwe-btn-hero]=\"!data?.strong\"\n (click)=\"onOk()\"\n >\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n", styles: [""], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
4731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AlertComponent, decorators: [{
|
|
4732
|
+
type: Component,
|
|
4733
|
+
args: [{ selector: 'fng-alert', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"fwe-modal\"\n [ngClass]=\"{\n 'fwe-modal--with-indicator-bar': data?.strong === true,\n 'fwe-modal--warning': data?.alertType === 'warning',\n 'fwe-modal--error': data?.alertType === 'error',\n 'fwe-modal--info': data?.alertType === 'info'\n }\"\n>\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">\n <i\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-warning': data?.alertType === 'warning',\n 'fwe-icon-status-failure': data?.alertType === 'error',\n 'fwe-icon-status-check-status': data?.alertType === 'info'\n }\"\n ></i\n >{{ data?.subtitle }}\n </h2>\n <h1 class=\"fwe-modal-h1\">\n <i\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-warning': data?.alertType === 'warning',\n 'fwe-icon-status-failure': data?.alertType === 'error',\n 'fwe-icon-status-check-status': data?.alertType === 'info'\n }\"\n ></i\n >{{ data?.title }}\n </h1>\n </div>\n <div class=\"fwe-modal-body\">\n <p>{{ data?.body }}</p>\n </div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button\n *ngIf=\"data?.cancel\"\n type=\"button\"\n aria-label=\"Cancel\"\n class=\"fwe-btn fwe-btn-lg\"\n [class.fwe-btn-link]=\"data?.strong\"\n (click)=\"onCancel()\"\n >\n {{ data?.cancel }}\n </button>\n <button\n *ngIf=\"data?.ok\"\n type=\"button\"\n aria-label=\"Ok\"\n class=\"fwe-btn fwe-btn-lg\"\n [class.fwe-btn-hero]=\"!data?.strong\"\n (click)=\"onOk()\"\n >\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n", styles: [""] }]
|
|
4734
|
+
}], propDecorators: { data: [{
|
|
4735
|
+
type: Input
|
|
4736
|
+
}], close: [{
|
|
4737
|
+
type: Output
|
|
4738
|
+
}], cancel: [{
|
|
4739
|
+
type: Output
|
|
4740
|
+
}], ok: [{
|
|
4741
|
+
type: Output
|
|
4742
|
+
}], closeBtn: [{
|
|
4743
|
+
type: ViewChild,
|
|
4744
|
+
args: ['closeBtn']
|
|
4745
|
+
}], onKeyUp: [{
|
|
4746
|
+
type: HostListener,
|
|
4747
|
+
args: ['window:keyup', ['$event']]
|
|
4748
|
+
}] } });
|
|
4749
|
+
|
|
4750
|
+
class ConfirmComponent {
|
|
4751
|
+
constructor(cd) {
|
|
4752
|
+
this.cd = cd;
|
|
4753
|
+
this.close = new EventEmitter();
|
|
4754
|
+
this.cancel = new EventEmitter();
|
|
4755
|
+
this.ok = new EventEmitter();
|
|
4756
|
+
}
|
|
4757
|
+
onKeyUp(event) {
|
|
4758
|
+
event.preventDefault();
|
|
4759
|
+
event.stopPropagation();
|
|
4760
|
+
if (event.key === 'Esc' || event.key === 'Escape') {
|
|
4761
|
+
this.onClose();
|
|
4618
4762
|
}
|
|
4619
|
-
const to = this.value[1];
|
|
4620
|
-
const format = this.format || 'mediumDate';
|
|
4621
|
-
const locale = this.locale || this.localeDefault;
|
|
4622
|
-
const timezone = this.timezone;
|
|
4623
|
-
return formatDate(to, format, locale, timezone);
|
|
4624
4763
|
}
|
|
4625
|
-
|
|
4626
|
-
if (
|
|
4627
|
-
this.
|
|
4764
|
+
ngAfterViewInit() {
|
|
4765
|
+
if (this.closeBtn) {
|
|
4766
|
+
this.closeBtn.nativeElement.focus();
|
|
4628
4767
|
}
|
|
4629
4768
|
}
|
|
4630
|
-
|
|
4631
|
-
this.
|
|
4769
|
+
onClose() {
|
|
4770
|
+
this.close.emit();
|
|
4632
4771
|
}
|
|
4633
|
-
|
|
4634
|
-
this.
|
|
4772
|
+
onOk() {
|
|
4773
|
+
this.ok.emit();
|
|
4635
4774
|
}
|
|
4636
|
-
|
|
4637
|
-
this.
|
|
4775
|
+
onCancel() {
|
|
4776
|
+
this.cancel.emit();
|
|
4638
4777
|
}
|
|
4639
|
-
|
|
4640
|
-
|
|
4778
|
+
}
|
|
4779
|
+
ConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ConfirmComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4780
|
+
ConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ConfirmComponent, selector: "fng-confirm", inputs: { data: "data" }, outputs: { close: "close", cancel: "cancel", ok: "ok" }, host: { listeners: { "window:keyup": "onKeyUp($event)" } }, viewQueries: [{ propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-modal\" [ngClass]=\"{ 'fwe-modal--large': data?.large }\">\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">{{ data?.subtitle }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ data?.title }}</h1>\n </div>\n <div class=\"fwe-modal-body\">\n <p>{{ data?.body }}</p>\n </div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button *ngIf=\"data?.cancel\" type=\"button\" aria-label=\"Cancel\" class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-lg fwe-btn-hero\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n", styles: [""], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4781
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ConfirmComponent, decorators: [{
|
|
4782
|
+
type: Component,
|
|
4783
|
+
args: [{ selector: 'fng-confirm', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-modal\" [ngClass]=\"{ 'fwe-modal--large': data?.large }\">\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">{{ data?.subtitle }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ data?.title }}</h1>\n </div>\n <div class=\"fwe-modal-body\">\n <p>{{ data?.body }}</p>\n </div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button *ngIf=\"data?.cancel\" type=\"button\" aria-label=\"Cancel\" class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-lg fwe-btn-hero\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n", styles: [""] }]
|
|
4784
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
4785
|
+
type: Input
|
|
4786
|
+
}], close: [{
|
|
4787
|
+
type: Output
|
|
4788
|
+
}], cancel: [{
|
|
4789
|
+
type: Output
|
|
4790
|
+
}], ok: [{
|
|
4791
|
+
type: Output
|
|
4792
|
+
}], closeBtn: [{
|
|
4793
|
+
type: ViewChild,
|
|
4794
|
+
args: ['closeBtn']
|
|
4795
|
+
}], onKeyUp: [{
|
|
4796
|
+
type: HostListener,
|
|
4797
|
+
args: ['window:keyup', ['$event']]
|
|
4798
|
+
}] } });
|
|
4799
|
+
|
|
4800
|
+
class PromptComponent {
|
|
4801
|
+
constructor(formBuilder) {
|
|
4802
|
+
this.formBuilder = formBuilder;
|
|
4803
|
+
this.close = new EventEmitter();
|
|
4804
|
+
this.cancel = new EventEmitter();
|
|
4805
|
+
this.ok = new EventEmitter();
|
|
4806
|
+
this.error = '';
|
|
4807
|
+
this.complete = new Subject();
|
|
4641
4808
|
}
|
|
4642
|
-
|
|
4643
|
-
|
|
4809
|
+
get text() {
|
|
4810
|
+
var _a, _b;
|
|
4811
|
+
return (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.get('text')) === null || _b === void 0 ? void 0 : _b.value;
|
|
4644
4812
|
}
|
|
4645
|
-
|
|
4813
|
+
get valid() {
|
|
4814
|
+
var _a, _b;
|
|
4815
|
+
return (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.get('text')) === null || _b === void 0 ? void 0 : _b.valid;
|
|
4816
|
+
}
|
|
4817
|
+
onKeyUp(event) {
|
|
4646
4818
|
event.preventDefault();
|
|
4647
4819
|
event.stopPropagation();
|
|
4648
|
-
if (
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
{
|
|
4668
|
-
originX: 'center',
|
|
4669
|
-
originY: 'top',
|
|
4670
|
-
overlayX: 'center',
|
|
4671
|
-
overlayY: 'bottom',
|
|
4672
|
-
offsetY: 4,
|
|
4673
|
-
offsetX: -10,
|
|
4674
|
-
panelClass: ['flatpickr-calendar', 'open']
|
|
4675
|
-
}
|
|
4676
|
-
])
|
|
4677
|
-
.withFlexibleDimensions(false)
|
|
4678
|
-
.withPush(false)
|
|
4679
|
-
});
|
|
4680
|
-
const datePickerPortal = new ComponentPortal(FlatpickrComponent);
|
|
4681
|
-
this.datePicker = this.dateRangePickerRef.attach(datePickerPortal);
|
|
4682
|
-
this.datePicker.instance.options = {
|
|
4683
|
-
mode: 'range',
|
|
4684
|
-
minDate: this.options != null && this.options.minDate != null ? this.options.minDate : null,
|
|
4685
|
-
maxDate: this.options != null && this.options.maxDate != null ? this.options.maxDate : null
|
|
4686
|
-
};
|
|
4687
|
-
this.datePicker.instance.date = this.value;
|
|
4688
|
-
this.datePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe((c) => {
|
|
4689
|
-
this.onDateChange(c);
|
|
4690
|
-
if (this.options == null || !this.options.keepOpenOnDateChange) {
|
|
4691
|
-
this.dispose();
|
|
4692
|
-
}
|
|
4693
|
-
});
|
|
4694
|
-
this.dateRangePickerRef
|
|
4695
|
-
.backdropClick()
|
|
4696
|
-
.pipe(takeUntil(this.complete))
|
|
4697
|
-
.subscribe(() => this.dispose());
|
|
4698
|
-
this.datePicker.instance.ngOnInit();
|
|
4820
|
+
if (event.key === 'Esc' || event.key === 'Escape') {
|
|
4821
|
+
this.onClose();
|
|
4822
|
+
}
|
|
4823
|
+
}
|
|
4824
|
+
ngOnInit() {
|
|
4825
|
+
var _a, _b, _c;
|
|
4826
|
+
const text = ((_a = this.data) === null || _a === void 0 ? void 0 : _a.value) || '';
|
|
4827
|
+
this.form = this.formBuilder.group({
|
|
4828
|
+
text: this.formBuilder.control(text, (_b = this.data) === null || _b === void 0 ? void 0 : _b.validatorOrOpts, (_c = this.data) === null || _c === void 0 ? void 0 : _c.asyncValidator)
|
|
4829
|
+
});
|
|
4830
|
+
if (text) {
|
|
4831
|
+
this.form.get('text').markAsDirty();
|
|
4832
|
+
}
|
|
4833
|
+
this.form
|
|
4834
|
+
.get('text')
|
|
4835
|
+
.statusChanges.pipe(takeUntil(this.complete))
|
|
4836
|
+
.subscribe(sc => {
|
|
4837
|
+
if (sc === 'INVALID') {
|
|
4838
|
+
this.handleErrors();
|
|
4699
4839
|
}
|
|
4700
4840
|
else {
|
|
4701
|
-
this.
|
|
4841
|
+
this.error = '';
|
|
4702
4842
|
}
|
|
4843
|
+
});
|
|
4844
|
+
}
|
|
4845
|
+
ngAfterViewInit() {
|
|
4846
|
+
if (this.closeBtn) {
|
|
4847
|
+
this.closeBtn.nativeElement.focus();
|
|
4703
4848
|
}
|
|
4704
4849
|
}
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4850
|
+
ngOnDestroy() {
|
|
4851
|
+
this.complete.next(true);
|
|
4852
|
+
this.complete.unsubscribe();
|
|
4853
|
+
}
|
|
4854
|
+
onClose() {
|
|
4855
|
+
this.close.emit();
|
|
4856
|
+
}
|
|
4857
|
+
onOk() {
|
|
4858
|
+
if (this.valid) {
|
|
4859
|
+
this.ok.emit(this.text);
|
|
4710
4860
|
}
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4861
|
+
}
|
|
4862
|
+
onCancel() {
|
|
4863
|
+
this.cancel.emit();
|
|
4864
|
+
}
|
|
4865
|
+
handleErrors() {
|
|
4866
|
+
const e = this.form.get('text').errors;
|
|
4867
|
+
const key = Object.keys(e)[0];
|
|
4868
|
+
if (this.data.errors != null && this.data.errors[key]) {
|
|
4869
|
+
this.error = this.data.errors[key];
|
|
4870
|
+
}
|
|
4871
|
+
else {
|
|
4872
|
+
this.error = 'Prompt input is invalid.';
|
|
4714
4873
|
}
|
|
4715
4874
|
}
|
|
4716
4875
|
}
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
provide: NG_VALUE_ACCESSOR,
|
|
4721
|
-
useExisting: forwardRef(() => DateRangePickerComponent),
|
|
4722
|
-
multi: true
|
|
4723
|
-
}
|
|
4724
|
-
], viewQueries: [{ propertyName: "connector", first: true, predicate: ["connector"], descendants: true, static: true }], ngImport: i0, template: "<div #connector class=\"fng-date-range-picker\" (click)=\"toggle($event)\">\n <label class=\"fwe-input-text fwe-input-text-icon\">\n <i\n class=\"fwe-icon fwe-icon-time-calendar\"\n [class.fwe-color-hero]=\"dateRangePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></i>\n <div class=\"fng-date-range-picker-inputs\" [class.fng-date-range-picker-inputs--disabled]=\"disabled\">\n <input\n aria-label=\"picked start date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"fromDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n <input\n aria-label=\"picked end date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"toDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n </div>\n <span class=\"fwe-input-text-label\" [class.fwe-color-text-disabled]=\"disabled\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n </label>\n</div>\n", styles: [".fwe-border-hero{border-color:var(--fwe-hero)!important}.fng-date-range-picker:hover input{color:var(--fwe-hero)}.fng-date-range-picker-inputs{display:flex;order:2;position:relative}.fng-date-range-picker-inputs--disabled:after{color:var(--fwe-text-disabled)}.fng-date-range-picker-inputs:after{position:absolute;content:\"-\";left:50%;top:50%;transform:translate(-50%,-50%);padding-right:32px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
4725
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
4876
|
+
PromptComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PromptComponent, deps: [{ token: i1$4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
4877
|
+
PromptComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: PromptComponent, selector: "fng-prompt", inputs: { data: "data" }, outputs: { close: "close", cancel: "cancel", ok: "ok" }, host: { listeners: { "window:keyup": "onKeyUp($event)" } }, viewQueries: [{ propertyName: "closeBtn", first: true, predicate: ["closeBtn"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-modal\">\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">{{ data?.subtitle }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ data?.title }}</h1>\n </div>\n <form [formGroup]=\"form\" class=\"fwe-modal-body\">\n <fng-text-input formControlName=\"text\" [label]=\"data?.label\" [hint]=\"data?.hint\" type=\"text\" [error]=\"error\"></fng-text-input>\n </form>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button *ngIf=\"data?.cancel\" type=\"button\" aria-label=\"Cancel\" class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-hero fwe-btn-lg\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n", styles: [""], components: [{ type: TextInputComponent, selector: "fng-text-input", inputs: ["label", "type", "readonly", "step", "min", "max", "tabindex", "placeholder", "name", "disabled", "value", "required", "error", "hint"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
4878
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PromptComponent, decorators: [{
|
|
4726
4879
|
type: Component,
|
|
4727
|
-
args: [{ selector: 'fng-
|
|
4728
|
-
|
|
4729
|
-
provide: NG_VALUE_ACCESSOR,
|
|
4730
|
-
useExisting: forwardRef(() => DateRangePickerComponent),
|
|
4731
|
-
multi: true
|
|
4732
|
-
}
|
|
4733
|
-
], encapsulation: ViewEncapsulation.None, template: "<div #connector class=\"fng-date-range-picker\" (click)=\"toggle($event)\">\n <label class=\"fwe-input-text fwe-input-text-icon\">\n <i\n class=\"fwe-icon fwe-icon-time-calendar\"\n [class.fwe-color-hero]=\"dateRangePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></i>\n <div class=\"fng-date-range-picker-inputs\" [class.fng-date-range-picker-inputs--disabled]=\"disabled\">\n <input\n aria-label=\"picked start date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"fromDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n <input\n aria-label=\"picked end date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"toDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n </div>\n <span class=\"fwe-input-text-label\" [class.fwe-color-text-disabled]=\"disabled\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n </label>\n</div>\n", styles: [".fwe-border-hero{border-color:var(--fwe-hero)!important}.fng-date-range-picker:hover input{color:var(--fwe-hero)}.fng-date-range-picker-inputs{display:flex;order:2;position:relative}.fng-date-range-picker-inputs--disabled:after{color:var(--fwe-text-disabled)}.fng-date-range-picker-inputs:after{position:absolute;content:\"-\";left:50%;top:50%;transform:translate(-50%,-50%);padding-right:32px}\n"] }]
|
|
4734
|
-
}], ctorParameters: function () {
|
|
4735
|
-
return [{ type: i1$2.Overlay }, { type: undefined, decorators: [{
|
|
4736
|
-
type: Inject,
|
|
4737
|
-
args: [LOCALE_ID]
|
|
4738
|
-
}] }];
|
|
4739
|
-
}, propDecorators: { value: [{
|
|
4740
|
-
type: Input
|
|
4741
|
-
}], disabled: [{
|
|
4742
|
-
type: Input
|
|
4743
|
-
}], hint: [{
|
|
4744
|
-
type: Input
|
|
4745
|
-
}], error: [{
|
|
4746
|
-
type: Input
|
|
4747
|
-
}], locale: [{
|
|
4748
|
-
type: Input
|
|
4749
|
-
}], format: [{
|
|
4750
|
-
type: Input
|
|
4751
|
-
}], timezone: [{
|
|
4752
|
-
type: Input
|
|
4753
|
-
}], options: [{
|
|
4754
|
-
type: Input
|
|
4755
|
-
}], required: [{
|
|
4756
|
-
type: Input
|
|
4757
|
-
}], width: [{
|
|
4880
|
+
args: [{ selector: 'fng-prompt', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-modal\">\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">{{ data?.subtitle }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ data?.title }}</h1>\n </div>\n <form [formGroup]=\"form\" class=\"fwe-modal-body\">\n <fng-text-input formControlName=\"text\" [label]=\"data?.label\" [hint]=\"data?.hint\" type=\"text\" [error]=\"error\"></fng-text-input>\n </form>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button *ngIf=\"data?.cancel\" type=\"button\" aria-label=\"Cancel\" class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-hero fwe-btn-lg\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n", styles: [""] }]
|
|
4881
|
+
}], ctorParameters: function () { return [{ type: i1$4.FormBuilder }]; }, propDecorators: { data: [{
|
|
4758
4882
|
type: Input
|
|
4759
|
-
}, {
|
|
4760
|
-
type: HostBinding,
|
|
4761
|
-
args: ['style.width']
|
|
4762
|
-
}], display: [{
|
|
4763
|
-
type: HostBinding,
|
|
4764
|
-
args: ['style.display']
|
|
4765
|
-
}], fngChange: [{
|
|
4883
|
+
}], close: [{
|
|
4766
4884
|
type: Output
|
|
4767
|
-
}],
|
|
4885
|
+
}], cancel: [{
|
|
4768
4886
|
type: Output
|
|
4769
|
-
}],
|
|
4887
|
+
}], ok: [{
|
|
4888
|
+
type: Output
|
|
4889
|
+
}], closeBtn: [{
|
|
4770
4890
|
type: ViewChild,
|
|
4771
|
-
args: ['
|
|
4772
|
-
}],
|
|
4891
|
+
args: ['closeBtn']
|
|
4892
|
+
}], onKeyUp: [{
|
|
4773
4893
|
type: HostListener,
|
|
4774
|
-
args: ['
|
|
4894
|
+
args: ['window:keyup', ['$event']]
|
|
4775
4895
|
}] } });
|
|
4776
4896
|
|
|
4777
|
-
class
|
|
4897
|
+
class CustomModalComponent {
|
|
4778
4898
|
constructor() {
|
|
4779
|
-
this.
|
|
4780
|
-
this.
|
|
4781
|
-
this.
|
|
4899
|
+
this.closeOnBackdrop = false;
|
|
4900
|
+
this.large = false;
|
|
4901
|
+
this.visible = false;
|
|
4902
|
+
this.visibleChange = new EventEmitter(false);
|
|
4903
|
+
this.header = '';
|
|
4904
|
+
this.subheader = '';
|
|
4905
|
+
this.acknowledgeLabel = 'Ok';
|
|
4906
|
+
this.acknowledge = new EventEmitter();
|
|
4907
|
+
this.cancelLabel = 'Cancel';
|
|
4908
|
+
this.cancel = new EventEmitter();
|
|
4782
4909
|
}
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4910
|
+
closeModal() {
|
|
4911
|
+
this.visible = false;
|
|
4912
|
+
if (this.visibleChange) {
|
|
4913
|
+
this.visibleChange.emit(false);
|
|
4786
4914
|
}
|
|
4787
4915
|
}
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4916
|
+
onCancel() {
|
|
4917
|
+
this.closeModal();
|
|
4918
|
+
if (this.cancel) {
|
|
4919
|
+
this.cancel.emit();
|
|
4791
4920
|
}
|
|
4792
4921
|
}
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
}
|
|
4798
|
-
onHourDown() {
|
|
4799
|
-
var _a;
|
|
4800
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setHours(this.date.getHours() - 1);
|
|
4801
|
-
this.onDateChange(false, false);
|
|
4802
|
-
}
|
|
4803
|
-
onMinuteUp() {
|
|
4804
|
-
var _a;
|
|
4805
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setMinutes(this.date.getMinutes() + 1);
|
|
4806
|
-
this.onDateChange(false, false);
|
|
4807
|
-
}
|
|
4808
|
-
onMinuteDown() {
|
|
4809
|
-
var _a;
|
|
4810
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setMinutes(this.date.getMinutes() - 1);
|
|
4811
|
-
this.onDateChange(false, false);
|
|
4812
|
-
}
|
|
4813
|
-
onSecondUp() {
|
|
4814
|
-
var _a;
|
|
4815
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setSeconds(this.date.getSeconds() + 1);
|
|
4816
|
-
this.onDateChange(false, false);
|
|
4817
|
-
}
|
|
4818
|
-
onSecondDown() {
|
|
4819
|
-
var _a;
|
|
4820
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setSeconds(this.date.getSeconds() - 1);
|
|
4821
|
-
this.onDateChange(false, false);
|
|
4822
|
-
}
|
|
4823
|
-
onHourChange(event) {
|
|
4824
|
-
var _a;
|
|
4825
|
-
const max = +event.target.max;
|
|
4826
|
-
const min = +event.target.min;
|
|
4827
|
-
const hour = +event.target.value;
|
|
4828
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setHours(hour > max ? max : hour < min ? min : hour);
|
|
4829
|
-
}
|
|
4830
|
-
onMinuteChange(event) {
|
|
4831
|
-
var _a;
|
|
4832
|
-
const max = +event.target.max;
|
|
4833
|
-
const min = +event.target.min;
|
|
4834
|
-
const minute = +event.target.value;
|
|
4835
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setMinutes(minute > max ? max : minute < min ? min : minute);
|
|
4836
|
-
}
|
|
4837
|
-
onSecondChange(event) {
|
|
4838
|
-
var _a;
|
|
4839
|
-
const max = +event.target.max;
|
|
4840
|
-
const min = +event.target.min;
|
|
4841
|
-
const seconds = +event.target.value;
|
|
4842
|
-
(_a = this.date) === null || _a === void 0 ? void 0 : _a.setSeconds(seconds > max ? max : seconds < min ? min : seconds);
|
|
4922
|
+
onAcknowledge() {
|
|
4923
|
+
if (this.acknowledge) {
|
|
4924
|
+
this.acknowledge.emit();
|
|
4925
|
+
}
|
|
4843
4926
|
}
|
|
4844
|
-
|
|
4845
|
-
if (this.
|
|
4846
|
-
this.
|
|
4847
|
-
this.dateChange.emit({ date: !reset ? new Date(this.date) : null, close });
|
|
4927
|
+
onClickOutside() {
|
|
4928
|
+
if (this.closeOnBackdrop) {
|
|
4929
|
+
this.onCancel();
|
|
4848
4930
|
}
|
|
4849
4931
|
}
|
|
4932
|
+
onClickInside(event) {
|
|
4933
|
+
event.stopPropagation();
|
|
4934
|
+
}
|
|
4850
4935
|
}
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type:
|
|
4854
|
-
type: Component,
|
|
4855
|
-
args: [{ selector: 'fng-
|
|
4856
|
-
}], propDecorators: {
|
|
4936
|
+
CustomModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CustomModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4937
|
+
CustomModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CustomModalComponent, selector: "fng-custom-modal", inputs: { closeOnBackdrop: "closeOnBackdrop", large: "large", visible: "visible", header: "header", subheader: "subheader", acknowledgeLabel: "acknowledgeLabel", cancelLabel: "cancelLabel" }, outputs: { visibleChange: "visibleChange", acknowledge: "acknowledge", cancel: "cancel" }, ngImport: i0, template: "<div class=\"fwe-modal-backdrop\" *ngIf=\"visible\" (mousedown)=\"onClickOutside()\">\n <div class=\"fwe-modal\" [class.fwe-modal--large]=\"large\" (mousedown)=\"onClickInside($event)\">\n <div class=\"fwe-modal-close\">\n <button class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onCancel()\">\n <i class=\"fwe-icon fwe-icon-2x fwe-icon-close-small\"></i>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 class=\"fwe-modal-h2\" *ngIf=\"subheader?.length\">{{ subheader }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ header }}</h1>\n </div>\n <div class=\"fwe-modal-body\">\n <ng-content></ng-content>\n </div>\n <div class=\"fwe-modal-footer\">\n <div class=\"fwe-modal-buttons\">\n <fng-button [large]=\"true\" (click)=\"onCancel()\">{{ cancelLabel }}</fng-button>\n <fng-button [large]=\"true\" (click)=\"onAcknowledge()\" [primary]=\"true\">{{ acknowledgeLabel }}</fng-button>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: ButtonComponent, selector: "fng-button", inputs: ["text", "icon", "disabled", "primary", "iconOnly", "large"], outputs: ["fngClick"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
4938
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CustomModalComponent, decorators: [{
|
|
4939
|
+
type: Component,
|
|
4940
|
+
args: [{ selector: 'fng-custom-modal', template: "<div class=\"fwe-modal-backdrop\" *ngIf=\"visible\" (mousedown)=\"onClickOutside()\">\n <div class=\"fwe-modal\" [class.fwe-modal--large]=\"large\" (mousedown)=\"onClickInside($event)\">\n <div class=\"fwe-modal-close\">\n <button class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onCancel()\">\n <i class=\"fwe-icon fwe-icon-2x fwe-icon-close-small\"></i>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 class=\"fwe-modal-h2\" *ngIf=\"subheader?.length\">{{ subheader }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ header }}</h1>\n </div>\n <div class=\"fwe-modal-body\">\n <ng-content></ng-content>\n </div>\n <div class=\"fwe-modal-footer\">\n <div class=\"fwe-modal-buttons\">\n <fng-button [large]=\"true\" (click)=\"onCancel()\">{{ cancelLabel }}</fng-button>\n <fng-button [large]=\"true\" (click)=\"onAcknowledge()\" [primary]=\"true\">{{ acknowledgeLabel }}</fng-button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
4941
|
+
}], propDecorators: { closeOnBackdrop: [{
|
|
4857
4942
|
type: Input
|
|
4858
|
-
}],
|
|
4943
|
+
}], large: [{
|
|
4859
4944
|
type: Input
|
|
4860
|
-
}],
|
|
4945
|
+
}], visible: [{
|
|
4861
4946
|
type: Input
|
|
4862
|
-
}],
|
|
4947
|
+
}], visibleChange: [{
|
|
4948
|
+
type: Output
|
|
4949
|
+
}], header: [{
|
|
4950
|
+
type: Input
|
|
4951
|
+
}], subheader: [{
|
|
4952
|
+
type: Input
|
|
4953
|
+
}], acknowledgeLabel: [{
|
|
4954
|
+
type: Input
|
|
4955
|
+
}], acknowledge: [{
|
|
4956
|
+
type: Output
|
|
4957
|
+
}], cancelLabel: [{
|
|
4958
|
+
type: Input
|
|
4959
|
+
}], cancel: [{
|
|
4863
4960
|
type: Output
|
|
4864
|
-
}], hoursInput: [{
|
|
4865
|
-
type: ViewChild,
|
|
4866
|
-
args: ['hoursInput']
|
|
4867
|
-
}], hide: [{
|
|
4868
|
-
type: HostListener,
|
|
4869
|
-
args: ['document:keydown', ['$event']]
|
|
4870
4961
|
}] } });
|
|
4871
4962
|
|
|
4872
|
-
class
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
|
|
4878
|
-
|
|
4963
|
+
class FestoAngularModalsModule {
|
|
4964
|
+
}
|
|
4965
|
+
FestoAngularModalsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularModalsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4966
|
+
FestoAngularModalsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularModalsModule, declarations: [AlertComponent, ConfirmComponent, PromptComponent, CustomModalComponent], imports: [CommonModule, RouterModule, OverlayModule, FestoAngularFormsModule, FestoAngularComponentsModule], exports: [AlertComponent, ConfirmComponent, PromptComponent, CustomModalComponent] });
|
|
4967
|
+
FestoAngularModalsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularModalsModule, providers: [], imports: [[CommonModule, RouterModule, OverlayModule, FestoAngularFormsModule, FestoAngularComponentsModule]] });
|
|
4968
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularModalsModule, decorators: [{
|
|
4969
|
+
type: NgModule,
|
|
4970
|
+
args: [{
|
|
4971
|
+
declarations: [AlertComponent, ConfirmComponent, PromptComponent, CustomModalComponent],
|
|
4972
|
+
imports: [CommonModule, RouterModule, OverlayModule, FestoAngularFormsModule, FestoAngularComponentsModule],
|
|
4973
|
+
exports: [AlertComponent, ConfirmComponent, PromptComponent, CustomModalComponent],
|
|
4974
|
+
providers: []
|
|
4975
|
+
}]
|
|
4976
|
+
}] });
|
|
4977
|
+
|
|
4978
|
+
class SnackbarComponent {
|
|
4979
|
+
constructor() {
|
|
4980
|
+
this.close = new EventEmitter();
|
|
4981
|
+
this.action = new EventEmitter();
|
|
4982
|
+
this.blockDisplay = 'block';
|
|
4983
|
+
this.animationState = 'init';
|
|
4879
4984
|
}
|
|
4880
|
-
|
|
4881
|
-
|
|
4985
|
+
ngAfterViewInit() {
|
|
4986
|
+
if (this.data && this.data.disappearAfter) {
|
|
4987
|
+
this.timeout = setTimeout(() => this.onClose(), this.data.disappearAfter);
|
|
4988
|
+
}
|
|
4882
4989
|
}
|
|
4883
|
-
|
|
4884
|
-
if (
|
|
4885
|
-
this.
|
|
4886
|
-
if (this.onChange != null) {
|
|
4887
|
-
this.onChange(date);
|
|
4888
|
-
}
|
|
4889
|
-
if (this.onTouched != null) {
|
|
4890
|
-
this.onTouched();
|
|
4891
|
-
}
|
|
4990
|
+
ngOnDestroy() {
|
|
4991
|
+
if (this.timeout) {
|
|
4992
|
+
clearTimeout(this.timeout);
|
|
4892
4993
|
}
|
|
4893
4994
|
}
|
|
4894
|
-
|
|
4895
|
-
|
|
4995
|
+
onAction() {
|
|
4996
|
+
this.action.emit();
|
|
4896
4997
|
}
|
|
4897
|
-
|
|
4898
|
-
this.
|
|
4998
|
+
onClose() {
|
|
4999
|
+
this.close.emit();
|
|
4899
5000
|
}
|
|
4900
|
-
|
|
4901
|
-
|
|
5001
|
+
}
|
|
5002
|
+
SnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5003
|
+
SnackbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SnackbarComponent, selector: "fng-snackbar", inputs: { data: "data" }, outputs: { close: "close", action: "action" }, host: { properties: { "style.display": "this.blockDisplay", "@appearDisappear": "this.animationState" } }, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'fwe-snackbar': true,\n 'fwe-snackbar-b': data?.variant === 'b',\n 'fwe-snackbar-c': data?.variant === 'c',\n 'fwe-snackbar-warning': data?.type === 'warning',\n 'fwe-snackbar-error': data?.type === 'error',\n 'fwe-snackbar-shadow': data?.darkBackground\n }\"\n>\n <i\n *ngIf=\"data?.type\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-info': data?.type === 'info',\n 'fwe-icon-status-warning': data?.type === 'warning',\n 'fwe-icon-status-failure': data?.type === 'error'\n }\"\n ></i>\n <span>{{ data?.text }}</span>\n <button *ngIf=\"data?.action\" aria-label=\"UserAction\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onAction()\">\n {{ data?.action }}\n </button>\n <button *ngIf=\"data?.showClose\" aria-label=\"Close\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n</div>\n", styles: [".fwe-snackbar{pointer-events:all}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
5004
|
+
trigger('appearDisappear', [
|
|
5005
|
+
state('init', style({ opacity: 0 })),
|
|
5006
|
+
state('first', style({
|
|
5007
|
+
opacity: 1,
|
|
5008
|
+
transform: 'translateY(0)'
|
|
5009
|
+
})),
|
|
5010
|
+
state('fadeIn', style({ opacity: '1' })),
|
|
5011
|
+
transition('void => fadeIn', [style({ opacity: 0 }), animate('0.6s ease-out')]),
|
|
5012
|
+
transition('void => first', [style({ transform: 'translateY(100px)' }), animate('0.6s ease-out')]),
|
|
5013
|
+
transition(':leave', sequence([
|
|
5014
|
+
style({ 'margin-bottom': '24px' }),
|
|
5015
|
+
animate('0.3s ease-out', style({ opacity: 0 })),
|
|
5016
|
+
animate('0.3s ease-out', style({ height: '0px', 'margin-bottom': '0px' }))
|
|
5017
|
+
]))
|
|
5018
|
+
])
|
|
5019
|
+
], encapsulation: i0.ViewEncapsulation.None });
|
|
5020
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarComponent, decorators: [{
|
|
5021
|
+
type: Component,
|
|
5022
|
+
args: [{ selector: 'fng-snackbar', encapsulation: ViewEncapsulation.None, animations: [
|
|
5023
|
+
trigger('appearDisappear', [
|
|
5024
|
+
state('init', style({ opacity: 0 })),
|
|
5025
|
+
state('first', style({
|
|
5026
|
+
opacity: 1,
|
|
5027
|
+
transform: 'translateY(0)'
|
|
5028
|
+
})),
|
|
5029
|
+
state('fadeIn', style({ opacity: '1' })),
|
|
5030
|
+
transition('void => fadeIn', [style({ opacity: 0 }), animate('0.6s ease-out')]),
|
|
5031
|
+
transition('void => first', [style({ transform: 'translateY(100px)' }), animate('0.6s ease-out')]),
|
|
5032
|
+
transition(':leave', sequence([
|
|
5033
|
+
style({ 'margin-bottom': '24px' }),
|
|
5034
|
+
animate('0.3s ease-out', style({ opacity: 0 })),
|
|
5035
|
+
animate('0.3s ease-out', style({ height: '0px', 'margin-bottom': '0px' }))
|
|
5036
|
+
]))
|
|
5037
|
+
])
|
|
5038
|
+
], template: "<div\n [ngClass]=\"{\n 'fwe-snackbar': true,\n 'fwe-snackbar-b': data?.variant === 'b',\n 'fwe-snackbar-c': data?.variant === 'c',\n 'fwe-snackbar-warning': data?.type === 'warning',\n 'fwe-snackbar-error': data?.type === 'error',\n 'fwe-snackbar-shadow': data?.darkBackground\n }\"\n>\n <i\n *ngIf=\"data?.type\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-info': data?.type === 'info',\n 'fwe-icon-status-warning': data?.type === 'warning',\n 'fwe-icon-status-failure': data?.type === 'error'\n }\"\n ></i>\n <span>{{ data?.text }}</span>\n <button *ngIf=\"data?.action\" aria-label=\"UserAction\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onAction()\">\n {{ data?.action }}\n </button>\n <button *ngIf=\"data?.showClose\" aria-label=\"Close\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n</div>\n", styles: [".fwe-snackbar{pointer-events:all}\n"] }]
|
|
5039
|
+
}], propDecorators: { data: [{
|
|
5040
|
+
type: Input
|
|
5041
|
+
}], close: [{
|
|
5042
|
+
type: Output
|
|
5043
|
+
}], action: [{
|
|
5044
|
+
type: Output
|
|
5045
|
+
}], blockDisplay: [{
|
|
5046
|
+
type: HostBinding,
|
|
5047
|
+
args: ['style.display']
|
|
5048
|
+
}], animationState: [{
|
|
5049
|
+
type: HostBinding,
|
|
5050
|
+
args: ['@appearDisappear']
|
|
5051
|
+
}] } });
|
|
5052
|
+
|
|
5053
|
+
class SnackbarService {
|
|
5054
|
+
constructor() {
|
|
5055
|
+
this.snacks = new Subject();
|
|
5056
|
+
this.snacks$ = this.snacks.asObservable();
|
|
4902
5057
|
}
|
|
4903
|
-
|
|
4904
|
-
|
|
5058
|
+
snack(data, actionCallback, closeCallback) {
|
|
5059
|
+
return new Promise(resolve => {
|
|
5060
|
+
this.snacks.next({ data, actionCallback, closeCallback, resolve });
|
|
5061
|
+
});
|
|
4905
5062
|
}
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
5063
|
+
}
|
|
5064
|
+
SnackbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5065
|
+
SnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarService, providedIn: 'root' });
|
|
5066
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarService, decorators: [{
|
|
5067
|
+
type: Injectable,
|
|
5068
|
+
args: [{
|
|
5069
|
+
providedIn: 'root'
|
|
5070
|
+
}]
|
|
5071
|
+
}], ctorParameters: function () { return []; } });
|
|
5072
|
+
|
|
5073
|
+
class SnackbarContainerDirective {
|
|
5074
|
+
constructor(viewContainerRef, componentFactoryResolver, snackbarService) {
|
|
5075
|
+
this.viewContainerRef = viewContainerRef;
|
|
5076
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
5077
|
+
this.snackbarService = snackbarService;
|
|
5078
|
+
this.snacks = [];
|
|
5079
|
+
this.factory = this.componentFactoryResolver.resolveComponentFactory(SnackbarComponent);
|
|
5080
|
+
}
|
|
5081
|
+
ngOnInit() {
|
|
5082
|
+
this.snacksSub = this.snackbarService.snacks$.subscribe(SnackDescription => this.push(SnackDescription));
|
|
5083
|
+
}
|
|
5084
|
+
ngOnDestroy() {
|
|
5085
|
+
if (this.snacks != null && this.snacks.length > 0) {
|
|
5086
|
+
this.snacks.forEach(snack => {
|
|
5087
|
+
snack.complete.next(true);
|
|
5088
|
+
snack.complete.complete();
|
|
5089
|
+
snack.complete.unsubscribe();
|
|
5090
|
+
});
|
|
5091
|
+
}
|
|
5092
|
+
if (this.snacksSub != null) {
|
|
5093
|
+
this.snacksSub.unsubscribe();
|
|
5094
|
+
}
|
|
5095
|
+
}
|
|
5096
|
+
push(snackDescription) {
|
|
5097
|
+
const complete = new Subject();
|
|
5098
|
+
const componentRef = this.viewContainerRef.createComponent(this.factory, 0);
|
|
5099
|
+
const componentInstance = componentRef.instance;
|
|
5100
|
+
componentInstance.data = Object.assign(Object.assign({}, this.fngSnackbarContainer), snackDescription.data);
|
|
5101
|
+
componentInstance.animationState = this.snacks.length === 0 ? 'first' : 'fadeIn';
|
|
5102
|
+
const snackbarRef = { componentRef, complete };
|
|
5103
|
+
componentInstance.close.pipe(takeUntil(complete)).subscribe(() => {
|
|
5104
|
+
this.remove(snackbarRef);
|
|
5105
|
+
if (snackDescription.closeCallback) {
|
|
5106
|
+
snackDescription.closeCallback();
|
|
4911
5107
|
}
|
|
4912
|
-
|
|
4913
|
-
|
|
5108
|
+
});
|
|
5109
|
+
componentInstance.action.pipe(takeUntil(complete)).subscribe(() => {
|
|
5110
|
+
if (componentInstance.data.closeOnAction) {
|
|
5111
|
+
this.remove(snackbarRef);
|
|
4914
5112
|
}
|
|
4915
|
-
|
|
4916
|
-
|
|
5113
|
+
if (snackDescription.actionCallback) {
|
|
5114
|
+
snackDescription.actionCallback();
|
|
5115
|
+
}
|
|
5116
|
+
});
|
|
5117
|
+
this.snacks.push(snackbarRef);
|
|
5118
|
+
snackDescription.resolve(snackbarRef.componentRef);
|
|
4917
5119
|
}
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
5120
|
+
remove(snackbarRef) {
|
|
5121
|
+
const index = this.snacks.indexOf(snackbarRef);
|
|
5122
|
+
if (index !== -1) {
|
|
5123
|
+
const deletedSnackbarRef = this.snacks.splice(index, 1);
|
|
5124
|
+
if (deletedSnackbarRef != null && deletedSnackbarRef.length > 0) {
|
|
5125
|
+
const deletedSnackbar = deletedSnackbarRef[0];
|
|
5126
|
+
if (deletedSnackbar.complete != null) {
|
|
5127
|
+
deletedSnackbar.complete.next(true);
|
|
5128
|
+
deletedSnackbar.complete.complete();
|
|
5129
|
+
deletedSnackbar.complete.unsubscribe();
|
|
5130
|
+
}
|
|
5131
|
+
if (deletedSnackbar.componentRef != null) {
|
|
5132
|
+
deletedSnackbar.componentRef.destroy();
|
|
5133
|
+
}
|
|
5134
|
+
}
|
|
4921
5135
|
}
|
|
4922
5136
|
}
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
width: `${labelWidth}px`,
|
|
4943
|
-
panelClass: 'fng-first-child-fullwidth',
|
|
4944
|
-
hasBackdrop: true,
|
|
4945
|
-
backdropClass: 'fng-date-picker-backdrop',
|
|
4946
|
-
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
4947
|
-
positionStrategy: this.overlay
|
|
4948
|
-
.position()
|
|
4949
|
-
.flexibleConnectedTo(this.connector.nativeElement)
|
|
4950
|
-
.withPositions([
|
|
4951
|
-
{
|
|
4952
|
-
originX: 'center',
|
|
4953
|
-
originY: 'bottom',
|
|
4954
|
-
overlayX: 'center',
|
|
4955
|
-
overlayY: 'top',
|
|
4956
|
-
offsetY: -12
|
|
4957
|
-
},
|
|
4958
|
-
{
|
|
4959
|
-
originX: 'center',
|
|
4960
|
-
originY: 'top',
|
|
4961
|
-
overlayX: 'center',
|
|
4962
|
-
overlayY: 'bottom',
|
|
4963
|
-
offsetY: 4
|
|
4964
|
-
}
|
|
4965
|
-
])
|
|
4966
|
-
.withFlexibleDimensions(false)
|
|
4967
|
-
.withPush(false)
|
|
4968
|
-
});
|
|
4969
|
-
const timePickerPortal = new ComponentPortal(TimePickerDropdownComponent);
|
|
4970
|
-
this.timePicker = this.timePickerRef.attach(timePickerPortal);
|
|
4971
|
-
this.timePicker.instance.timeFormat = this.options != null && this.options.timeFormat != null ? this.options.timeFormat : '24';
|
|
4972
|
-
this.timePicker.instance.showSeconds = this.options != null && this.options.showSeconds != null ? this.options.showSeconds : false;
|
|
4973
|
-
this.timePicker.instance.date = new Date(this.value);
|
|
4974
|
-
this.timePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe(ev => {
|
|
4975
|
-
if (ev.date != null) {
|
|
4976
|
-
this.value = ev.date;
|
|
4977
|
-
}
|
|
4978
|
-
if (ev.close) {
|
|
4979
|
-
this.dispose();
|
|
4980
|
-
}
|
|
4981
|
-
});
|
|
4982
|
-
this.timePickerRef
|
|
4983
|
-
.backdropClick()
|
|
4984
|
-
.pipe(takeUntil(this.complete))
|
|
4985
|
-
.subscribe(() => this.dispose());
|
|
4986
|
-
}
|
|
4987
|
-
else {
|
|
4988
|
-
this.dispose();
|
|
4989
|
-
}
|
|
4990
|
-
}
|
|
4991
|
-
}
|
|
4992
|
-
dispose() {
|
|
4993
|
-
if (this.timePickerRef != null) {
|
|
4994
|
-
this.timePickerRef.detach();
|
|
4995
|
-
this.timePickerRef.dispose();
|
|
4996
|
-
this.timePickerRef = null;
|
|
4997
|
-
}
|
|
4998
|
-
if (this.complete != null) {
|
|
4999
|
-
this.complete.next(true);
|
|
5000
|
-
this.complete.complete();
|
|
5001
|
-
}
|
|
5002
|
-
}
|
|
5003
|
-
}
|
|
5004
|
-
TimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePickerComponent, deps: [{ token: i1$2.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
5005
|
-
TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TimePickerComponent, selector: "fng-time-picker", inputs: { value: "value", disabled: "disabled", required: "required", hint: "hint", error: "error", options: "options", width: "width" }, host: { listeners: { "document:keydown": "hide($event)" }, properties: { "style.width": "this.width", "style.display": "this.display" } }, providers: [
|
|
5006
|
-
{
|
|
5007
|
-
provide: NG_VALUE_ACCESSOR,
|
|
5008
|
-
useExisting: forwardRef(() => TimePickerComponent),
|
|
5009
|
-
multi: true
|
|
5010
|
-
}
|
|
5011
|
-
], viewQueries: [{ propertyName: "connector", first: true, predicate: ["connector"], descendants: true, static: true }], ngImport: i0, template: "<label #connector class=\"fng-time-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i class=\"fwe-icon fwe-icon-time-time\" [class.fwe-color-hero]=\"timePickerRef != null\" [class.fwe-color-control-disabled]=\"disabled\"></i>\n <input\n aria-label=\"picked time\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"timePickerRef != null\"\n [value]=\"value | date: timeFormat\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n", styles: [".fng-first-child-fullwidth fng-time-picker-dropdown{width:100%}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "date": i1.DatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
5012
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
5013
|
-
type: Component,
|
|
5014
|
-
args: [{ selector: 'fng-time-picker', providers: [
|
|
5015
|
-
{
|
|
5016
|
-
provide: NG_VALUE_ACCESSOR,
|
|
5017
|
-
useExisting: forwardRef(() => TimePickerComponent),
|
|
5018
|
-
multi: true
|
|
5019
|
-
}
|
|
5020
|
-
], encapsulation: ViewEncapsulation.None, template: "<label #connector class=\"fng-time-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i class=\"fwe-icon fwe-icon-time-time\" [class.fwe-color-hero]=\"timePickerRef != null\" [class.fwe-color-control-disabled]=\"disabled\"></i>\n <input\n aria-label=\"picked time\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"timePickerRef != null\"\n [value]=\"value | date: timeFormat\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n", styles: [".fng-first-child-fullwidth fng-time-picker-dropdown{width:100%}\n"] }]
|
|
5021
|
-
}], ctorParameters: function () { return [{ type: i1$2.Overlay }]; }, propDecorators: { value: [{
|
|
5022
|
-
type: Input
|
|
5023
|
-
}], disabled: [{
|
|
5024
|
-
type: Input
|
|
5025
|
-
}], required: [{
|
|
5026
|
-
type: Input
|
|
5027
|
-
}], hint: [{
|
|
5028
|
-
type: Input
|
|
5029
|
-
}], error: [{
|
|
5030
|
-
type: Input
|
|
5031
|
-
}], options: [{
|
|
5032
|
-
type: Input
|
|
5033
|
-
}], width: [{
|
|
5034
|
-
type: Input
|
|
5035
|
-
}, {
|
|
5036
|
-
type: HostBinding,
|
|
5037
|
-
args: ['style.width']
|
|
5038
|
-
}], display: [{
|
|
5039
|
-
type: HostBinding,
|
|
5040
|
-
args: ['style.display']
|
|
5041
|
-
}], connector: [{
|
|
5042
|
-
type: ViewChild,
|
|
5043
|
-
args: ['connector', { static: true }]
|
|
5044
|
-
}], hide: [{
|
|
5045
|
-
type: HostListener,
|
|
5046
|
-
args: ['document:keydown', ['$event']]
|
|
5047
|
-
}] } });
|
|
5048
|
-
|
|
5049
|
-
class TextEditorComponent extends ValueAccessorBaseDirective {
|
|
5050
|
-
constructor(elementRef, renderer, domSanitizer) {
|
|
5051
|
-
super();
|
|
5052
|
-
this.elementRef = elementRef;
|
|
5053
|
-
this.renderer = renderer;
|
|
5054
|
-
this.domSanitizer = domSanitizer;
|
|
5055
|
-
this.defaultConfig = {
|
|
5056
|
-
toolbar: {
|
|
5057
|
-
bold: true,
|
|
5058
|
-
italic: true,
|
|
5059
|
-
underline: true,
|
|
5060
|
-
alignCenter: true,
|
|
5061
|
-
alignRight: true,
|
|
5062
|
-
bulletList: true,
|
|
5063
|
-
orderedList: true,
|
|
5064
|
-
image: true,
|
|
5065
|
-
link: true
|
|
5066
|
-
}
|
|
5067
|
-
};
|
|
5068
|
-
this.fngChange = new EventEmitter();
|
|
5069
|
-
this.change = new EventEmitter();
|
|
5070
|
-
this.config = this.defaultConfig;
|
|
5071
|
-
// needed to access editor content
|
|
5072
|
-
this.valueGetter = (editorElement) => {
|
|
5073
|
-
let html = editorElement.querySelector('.ql-editor').innerHTML;
|
|
5074
|
-
if (html === '<p><br></p>' || html === '<div><br></div>') {
|
|
5075
|
-
html = null;
|
|
5076
|
-
}
|
|
5077
|
-
return html;
|
|
5078
|
-
};
|
|
5079
|
-
// needed to access editor content
|
|
5080
|
-
this.valueSetter = (quillEditor, value) => {
|
|
5081
|
-
value = this.domSanitizer.sanitize(SecurityContext.HTML, value);
|
|
5082
|
-
value = this.handleWhitespace(value);
|
|
5083
|
-
return quillEditor.clipboard.convert(value);
|
|
5084
|
-
};
|
|
5085
|
-
}
|
|
5086
|
-
set value(value) {
|
|
5087
|
-
if (this.innerValue !== value) {
|
|
5088
|
-
this.innerValue = value;
|
|
5089
|
-
this.changed.forEach(f => {
|
|
5090
|
-
this.fngChange.emit(this.innerValue);
|
|
5091
|
-
this.change.emit(this.innerValue);
|
|
5092
|
-
return f(value);
|
|
5093
|
-
});
|
|
5094
|
-
}
|
|
5095
|
-
}
|
|
5096
|
-
get value() {
|
|
5097
|
-
return this.innerValue;
|
|
5098
|
-
}
|
|
5099
|
-
ngOnInit() {
|
|
5100
|
-
this.id = (Math.random() * Date.now()).toString().replace('.', '-');
|
|
5101
|
-
}
|
|
5102
|
-
ngAfterViewInit() {
|
|
5103
|
-
this.editorElem = this.elementRef.nativeElement.querySelector(`#editor-${this.id}`);
|
|
5104
|
-
this.quillEditor = new QuillType(this.editorElem, {
|
|
5105
|
-
modules: Object.assign({ toolbar: `#editor-toolbar-${this.id}` }, this.modules),
|
|
5106
|
-
theme: 'snow',
|
|
5107
|
-
scrollingContainer: `#editor-container-${this.id}`
|
|
5108
|
-
});
|
|
5109
|
-
this.setEditorLabel();
|
|
5110
|
-
this.addWhitespaceMatcher();
|
|
5111
|
-
this.addImageMatcher();
|
|
5112
|
-
if (this.innerValue) {
|
|
5113
|
-
const content = this.valueSetter(this.quillEditor, this.innerValue);
|
|
5114
|
-
this.quillEditor.setContents(content, 'silent');
|
|
5115
|
-
this.quillEditor.getModule('history').clear();
|
|
5116
|
-
}
|
|
5117
|
-
this.handle();
|
|
5118
|
-
this.quillEditor.on('text-change', () => {
|
|
5119
|
-
this.value = this.valueGetter(this.editorElem);
|
|
5120
|
-
});
|
|
5121
|
-
}
|
|
5122
|
-
ngOnChanges(changes) {
|
|
5123
|
-
var _a, _b;
|
|
5124
|
-
if (((_a = changes === null || changes === void 0 ? void 0 : changes.config) === null || _a === void 0 ? void 0 : _a.currentValue) != null) {
|
|
5125
|
-
this.config = { toolbar: Object.assign(Object.assign({}, this.defaultConfig.toolbar), (_b = changes.config.currentValue) === null || _b === void 0 ? void 0 : _b.toolbar) };
|
|
5126
|
-
}
|
|
5127
|
-
if (!this.quillEditor) {
|
|
5128
|
-
return;
|
|
5129
|
-
}
|
|
5130
|
-
this.handle();
|
|
5131
|
-
}
|
|
5132
|
-
writeValue(value) {
|
|
5133
|
-
if (value === null || value === '') {
|
|
5134
|
-
return;
|
|
5135
|
-
}
|
|
5136
|
-
this.innerValue = value;
|
|
5137
|
-
if (!this.quillEditor) {
|
|
5138
|
-
return;
|
|
5139
|
-
}
|
|
5140
|
-
const content = this.valueSetter(this.quillEditor, value);
|
|
5141
|
-
this.quillEditor.setContents(content);
|
|
5142
|
-
}
|
|
5143
|
-
setDisabledState(isDisabled = this.disabled) {
|
|
5144
|
-
this.disabled = isDisabled;
|
|
5145
|
-
if (this.quillEditor) {
|
|
5146
|
-
if (isDisabled) {
|
|
5147
|
-
this.quillEditor.disable();
|
|
5148
|
-
this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', 'disabled');
|
|
5149
|
-
}
|
|
5150
|
-
else {
|
|
5151
|
-
if (!this.readOnly) {
|
|
5152
|
-
this.quillEditor.enable();
|
|
5153
|
-
}
|
|
5154
|
-
this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');
|
|
5155
|
-
}
|
|
5156
|
-
}
|
|
5157
|
-
}
|
|
5158
|
-
setReadOnlyState() {
|
|
5159
|
-
this.quillEditor.enable(!this.readOnly);
|
|
5160
|
-
}
|
|
5161
|
-
delegate(event, action) {
|
|
5162
|
-
let btn = null;
|
|
5163
|
-
switch (action) {
|
|
5164
|
-
case 'bold':
|
|
5165
|
-
btn = this.btnBold.nativeElement;
|
|
5166
|
-
btn.click();
|
|
5167
|
-
break;
|
|
5168
|
-
case 'italic':
|
|
5169
|
-
btn = this.btnItalic.nativeElement;
|
|
5170
|
-
btn.click();
|
|
5171
|
-
break;
|
|
5172
|
-
case 'underline':
|
|
5173
|
-
btn = this.btnUnderline.nativeElement;
|
|
5174
|
-
btn.click();
|
|
5175
|
-
break;
|
|
5176
|
-
case 'align-center':
|
|
5177
|
-
btn = this.btnAlignCenter.nativeElement;
|
|
5178
|
-
btn.click();
|
|
5179
|
-
break;
|
|
5180
|
-
case 'align-right':
|
|
5181
|
-
btn = this.btnAlignRight.nativeElement;
|
|
5182
|
-
btn.click();
|
|
5183
|
-
break;
|
|
5184
|
-
case 'link':
|
|
5185
|
-
btn = this.btnLink.nativeElement;
|
|
5186
|
-
btn.click();
|
|
5187
|
-
break;
|
|
5188
|
-
case 'ul':
|
|
5189
|
-
btn = this.btnUl.nativeElement;
|
|
5190
|
-
btn.click();
|
|
5191
|
-
break;
|
|
5192
|
-
case 'ol':
|
|
5193
|
-
btn = this.btnOl.nativeElement;
|
|
5194
|
-
btn.click();
|
|
5195
|
-
break;
|
|
5196
|
-
case 'image':
|
|
5197
|
-
btn = this.btnImage.nativeElement;
|
|
5198
|
-
btn.click();
|
|
5199
|
-
break;
|
|
5200
|
-
default:
|
|
5201
|
-
break;
|
|
5202
|
-
}
|
|
5203
|
-
}
|
|
5204
|
-
currentLength() {
|
|
5205
|
-
var _a;
|
|
5206
|
-
return (_a = this.value) === null || _a === void 0 ? void 0 : _a.length;
|
|
5207
|
-
}
|
|
5208
|
-
hideDivider(name) {
|
|
5209
|
-
const linkOrImage = this.config.toolbar.image || this.config.toolbar.link;
|
|
5210
|
-
const lists = this.config.toolbar.bulletList || this.config.toolbar.orderedList;
|
|
5211
|
-
const typos = this.config.toolbar.bold || this.config.toolbar.italic || this.config.toolbar.underline;
|
|
5212
|
-
const textAlign = this.config.toolbar.alignCenter || this.config.toolbar.alignRight;
|
|
5213
|
-
switch (name) {
|
|
5214
|
-
case 'typo':
|
|
5215
|
-
return !typos || (!textAlign && !linkOrImage && !lists);
|
|
5216
|
-
case 'text-align':
|
|
5217
|
-
return !textAlign || (!linkOrImage && !lists);
|
|
5218
|
-
case 'lists':
|
|
5219
|
-
return !lists || !linkOrImage;
|
|
5220
|
-
case 'image':
|
|
5221
|
-
return !this.config.toolbar.image || !this.config.toolbar.link;
|
|
5222
|
-
default:
|
|
5223
|
-
break;
|
|
5224
|
-
}
|
|
5225
|
-
}
|
|
5226
|
-
setEditorLabel() {
|
|
5227
|
-
const editorDiv = this.elementRef.nativeElement.querySelector('.ql-editor');
|
|
5228
|
-
this.renderer.setAttribute(editorDiv, 'role', 'textbox');
|
|
5229
|
-
this.renderer.setAttribute(editorDiv, 'aria-labelledby', `editor-label-${this.id}`);
|
|
5230
|
-
this.renderer.setAttribute(editorDiv, 'aria-multiline', 'true');
|
|
5231
|
-
}
|
|
5232
|
-
handle() {
|
|
5233
|
-
this.setReadOnlyState();
|
|
5234
|
-
this.setDisabledState();
|
|
5235
|
-
}
|
|
5236
|
-
addWhitespaceMatcher() {
|
|
5237
|
-
// set up a matcher that replaces placeholder ###tab### with \t in delta again
|
|
5238
|
-
this.quillEditor.clipboard.addMatcher('p', (_node, delta) => {
|
|
5239
|
-
let str = JSON.stringify(delta);
|
|
5240
|
-
str = str.replace(/###tab###/g, '\\t');
|
|
5241
|
-
delta = JSON.parse(str);
|
|
5242
|
-
return delta;
|
|
5243
|
-
});
|
|
5244
|
-
}
|
|
5245
|
-
addImageMatcher() {
|
|
5246
|
-
// set up a matcher that does allow/disallow to paste images corresponding to config settings
|
|
5247
|
-
this.quillEditor.clipboard.addMatcher('img', (_node, delta) => {
|
|
5248
|
-
// allowed, passthru delta
|
|
5249
|
-
if (this.config.toolbar.image === true) {
|
|
5250
|
-
return delta;
|
|
5251
|
-
}
|
|
5252
|
-
// not allowed, remove image by setting up a new delta
|
|
5253
|
-
const Delta = QuillType.import('quill-delta');
|
|
5254
|
-
return new Delta().insert('');
|
|
5255
|
-
});
|
|
5256
|
-
}
|
|
5257
|
-
handleWhitespace(value) {
|
|
5258
|
-
// set a placeholder for tab entity to avoid that quill removes it
|
|
5259
|
-
return value.replace(/	/gi, '###tab###');
|
|
5137
|
+
}
|
|
5138
|
+
SnackbarContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: SnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5139
|
+
SnackbarContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: SnackbarContainerDirective, selector: "[fngSnackbarContainer]", inputs: { fngSnackbarContainer: "fngSnackbarContainer" }, ngImport: i0 });
|
|
5140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerDirective, decorators: [{
|
|
5141
|
+
type: Directive,
|
|
5142
|
+
args: [{
|
|
5143
|
+
selector: '[fngSnackbarContainer]'
|
|
5144
|
+
}]
|
|
5145
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: SnackbarService }]; }, propDecorators: { fngSnackbarContainer: [{
|
|
5146
|
+
type: Input
|
|
5147
|
+
}] } });
|
|
5148
|
+
|
|
5149
|
+
class SnackbarContainerComponent {
|
|
5150
|
+
constructor() {
|
|
5151
|
+
this.config = {
|
|
5152
|
+
darkBackground: true,
|
|
5153
|
+
disappearAfter: 5000,
|
|
5154
|
+
closeOnAction: true
|
|
5155
|
+
};
|
|
5260
5156
|
}
|
|
5261
5157
|
}
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
provide: NG_VALUE_ACCESSOR,
|
|
5266
|
-
useExisting: forwardRef(() => TextEditorComponent),
|
|
5267
|
-
multi: true
|
|
5268
|
-
}
|
|
5269
|
-
], viewQueries: [{ propertyName: "btnBold", first: true, predicate: ["btnBold"], descendants: true }, { propertyName: "btnItalic", first: true, predicate: ["btnItalic"], descendants: true }, { propertyName: "btnUnderline", first: true, predicate: ["btnUnderline"], descendants: true }, { propertyName: "btnAlignCenter", first: true, predicate: ["btnAlignCenter"], descendants: true }, { propertyName: "btnAlignRight", first: true, predicate: ["btnAlignRight"], descendants: true }, { propertyName: "btnLink", first: true, predicate: ["btnLink"], descendants: true }, { propertyName: "btnUl", first: true, predicate: ["btnUl"], descendants: true }, { propertyName: "btnOl", first: true, predicate: ["btnOl"], descendants: true }, { propertyName: "btnImage", first: true, predicate: ["btnImage"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"fwe-input-text\" [class.fwe-disabled]=\"disabled\">\n <div class=\"fng-editor-toolbar\" [id]=\"'editor-toolbar-' + id\">\n <span class=\"ql-formats fwe-d-none\">\n <select class=\"ql-size\" aria-hidden=\"true\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n <span class=\"ql-formats fng-editor-toolbar-buttons-container fwe-mr-3\">\n <ng-container *ngIf=\"config?.toolbar?.bold\">\n <button type=\"button\" #btnBold class=\"ql-bold fwe-d-none action-bold\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline || config?.toolbar?.italic\"\n (click)=\"delegate($event, 'bold')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-bold\">B</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.italic\">\n <button type=\"button\" #btnItalic class=\"ql-italic fwe-d-none action-italic\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline\"\n (click)=\"delegate($event, 'italic')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-italic\">I</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.underline\">\n <button type=\"button\" #btnUnderline class=\"ql-underline fwe-d-none action-underline\" aria-hidden=\"true\"></button>\n <button type=\"button\" class=\"fwe-btn fng-button\" (click)=\"delegate($event, 'underline')\" [disabled]=\"disabled\">\n <div class=\"fng-button-text fng-text-underline\">U</div>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('typo')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.alignCenter\">\n <button type=\"button\" #btnAlignCenter class=\"ql-align fwe-d-none action-align-center\" aria-hidden=\"true\" value=\"center\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.alignRight\"\n (click)=\"delegate($event, 'align-center')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-center fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"config?.toolbar?.alignRight\">\n <button type=\"button\" #btnAlignRight class=\"ql-align fwe-d-none action-align-right\" aria-hidden=\"true\" value=\"right\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n (click)=\"delegate($event, 'align-right')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-right fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('text-align')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.bulletList\">\n <button type=\"button\" #btnUl class=\"ql-list fwe-d-none action-ul\" aria-hidden=\"true\" value=\"bullet\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.orderedList\"\n (click)=\"delegate($event, 'ul')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-list-list-view fwe-pr-0\"></i>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.orderedList\">\n <button type=\"button\" #btnOl class=\"ql-list fwe-d-none action-ol\" aria-hidden=\"true\" value=\"ordered\"></button>\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'ol')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-enumeration fwe-pr-0\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('lists')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.image\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'image')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-image-image fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnImage class=\"ql-image fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('image')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.link\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'link')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-file-link fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnLink class=\"ql-link fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n </span>\n </div>\n <div class=\"fng-editor-container\" [id]=\"'editor-container-' + id\">\n <div class=\"fng-editor\" [id]=\"'editor-' + id\"></div>\n </div>\n <span class=\"fwe-input-text-label\" [id]=\"'editor-label-' + id\">{{ label }}</span>\n <span *ngIf=\"hint\" class=\"fng-text-editor-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fng-text-editor-invalid\">{{ error }}</span>\n <span *ngIf=\"maxLength > 0 && value != null\" class=\"fwe-input-text-count\">{{ currentLength() }} / {{ maxLength }}</span>\n</label>\n", styles: ["@charset \"UTF-8\";/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:\"\";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:\"\";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=\"\"]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:\"Sans Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:\"Small\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:\"Large\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:\"Visit URL:\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:\"Edit\";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:\"Remove\";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;content:\"Save\";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:\"Enter link:\"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:\"Enter formula:\"}.ql-snow .ql-tooltip[data-mode=video]:before{content:\"Enter video:\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}fng-text-editor .fng-divider-y{display:inline-flex;flex:0 0 1px;height:24px;width:1px;background-color:var(--fwe-gray-400)}fng-text-editor .fng-editor{min-height:100%}fng-text-editor .fng-editor-container{order:2;height:160px;min-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) var(--fwe-gray-100);padding-top:4px;padding-bottom:4px;padding-left:8px;border:var(--fwe-control-border) solid 1px}fng-text-editor .fng-editor-container::-webkit-scrollbar{width:12px}fng-text-editor .fng-editor-container::-webkit-scrollbar-track{background:transparent}fng-text-editor .fng-editor-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:6px}fng-text-editor .fng-editor-container:hover{border-color:var(--fwe-hero)}fng-text-editor .fng-editor-container[contenteditable=true]{outline:none}fng-text-editor .fng-editor-container[contenteditable=true]:focus{border-color:var(--fwe-hero)}fng-text-editor label.fwe-input-text{line-height:24px}fng-text-editor label.fwe-input-text .fwe-input-text-count{display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;right:0;bottom:0;z-index:1;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text .fwe-input-text-label{order:-1}fng-text-editor label.fwe-input-text .fng-text-editor-info{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;left:0;top:unset;bottom:0;z-index:2;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text.fwe-disabled{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fwe-input-text-label{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container:hover{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-divider-y{background-color:var(--fwe-text-disabled)}fng-text-editor .fng-text-editor-invalid{display:none;line-height:1.5;position:absolute;left:0;bottom:0;z-index:2;color:var(--fwe-red);font-size:var(--fwe-font-size-small)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor{box-shadow:none;outline:none}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info:after{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor-container{border-color:var(--fwe-red)}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-info{display:none!important}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-invalid{display:block!important}fng-text-editor .fng-text-bold{font-weight:var(--fwe-font-weight-bold)}fng-text-editor .fng-text-italic{font-style:italic}fng-text-editor .fng-text-underline{text-decoration:underline}fng-text-editor .fng-icon-text-align-center{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-center.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .ql-tooltip{z-index:var(--fwe-z-index-tooltip)}fng-text-editor .ql-editor{font-family:var(--fwe-font-family-sans-serif);font-size:var(--fwe-font-size-base);padding:0;min-height:72px;overflow-x:hidden}fng-text-editor .ql-editor p::selection,fng-text-editor .ql-editor strong::selection,fng-text-editor .ql-editor em::selection,fng-text-editor .ql-editor u::selection,fng-text-editor .ql-editor ul::selection,fng-text-editor .ql-editor ol::selection,fng-text-editor .ql-editor li::selection,fng-text-editor .ql-editor a::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow{border:0;background-color:var(--fwe-white)}fng-text-editor .ql-container.ql-snow .ql-tooltip{transform:translate(160px,12px);color:var(--fwe-black);box-shadow:-1px 1px 4px -1px #3333;border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input{border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow a{color:var(--fwe-caerul)}fng-text-editor .ql-toolbar.ql-snow{border:0;padding:4px 0}fng-text-editor .ql-toolbar.ql-snow .ql-formats.fng-editor-toolbar-buttons-container{display:flex;align-items:center;flex-wrap:wrap}fng-text-editor .ql-toolbar.ql-snow button{line-height:normal;box-sizing:border-box;display:inline-flex;text-align:center;padding:0 8px;height:32px;min-height:unset;color:var(--fwe-black);background:none;border-radius:4px;cursor:pointer;border:none;width:unset;max-width:24px;justify-content:center;align-items:center;float:unset}@media (hover: hover) and (pointer: fine){fng-text-editor .ql-toolbar.ql-snow button:hover{background-color:var(--fwe-control-dark);color:var(--fwe-black)}}fng-text-editor .ql-toolbar.ql-snow button:active{background-color:var(--fwe-control-darker)}fng-text-editor .ql-toolbar.ql-snow button.ql-active+button{background-color:var(--fwe-control)}fng-text-editor .ql-toolbar.ql-snow button.fng-btn-toolbar-list{padding:0 6px}fng-text-editor .ql-toolbar.ql-snow button.fng-button i{pointer-events:none}fng-text-editor .ql-toolbar.ql-snow button.fng-button div{pointer-events:none}fng-text-editor .ql-toolbar .fng-button-text{min-width:12px;line-height:16px}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar{pointer-events:none}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar button{color:var(--fwe-text-disabled)}\n"], directives: [{ type: i1$4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TextEditorComponent, decorators: [{
|
|
5158
|
+
SnackbarContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5159
|
+
SnackbarContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SnackbarContainerComponent, selector: "fng-snackbar-container", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"fwe-snackbar-container\">\n <div [fngSnackbarContainer]=\"config\"></div>\n</div>\n", styles: [".fwe-snackbar-container{pointer-events:none}\n"], directives: [{ type: SnackbarContainerDirective, selector: "[fngSnackbarContainer]", inputs: ["fngSnackbarContainer"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerComponent, decorators: [{
|
|
5271
5161
|
type: Component,
|
|
5272
|
-
args: [{ selector: 'fng-
|
|
5273
|
-
|
|
5274
|
-
provide: NG_VALUE_ACCESSOR,
|
|
5275
|
-
useExisting: forwardRef(() => TextEditorComponent),
|
|
5276
|
-
multi: true
|
|
5277
|
-
}
|
|
5278
|
-
], template: "<label class=\"fwe-input-text\" [class.fwe-disabled]=\"disabled\">\n <div class=\"fng-editor-toolbar\" [id]=\"'editor-toolbar-' + id\">\n <span class=\"ql-formats fwe-d-none\">\n <select class=\"ql-size\" aria-hidden=\"true\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n <span class=\"ql-formats fng-editor-toolbar-buttons-container fwe-mr-3\">\n <ng-container *ngIf=\"config?.toolbar?.bold\">\n <button type=\"button\" #btnBold class=\"ql-bold fwe-d-none action-bold\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline || config?.toolbar?.italic\"\n (click)=\"delegate($event, 'bold')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-bold\">B</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.italic\">\n <button type=\"button\" #btnItalic class=\"ql-italic fwe-d-none action-italic\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline\"\n (click)=\"delegate($event, 'italic')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-italic\">I</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.underline\">\n <button type=\"button\" #btnUnderline class=\"ql-underline fwe-d-none action-underline\" aria-hidden=\"true\"></button>\n <button type=\"button\" class=\"fwe-btn fng-button\" (click)=\"delegate($event, 'underline')\" [disabled]=\"disabled\">\n <div class=\"fng-button-text fng-text-underline\">U</div>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('typo')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.alignCenter\">\n <button type=\"button\" #btnAlignCenter class=\"ql-align fwe-d-none action-align-center\" aria-hidden=\"true\" value=\"center\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.alignRight\"\n (click)=\"delegate($event, 'align-center')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-center fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"config?.toolbar?.alignRight\">\n <button type=\"button\" #btnAlignRight class=\"ql-align fwe-d-none action-align-right\" aria-hidden=\"true\" value=\"right\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n (click)=\"delegate($event, 'align-right')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-right fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('text-align')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.bulletList\">\n <button type=\"button\" #btnUl class=\"ql-list fwe-d-none action-ul\" aria-hidden=\"true\" value=\"bullet\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.orderedList\"\n (click)=\"delegate($event, 'ul')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-list-list-view fwe-pr-0\"></i>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.orderedList\">\n <button type=\"button\" #btnOl class=\"ql-list fwe-d-none action-ol\" aria-hidden=\"true\" value=\"ordered\"></button>\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'ol')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-enumeration fwe-pr-0\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('lists')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.image\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'image')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-image-image fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnImage class=\"ql-image fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('image')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.link\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'link')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-file-link fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnLink class=\"ql-link fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n </span>\n </div>\n <div class=\"fng-editor-container\" [id]=\"'editor-container-' + id\">\n <div class=\"fng-editor\" [id]=\"'editor-' + id\"></div>\n </div>\n <span class=\"fwe-input-text-label\" [id]=\"'editor-label-' + id\">{{ label }}</span>\n <span *ngIf=\"hint\" class=\"fng-text-editor-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fng-text-editor-invalid\">{{ error }}</span>\n <span *ngIf=\"maxLength > 0 && value != null\" class=\"fwe-input-text-count\">{{ currentLength() }} / {{ maxLength }}</span>\n</label>\n", styles: ["@charset \"UTF-8\";/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:\"\";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:\"\";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=\"\"]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:\"Sans Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:\"Small\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:\"Large\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:\"Visit URL:\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:\"Edit\";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:\"Remove\";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;content:\"Save\";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:\"Enter link:\"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:\"Enter formula:\"}.ql-snow .ql-tooltip[data-mode=video]:before{content:\"Enter video:\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}fng-text-editor .fng-divider-y{display:inline-flex;flex:0 0 1px;height:24px;width:1px;background-color:var(--fwe-gray-400)}fng-text-editor .fng-editor{min-height:100%}fng-text-editor .fng-editor-container{order:2;height:160px;min-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) var(--fwe-gray-100);padding-top:4px;padding-bottom:4px;padding-left:8px;border:var(--fwe-control-border) solid 1px}fng-text-editor .fng-editor-container::-webkit-scrollbar{width:12px}fng-text-editor .fng-editor-container::-webkit-scrollbar-track{background:transparent}fng-text-editor .fng-editor-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:6px}fng-text-editor .fng-editor-container:hover{border-color:var(--fwe-hero)}fng-text-editor .fng-editor-container[contenteditable=true]{outline:none}fng-text-editor .fng-editor-container[contenteditable=true]:focus{border-color:var(--fwe-hero)}fng-text-editor label.fwe-input-text{line-height:24px}fng-text-editor label.fwe-input-text .fwe-input-text-count{display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;right:0;bottom:0;z-index:1;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text .fwe-input-text-label{order:-1}fng-text-editor label.fwe-input-text .fng-text-editor-info{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;left:0;top:unset;bottom:0;z-index:2;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text.fwe-disabled{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fwe-input-text-label{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container:hover{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-divider-y{background-color:var(--fwe-text-disabled)}fng-text-editor .fng-text-editor-invalid{display:none;line-height:1.5;position:absolute;left:0;bottom:0;z-index:2;color:var(--fwe-red);font-size:var(--fwe-font-size-small)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor{box-shadow:none;outline:none}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info:after{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor-container{border-color:var(--fwe-red)}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-info{display:none!important}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-invalid{display:block!important}fng-text-editor .fng-text-bold{font-weight:var(--fwe-font-weight-bold)}fng-text-editor .fng-text-italic{font-style:italic}fng-text-editor .fng-text-underline{text-decoration:underline}fng-text-editor .fng-icon-text-align-center{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-center.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .ql-tooltip{z-index:var(--fwe-z-index-tooltip)}fng-text-editor .ql-editor{font-family:var(--fwe-font-family-sans-serif);font-size:var(--fwe-font-size-base);padding:0;min-height:72px;overflow-x:hidden}fng-text-editor .ql-editor p::selection,fng-text-editor .ql-editor strong::selection,fng-text-editor .ql-editor em::selection,fng-text-editor .ql-editor u::selection,fng-text-editor .ql-editor ul::selection,fng-text-editor .ql-editor ol::selection,fng-text-editor .ql-editor li::selection,fng-text-editor .ql-editor a::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow{border:0;background-color:var(--fwe-white)}fng-text-editor .ql-container.ql-snow .ql-tooltip{transform:translate(160px,12px);color:var(--fwe-black);box-shadow:-1px 1px 4px -1px #3333;border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input{border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow a{color:var(--fwe-caerul)}fng-text-editor .ql-toolbar.ql-snow{border:0;padding:4px 0}fng-text-editor .ql-toolbar.ql-snow .ql-formats.fng-editor-toolbar-buttons-container{display:flex;align-items:center;flex-wrap:wrap}fng-text-editor .ql-toolbar.ql-snow button{line-height:normal;box-sizing:border-box;display:inline-flex;text-align:center;padding:0 8px;height:32px;min-height:unset;color:var(--fwe-black);background:none;border-radius:4px;cursor:pointer;border:none;width:unset;max-width:24px;justify-content:center;align-items:center;float:unset}@media (hover: hover) and (pointer: fine){fng-text-editor .ql-toolbar.ql-snow button:hover{background-color:var(--fwe-control-dark);color:var(--fwe-black)}}fng-text-editor .ql-toolbar.ql-snow button:active{background-color:var(--fwe-control-darker)}fng-text-editor .ql-toolbar.ql-snow button.ql-active+button{background-color:var(--fwe-control)}fng-text-editor .ql-toolbar.ql-snow button.fng-btn-toolbar-list{padding:0 6px}fng-text-editor .ql-toolbar.ql-snow button.fng-button i{pointer-events:none}fng-text-editor .ql-toolbar.ql-snow button.fng-button div{pointer-events:none}fng-text-editor .ql-toolbar .fng-button-text{min-width:12px;line-height:16px}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar{pointer-events:none}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar button{color:var(--fwe-text-disabled)}\n"] }]
|
|
5279
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$3.DomSanitizer }]; }, propDecorators: { btnBold: [{
|
|
5280
|
-
type: ViewChild,
|
|
5281
|
-
args: ['btnBold']
|
|
5282
|
-
}], btnItalic: [{
|
|
5283
|
-
type: ViewChild,
|
|
5284
|
-
args: ['btnItalic']
|
|
5285
|
-
}], btnUnderline: [{
|
|
5286
|
-
type: ViewChild,
|
|
5287
|
-
args: ['btnUnderline']
|
|
5288
|
-
}], btnAlignCenter: [{
|
|
5289
|
-
type: ViewChild,
|
|
5290
|
-
args: ['btnAlignCenter']
|
|
5291
|
-
}], btnAlignRight: [{
|
|
5292
|
-
type: ViewChild,
|
|
5293
|
-
args: ['btnAlignRight']
|
|
5294
|
-
}], btnLink: [{
|
|
5295
|
-
type: ViewChild,
|
|
5296
|
-
args: ['btnLink']
|
|
5297
|
-
}], btnUl: [{
|
|
5298
|
-
type: ViewChild,
|
|
5299
|
-
args: ['btnUl']
|
|
5300
|
-
}], btnOl: [{
|
|
5301
|
-
type: ViewChild,
|
|
5302
|
-
args: ['btnOl']
|
|
5303
|
-
}], btnImage: [{
|
|
5304
|
-
type: ViewChild,
|
|
5305
|
-
args: ['btnImage']
|
|
5306
|
-
}], fngChange: [{
|
|
5307
|
-
type: Output
|
|
5308
|
-
}], change: [{
|
|
5309
|
-
type: Output
|
|
5310
|
-
}], config: [{
|
|
5311
|
-
type: Input
|
|
5312
|
-
}], modules: [{
|
|
5313
|
-
type: Input
|
|
5314
|
-
}], label: [{
|
|
5315
|
-
type: Input
|
|
5316
|
-
}], readOnly: [{
|
|
5317
|
-
type: Input
|
|
5318
|
-
}], maxLength: [{
|
|
5319
|
-
type: Input
|
|
5320
|
-
}], error: [{
|
|
5321
|
-
type: Input
|
|
5322
|
-
}], hint: [{
|
|
5323
|
-
type: Input
|
|
5324
|
-
}], value: [{
|
|
5162
|
+
args: [{ selector: 'fng-snackbar-container', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-snackbar-container\">\n <div [fngSnackbarContainer]=\"config\"></div>\n</div>\n", styles: [".fwe-snackbar-container{pointer-events:none}\n"] }]
|
|
5163
|
+
}], propDecorators: { config: [{
|
|
5325
5164
|
type: Input
|
|
5326
5165
|
}] } });
|
|
5327
5166
|
|
|
5328
|
-
class
|
|
5329
|
-
constructor(elementRef) {
|
|
5330
|
-
this.elementRef = elementRef;
|
|
5331
|
-
}
|
|
5332
|
-
onHostClick(target) {
|
|
5333
|
-
if (this.elementRef && this.elementRef.nativeElement) {
|
|
5334
|
-
const containsTarget = this.elementRef.nativeElement.contains(target);
|
|
5335
|
-
if (!containsTarget) {
|
|
5336
|
-
this.onOutsideClick();
|
|
5337
|
-
}
|
|
5338
|
-
else {
|
|
5339
|
-
this.onContainerClick();
|
|
5340
|
-
}
|
|
5341
|
-
}
|
|
5342
|
-
}
|
|
5167
|
+
class FestoAngularSnackbarModule {
|
|
5343
5168
|
}
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
i0.ɵɵ
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5169
|
+
FestoAngularSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5170
|
+
FestoAngularSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, bootstrap: [SnackbarComponent], declarations: [SnackbarComponent, SnackbarContainerDirective, SnackbarContainerComponent], imports: [CommonModule], exports: [SnackbarContainerComponent, SnackbarContainerDirective, SnackbarContainerComponent] });
|
|
5171
|
+
FestoAngularSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, providers: [], imports: [[CommonModule]] });
|
|
5172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, decorators: [{
|
|
5173
|
+
type: NgModule,
|
|
5174
|
+
args: [{
|
|
5175
|
+
declarations: [SnackbarComponent, SnackbarContainerDirective, SnackbarContainerComponent],
|
|
5176
|
+
imports: [CommonModule],
|
|
5177
|
+
exports: [SnackbarContainerComponent, SnackbarContainerDirective, SnackbarContainerComponent],
|
|
5178
|
+
providers: [],
|
|
5179
|
+
bootstrap: [SnackbarComponent]
|
|
5180
|
+
}]
|
|
5181
|
+
}] });
|
|
5182
|
+
|
|
5183
|
+
/**
|
|
5184
|
+
* An icon component.
|
|
5185
|
+
*/
|
|
5186
|
+
class IconComponent {
|
|
5187
|
+
}
|
|
5188
|
+
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5189
|
+
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IconComponent, selector: "fng-icon", inputs: { icon: "icon" }, ngImport: i0, template: "<i *ngIf=\"icon?.type === 'font'\" [class]=\"'fwe-icon fwe-icon-' + icon?.name + ' ' + (icon.class || '')\"></i>\n<img\n *ngIf=\"icon?.type === 'img'\"\n [class]=\"icon.class\"\n [src]=\"icon?.url\"\n [ngStyle]=\"{ width: icon?.width + 'px', height: icon?.height + 'px' }\"\n/>\n<ng-content *ngIf=\"icon?.type === 'svg'\"></ng-content>\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IconComponent, decorators: [{
|
|
5191
|
+
type: Component,
|
|
5192
|
+
args: [{ selector: 'fng-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<i *ngIf=\"icon?.type === 'font'\" [class]=\"'fwe-icon fwe-icon-' + icon?.name + ' ' + (icon.class || '')\"></i>\n<img\n *ngIf=\"icon?.type === 'img'\"\n [class]=\"icon.class\"\n [src]=\"icon?.url\"\n [ngStyle]=\"{ width: icon?.width + 'px', height: icon?.height + 'px' }\"\n/>\n<ng-content *ngIf=\"icon?.type === 'svg'\"></ng-content>\n", styles: [""] }]
|
|
5193
|
+
}], propDecorators: { icon: [{
|
|
5194
|
+
type: Input
|
|
5351
5195
|
}] } });
|
|
5352
5196
|
|
|
5353
|
-
class
|
|
5197
|
+
class FestoAngularContentModule {
|
|
5354
5198
|
}
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
RadioComponent,
|
|
5360
|
-
TextInputComponent,
|
|
5361
|
-
TextAreaComponent,
|
|
5362
|
-
ColorIndicatorComponent,
|
|
5363
|
-
FlatpickrComponent,
|
|
5364
|
-
DatePickerComponent,
|
|
5365
|
-
DateRangePickerComponent,
|
|
5366
|
-
ColorPickerComponent,
|
|
5367
|
-
SelectComponent,
|
|
5368
|
-
SelectOptionComponent,
|
|
5369
|
-
SliderComponent,
|
|
5370
|
-
SegmentComponent,
|
|
5371
|
-
SegmentControlComponent,
|
|
5372
|
-
TimePickerComponent,
|
|
5373
|
-
TimePickerDropdownComponent,
|
|
5374
|
-
TextEditorComponent,
|
|
5375
|
-
ChipTextPipe], imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], exports: [ReactiveFormsModule,
|
|
5376
|
-
FormsModule,
|
|
5377
|
-
CheckboxComponent,
|
|
5378
|
-
SwitchComponent,
|
|
5379
|
-
RadioGroupDirective,
|
|
5380
|
-
RadioComponent,
|
|
5381
|
-
TextInputComponent,
|
|
5382
|
-
TextAreaComponent,
|
|
5383
|
-
ColorIndicatorComponent,
|
|
5384
|
-
DatePickerComponent,
|
|
5385
|
-
DateRangePickerComponent,
|
|
5386
|
-
ColorPickerComponent,
|
|
5387
|
-
SelectComponent,
|
|
5388
|
-
SelectOptionComponent,
|
|
5389
|
-
SliderComponent,
|
|
5390
|
-
SegmentComponent,
|
|
5391
|
-
SegmentControlComponent,
|
|
5392
|
-
TimePickerComponent,
|
|
5393
|
-
TimePickerDropdownComponent,
|
|
5394
|
-
TextEditorComponent,
|
|
5395
|
-
ChipTextPipe] });
|
|
5396
|
-
FestoAngularFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularFormsModule, providers: [UniqueSelectionDispatcher], imports: [[ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], ReactiveFormsModule,
|
|
5397
|
-
FormsModule] });
|
|
5398
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularFormsModule, decorators: [{
|
|
5199
|
+
FestoAngularContentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5200
|
+
FestoAngularContentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularContentModule, declarations: [IconComponent], imports: [CommonModule], exports: [IconComponent] });
|
|
5201
|
+
FestoAngularContentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularContentModule, providers: [], imports: [[CommonModule]] });
|
|
5202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularContentModule, decorators: [{
|
|
5399
5203
|
type: NgModule,
|
|
5400
5204
|
args: [{
|
|
5401
|
-
declarations: [
|
|
5402
|
-
|
|
5403
|
-
|
|
5404
|
-
|
|
5405
|
-
RadioComponent,
|
|
5406
|
-
TextInputComponent,
|
|
5407
|
-
TextAreaComponent,
|
|
5408
|
-
ColorIndicatorComponent,
|
|
5409
|
-
FlatpickrComponent,
|
|
5410
|
-
DatePickerComponent,
|
|
5411
|
-
DateRangePickerComponent,
|
|
5412
|
-
ColorPickerComponent,
|
|
5413
|
-
SelectComponent,
|
|
5414
|
-
SelectOptionComponent,
|
|
5415
|
-
SliderComponent,
|
|
5416
|
-
SegmentComponent,
|
|
5417
|
-
SegmentControlComponent,
|
|
5418
|
-
TimePickerComponent,
|
|
5419
|
-
TimePickerDropdownComponent,
|
|
5420
|
-
TextEditorComponent,
|
|
5421
|
-
ChipTextPipe
|
|
5422
|
-
],
|
|
5423
|
-
imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],
|
|
5424
|
-
exports: [
|
|
5425
|
-
ReactiveFormsModule,
|
|
5426
|
-
FormsModule,
|
|
5427
|
-
CheckboxComponent,
|
|
5428
|
-
SwitchComponent,
|
|
5429
|
-
RadioGroupDirective,
|
|
5430
|
-
RadioComponent,
|
|
5431
|
-
TextInputComponent,
|
|
5432
|
-
TextAreaComponent,
|
|
5433
|
-
ColorIndicatorComponent,
|
|
5434
|
-
DatePickerComponent,
|
|
5435
|
-
DateRangePickerComponent,
|
|
5436
|
-
ColorPickerComponent,
|
|
5437
|
-
SelectComponent,
|
|
5438
|
-
SelectOptionComponent,
|
|
5439
|
-
SliderComponent,
|
|
5440
|
-
SegmentComponent,
|
|
5441
|
-
SegmentControlComponent,
|
|
5442
|
-
TimePickerComponent,
|
|
5443
|
-
TimePickerDropdownComponent,
|
|
5444
|
-
TextEditorComponent,
|
|
5445
|
-
ChipTextPipe
|
|
5446
|
-
],
|
|
5447
|
-
providers: [UniqueSelectionDispatcher]
|
|
5205
|
+
declarations: [IconComponent],
|
|
5206
|
+
imports: [CommonModule],
|
|
5207
|
+
exports: [IconComponent],
|
|
5208
|
+
providers: []
|
|
5448
5209
|
}]
|
|
5449
5210
|
}] });
|
|
5450
5211
|
|
|
5451
|
-
class
|
|
5212
|
+
class FlatpickrComponent {
|
|
5452
5213
|
constructor() {
|
|
5453
|
-
this.
|
|
5454
|
-
this.cancel = new EventEmitter();
|
|
5455
|
-
this.ok = new EventEmitter();
|
|
5456
|
-
}
|
|
5457
|
-
onKeyUp(event) {
|
|
5458
|
-
event.preventDefault();
|
|
5459
|
-
event.stopPropagation();
|
|
5460
|
-
if (event.key === 'Esc' || event.key === 'Escape') {
|
|
5461
|
-
this.onClose();
|
|
5462
|
-
}
|
|
5463
|
-
}
|
|
5464
|
-
ngAfterViewInit() {
|
|
5465
|
-
if (this.closeBtn) {
|
|
5466
|
-
this.closeBtn.nativeElement.focus();
|
|
5467
|
-
}
|
|
5214
|
+
this.dateChange = new EventEmitter();
|
|
5468
5215
|
}
|
|
5469
|
-
|
|
5470
|
-
this.
|
|
5216
|
+
ngOnInit() {
|
|
5217
|
+
const options = this.options != null
|
|
5218
|
+
? {
|
|
5219
|
+
minDate: this.options.minDate || null,
|
|
5220
|
+
maxDate: this.options.maxDate || null,
|
|
5221
|
+
mode: this.options.mode || 'single'
|
|
5222
|
+
}
|
|
5223
|
+
: {
|
|
5224
|
+
minDate: null,
|
|
5225
|
+
maxDate: null,
|
|
5226
|
+
mode: 'single'
|
|
5227
|
+
};
|
|
5228
|
+
this.datePicker = flatpickr(this.datePickerRef.nativeElement, {
|
|
5229
|
+
inline: true,
|
|
5230
|
+
defaultDate: this.date,
|
|
5231
|
+
onChange: c => this.onDateChange(c),
|
|
5232
|
+
maxDate: options.maxDate,
|
|
5233
|
+
minDate: options.minDate,
|
|
5234
|
+
mode: options.mode
|
|
5235
|
+
});
|
|
5471
5236
|
}
|
|
5472
|
-
|
|
5473
|
-
this.
|
|
5237
|
+
ngOnDestroy() {
|
|
5238
|
+
if (this.datePicker != null) {
|
|
5239
|
+
this.datePicker.destroy();
|
|
5240
|
+
}
|
|
5474
5241
|
}
|
|
5475
|
-
|
|
5476
|
-
this.
|
|
5242
|
+
onDateChange(dateOption) {
|
|
5243
|
+
const mode = this.options != null && this.options.mode === 'range' ? 'range' : 'single';
|
|
5244
|
+
if (mode === 'range' && Array.isArray(dateOption) && dateOption.length === 2) {
|
|
5245
|
+
this.dateChange.emit(dateOption);
|
|
5246
|
+
}
|
|
5247
|
+
if (mode === 'single' && Array.isArray(dateOption) && dateOption.length === 1) {
|
|
5248
|
+
this.dateChange.emit(dateOption[0]);
|
|
5249
|
+
}
|
|
5477
5250
|
}
|
|
5478
5251
|
}
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type:
|
|
5252
|
+
FlatpickrComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FlatpickrComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5253
|
+
FlatpickrComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: FlatpickrComponent, selector: "fng-flatpickr", inputs: { date: "date", options: "options" }, outputs: { dateChange: "dateChange" }, viewQueries: [{ propertyName: "datePickerRef", first: true, predicate: ["datePicker"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"fng-flatpickr\">\n <div #datePicker></div>\n</div>\n", encapsulation: i0.ViewEncapsulation.None });
|
|
5254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FlatpickrComponent, decorators: [{
|
|
5482
5255
|
type: Component,
|
|
5483
|
-
args: [{ selector: 'fng-
|
|
5484
|
-
}], propDecorators: {
|
|
5256
|
+
args: [{ selector: 'fng-flatpickr', encapsulation: ViewEncapsulation.None, template: "<div class=\"fng-flatpickr\">\n <div #datePicker></div>\n</div>\n" }]
|
|
5257
|
+
}], propDecorators: { date: [{
|
|
5485
5258
|
type: Input
|
|
5486
|
-
}],
|
|
5487
|
-
type:
|
|
5488
|
-
}],
|
|
5489
|
-
type: Output
|
|
5490
|
-
}], ok: [{
|
|
5259
|
+
}], options: [{
|
|
5260
|
+
type: Input
|
|
5261
|
+
}], dateChange: [{
|
|
5491
5262
|
type: Output
|
|
5492
|
-
}],
|
|
5263
|
+
}], datePickerRef: [{
|
|
5493
5264
|
type: ViewChild,
|
|
5494
|
-
args: ['
|
|
5495
|
-
}], onKeyUp: [{
|
|
5496
|
-
type: HostListener,
|
|
5497
|
-
args: ['window:keyup', ['$event']]
|
|
5265
|
+
args: ['datePicker', { static: true }]
|
|
5498
5266
|
}] } });
|
|
5499
5267
|
|
|
5500
|
-
class
|
|
5501
|
-
constructor(
|
|
5502
|
-
this.
|
|
5503
|
-
this.
|
|
5504
|
-
this.
|
|
5505
|
-
this.
|
|
5268
|
+
class DatePickerComponent {
|
|
5269
|
+
constructor(overlay, localeDefault) {
|
|
5270
|
+
this.overlay = overlay;
|
|
5271
|
+
this.localeDefault = localeDefault;
|
|
5272
|
+
this.innerDisabled = false;
|
|
5273
|
+
this.innerRequired = false;
|
|
5274
|
+
this.display = 'block';
|
|
5275
|
+
this.complete = new Subject();
|
|
5506
5276
|
}
|
|
5507
|
-
|
|
5508
|
-
|
|
5509
|
-
|
|
5510
|
-
|
|
5511
|
-
|
|
5277
|
+
get value() {
|
|
5278
|
+
return this.innerValue;
|
|
5279
|
+
}
|
|
5280
|
+
set value(date) {
|
|
5281
|
+
if (!this.disabled) {
|
|
5282
|
+
this.innerValue = date;
|
|
5283
|
+
if (this.onChange != null) {
|
|
5284
|
+
this.onChange(date);
|
|
5285
|
+
}
|
|
5286
|
+
if (this.onTouched != null) {
|
|
5287
|
+
this.onTouched();
|
|
5288
|
+
}
|
|
5512
5289
|
}
|
|
5513
5290
|
}
|
|
5514
|
-
|
|
5515
|
-
|
|
5516
|
-
|
|
5291
|
+
get disabled() {
|
|
5292
|
+
return this.innerDisabled;
|
|
5293
|
+
}
|
|
5294
|
+
set disabled(value) {
|
|
5295
|
+
this.innerDisabled = coerceBooleanProperty(value);
|
|
5296
|
+
}
|
|
5297
|
+
get required() {
|
|
5298
|
+
return this.innerRequired;
|
|
5299
|
+
}
|
|
5300
|
+
set required(value) {
|
|
5301
|
+
this.innerRequired = coerceBooleanProperty(value);
|
|
5302
|
+
}
|
|
5303
|
+
get displayValue() {
|
|
5304
|
+
if (!this.value) {
|
|
5305
|
+
return null;
|
|
5517
5306
|
}
|
|
5307
|
+
const format = this.format || 'mediumDate';
|
|
5308
|
+
const locale = this.locale || this.localeDefault;
|
|
5309
|
+
const timezone = this.timezone;
|
|
5310
|
+
return formatDate(this.value, format, locale, timezone);
|
|
5518
5311
|
}
|
|
5519
|
-
|
|
5520
|
-
|
|
5312
|
+
hide(event) {
|
|
5313
|
+
if (event.key === 'Escape' || event.key === 'Tab') {
|
|
5314
|
+
this.dispose();
|
|
5315
|
+
}
|
|
5521
5316
|
}
|
|
5522
|
-
|
|
5523
|
-
this.
|
|
5317
|
+
onDateChange(date) {
|
|
5318
|
+
this.value = date;
|
|
5524
5319
|
}
|
|
5525
|
-
|
|
5526
|
-
this.
|
|
5320
|
+
writeValue(date) {
|
|
5321
|
+
this.innerValue = date;
|
|
5322
|
+
}
|
|
5323
|
+
registerOnChange(fn) {
|
|
5324
|
+
this.onChange = fn;
|
|
5325
|
+
}
|
|
5326
|
+
registerOnTouched(fn) {
|
|
5327
|
+
this.onTouched = fn;
|
|
5328
|
+
}
|
|
5329
|
+
setDisabledState(isDisabled) {
|
|
5330
|
+
this.disabled = isDisabled;
|
|
5331
|
+
}
|
|
5332
|
+
toggle(event) {
|
|
5333
|
+
event.preventDefault();
|
|
5334
|
+
event.stopPropagation();
|
|
5335
|
+
if (!this.disabled) {
|
|
5336
|
+
if (this.datePickerRef == null) {
|
|
5337
|
+
this.datePickerRef = this.overlay.create({
|
|
5338
|
+
hasBackdrop: true,
|
|
5339
|
+
backdropClass: 'fng-date-picker-backdrop',
|
|
5340
|
+
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
5341
|
+
positionStrategy: this.overlay
|
|
5342
|
+
.position()
|
|
5343
|
+
.flexibleConnectedTo(this.connector.nativeElement)
|
|
5344
|
+
.withPositions([
|
|
5345
|
+
{
|
|
5346
|
+
originX: 'center',
|
|
5347
|
+
originY: 'bottom',
|
|
5348
|
+
overlayX: 'center',
|
|
5349
|
+
overlayY: 'top',
|
|
5350
|
+
offsetY: -12,
|
|
5351
|
+
offsetX: -10,
|
|
5352
|
+
panelClass: ['flatpickr-calendar', 'open']
|
|
5353
|
+
},
|
|
5354
|
+
{
|
|
5355
|
+
originX: 'center',
|
|
5356
|
+
originY: 'top',
|
|
5357
|
+
overlayX: 'center',
|
|
5358
|
+
overlayY: 'bottom',
|
|
5359
|
+
offsetY: 4,
|
|
5360
|
+
offsetX: -10,
|
|
5361
|
+
panelClass: ['flatpickr-calendar', 'open']
|
|
5362
|
+
}
|
|
5363
|
+
])
|
|
5364
|
+
.withFlexibleDimensions(false)
|
|
5365
|
+
.withPush(false)
|
|
5366
|
+
});
|
|
5367
|
+
const datePickerPortal = new ComponentPortal(FlatpickrComponent);
|
|
5368
|
+
this.datePicker = this.datePickerRef.attach(datePickerPortal);
|
|
5369
|
+
this.datePicker.instance.options = this.options;
|
|
5370
|
+
this.datePicker.instance.date = this.value;
|
|
5371
|
+
this.datePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe((c) => {
|
|
5372
|
+
this.onDateChange(c);
|
|
5373
|
+
if (this.options == null || !this.options.keepOpenOnDateChange) {
|
|
5374
|
+
this.dispose();
|
|
5375
|
+
}
|
|
5376
|
+
});
|
|
5377
|
+
this.datePickerRef
|
|
5378
|
+
.backdropClick()
|
|
5379
|
+
.pipe(takeUntil(this.complete))
|
|
5380
|
+
.subscribe(() => this.dispose());
|
|
5381
|
+
this.datePicker.instance.ngOnInit();
|
|
5382
|
+
}
|
|
5383
|
+
else {
|
|
5384
|
+
this.dispose();
|
|
5385
|
+
}
|
|
5386
|
+
}
|
|
5387
|
+
}
|
|
5388
|
+
dispose() {
|
|
5389
|
+
if (this.datePickerRef != null) {
|
|
5390
|
+
this.datePickerRef.detach();
|
|
5391
|
+
this.datePickerRef.dispose();
|
|
5392
|
+
this.datePickerRef = null;
|
|
5393
|
+
}
|
|
5394
|
+
if (this.complete != null) {
|
|
5395
|
+
this.complete.next(true);
|
|
5396
|
+
this.complete.complete();
|
|
5397
|
+
}
|
|
5527
5398
|
}
|
|
5528
5399
|
}
|
|
5529
|
-
|
|
5530
|
-
|
|
5531
|
-
|
|
5400
|
+
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1$2.Overlay }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
5401
|
+
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: DatePickerComponent, selector: "fng-date-picker", inputs: { value: "value", disabled: "disabled", hint: "hint", error: "error", options: "options", locale: "locale", format: "format", timezone: "timezone", required: "required", width: "width" }, host: { listeners: { "document:keydown": "hide($event)" }, properties: { "style.width": "this.width", "style.display": "this.display" } }, providers: [
|
|
5402
|
+
{
|
|
5403
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5404
|
+
useExisting: forwardRef(() => DatePickerComponent),
|
|
5405
|
+
multi: true
|
|
5406
|
+
}
|
|
5407
|
+
], viewQueries: [{ propertyName: "connector", first: true, predicate: ["connector"], descendants: true, static: true }], ngImport: i0, template: "<label #connector class=\"fng-date-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i\n class=\"fwe-icon fwe-icon-time-calendar\"\n [class.fwe-color-hero]=\"datePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></i>\n <input\n aria-label=\"picked date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"datePickerRef != null\"\n [value]=\"displayValue\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n", styles: [".fwe-border-hero{border-color:var(--fwe-hero)!important}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5408
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
5532
5409
|
type: Component,
|
|
5533
|
-
args: [{ selector: 'fng-
|
|
5534
|
-
|
|
5410
|
+
args: [{ selector: 'fng-date-picker', providers: [
|
|
5411
|
+
{
|
|
5412
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5413
|
+
useExisting: forwardRef(() => DatePickerComponent),
|
|
5414
|
+
multi: true
|
|
5415
|
+
}
|
|
5416
|
+
], encapsulation: ViewEncapsulation.None, template: "<label #connector class=\"fng-date-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i\n class=\"fwe-icon fwe-icon-time-calendar\"\n [class.fwe-color-hero]=\"datePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></i>\n <input\n aria-label=\"picked date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"datePickerRef != null\"\n [value]=\"displayValue\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n", styles: [".fwe-border-hero{border-color:var(--fwe-hero)!important}\n"] }]
|
|
5417
|
+
}], ctorParameters: function () {
|
|
5418
|
+
return [{ type: i1$2.Overlay }, { type: undefined, decorators: [{
|
|
5419
|
+
type: Inject,
|
|
5420
|
+
args: [LOCALE_ID]
|
|
5421
|
+
}] }];
|
|
5422
|
+
}, propDecorators: { value: [{
|
|
5535
5423
|
type: Input
|
|
5536
|
-
}],
|
|
5537
|
-
type:
|
|
5538
|
-
}],
|
|
5539
|
-
type:
|
|
5540
|
-
}],
|
|
5541
|
-
type:
|
|
5542
|
-
}],
|
|
5424
|
+
}], disabled: [{
|
|
5425
|
+
type: Input
|
|
5426
|
+
}], hint: [{
|
|
5427
|
+
type: Input
|
|
5428
|
+
}], error: [{
|
|
5429
|
+
type: Input
|
|
5430
|
+
}], options: [{
|
|
5431
|
+
type: Input
|
|
5432
|
+
}], locale: [{
|
|
5433
|
+
type: Input
|
|
5434
|
+
}], format: [{
|
|
5435
|
+
type: Input
|
|
5436
|
+
}], timezone: [{
|
|
5437
|
+
type: Input
|
|
5438
|
+
}], required: [{
|
|
5439
|
+
type: Input
|
|
5440
|
+
}], connector: [{
|
|
5543
5441
|
type: ViewChild,
|
|
5544
|
-
args: ['
|
|
5545
|
-
}],
|
|
5442
|
+
args: ['connector', { static: true }]
|
|
5443
|
+
}], width: [{
|
|
5444
|
+
type: Input
|
|
5445
|
+
}, {
|
|
5446
|
+
type: HostBinding,
|
|
5447
|
+
args: ['style.width']
|
|
5448
|
+
}], display: [{
|
|
5449
|
+
type: HostBinding,
|
|
5450
|
+
args: ['style.display']
|
|
5451
|
+
}], hide: [{
|
|
5546
5452
|
type: HostListener,
|
|
5547
|
-
args: ['
|
|
5453
|
+
args: ['document:keydown', ['$event']]
|
|
5548
5454
|
}] } });
|
|
5549
5455
|
|
|
5550
|
-
class
|
|
5551
|
-
constructor(
|
|
5552
|
-
this.
|
|
5553
|
-
this.
|
|
5554
|
-
this.
|
|
5555
|
-
this.
|
|
5556
|
-
this.
|
|
5456
|
+
class DateRangePickerComponent {
|
|
5457
|
+
constructor(overlay, localeDefault) {
|
|
5458
|
+
this.overlay = overlay;
|
|
5459
|
+
this.localeDefault = localeDefault;
|
|
5460
|
+
this.innerDisabled = false;
|
|
5461
|
+
this.innerRequired = false;
|
|
5462
|
+
this.display = 'block';
|
|
5463
|
+
this.fngChange = new EventEmitter();
|
|
5464
|
+
this.change = new EventEmitter();
|
|
5557
5465
|
this.complete = new Subject();
|
|
5558
5466
|
}
|
|
5559
|
-
get
|
|
5560
|
-
|
|
5561
|
-
return (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.get('text')) === null || _b === void 0 ? void 0 : _b.value;
|
|
5562
|
-
}
|
|
5563
|
-
get valid() {
|
|
5564
|
-
var _a, _b;
|
|
5565
|
-
return (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.get('text')) === null || _b === void 0 ? void 0 : _b.valid;
|
|
5566
|
-
}
|
|
5567
|
-
onKeyUp(event) {
|
|
5568
|
-
event.preventDefault();
|
|
5569
|
-
event.stopPropagation();
|
|
5570
|
-
if (event.key === 'Esc' || event.key === 'Escape') {
|
|
5571
|
-
this.onClose();
|
|
5572
|
-
}
|
|
5467
|
+
get value() {
|
|
5468
|
+
return this.innerValue;
|
|
5573
5469
|
}
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
});
|
|
5580
|
-
if (text) {
|
|
5581
|
-
this.form.get('text').markAsDirty();
|
|
5582
|
-
}
|
|
5583
|
-
this.form
|
|
5584
|
-
.get('text')
|
|
5585
|
-
.statusChanges.pipe(takeUntil(this.complete))
|
|
5586
|
-
.subscribe(sc => {
|
|
5587
|
-
if (sc === 'INVALID') {
|
|
5588
|
-
this.handleErrors();
|
|
5470
|
+
set value(dateRange) {
|
|
5471
|
+
if (!this.disabled) {
|
|
5472
|
+
this.innerValue = dateRange;
|
|
5473
|
+
if (this.onChange != null) {
|
|
5474
|
+
this.onChange(dateRange);
|
|
5589
5475
|
}
|
|
5590
|
-
|
|
5591
|
-
this.
|
|
5476
|
+
if (this.onTouched != null) {
|
|
5477
|
+
this.onTouched();
|
|
5592
5478
|
}
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
ngAfterViewInit() {
|
|
5596
|
-
if (this.closeBtn) {
|
|
5597
|
-
this.closeBtn.nativeElement.focus();
|
|
5479
|
+
this.fngChange.emit(this.innerValue);
|
|
5480
|
+
this.change.emit(this.innerValue);
|
|
5598
5481
|
}
|
|
5599
5482
|
}
|
|
5600
|
-
|
|
5601
|
-
this.
|
|
5602
|
-
this.complete.unsubscribe();
|
|
5483
|
+
get disabled() {
|
|
5484
|
+
return this.innerDisabled;
|
|
5603
5485
|
}
|
|
5604
|
-
|
|
5605
|
-
this.
|
|
5486
|
+
set disabled(value) {
|
|
5487
|
+
this.innerDisabled = coerceBooleanProperty(value);
|
|
5606
5488
|
}
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
this.ok.emit(this.text);
|
|
5610
|
-
}
|
|
5489
|
+
get required() {
|
|
5490
|
+
return this.innerRequired;
|
|
5611
5491
|
}
|
|
5612
|
-
|
|
5613
|
-
this.
|
|
5492
|
+
set required(value) {
|
|
5493
|
+
this.innerRequired = coerceBooleanProperty(value);
|
|
5614
5494
|
}
|
|
5615
|
-
|
|
5616
|
-
const
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
this.error = this.data.errors[key];
|
|
5620
|
-
}
|
|
5621
|
-
else {
|
|
5622
|
-
this.error = 'Prompt input is invalid.';
|
|
5495
|
+
get fromDateDisplayValue() {
|
|
5496
|
+
const v = this.value;
|
|
5497
|
+
if (!v || v.length !== 2) {
|
|
5498
|
+
return null;
|
|
5623
5499
|
}
|
|
5500
|
+
const from = this.value[0];
|
|
5501
|
+
const format = this.format || 'mediumDate';
|
|
5502
|
+
const locale = this.locale || this.localeDefault;
|
|
5503
|
+
const timezone = this.timezone;
|
|
5504
|
+
return formatDate(from, format, locale, timezone);
|
|
5624
5505
|
}
|
|
5625
|
-
|
|
5626
|
-
|
|
5627
|
-
|
|
5628
|
-
|
|
5629
|
-
type: Component,
|
|
5630
|
-
args: [{ selector: 'fng-prompt', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-modal\">\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">{{ data?.subtitle }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ data?.title }}</h1>\n </div>\n <form [formGroup]=\"form\" class=\"fwe-modal-body\">\n <fng-text-input formControlName=\"text\" [label]=\"data?.label\" [hint]=\"data?.hint\" type=\"text\" [error]=\"error\"></fng-text-input>\n </form>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button *ngIf=\"data?.cancel\" type=\"button\" aria-label=\"Cancel\" class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-hero fwe-btn-lg\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n", styles: [""] }]
|
|
5631
|
-
}], ctorParameters: function () { return [{ type: i1$4.FormBuilder }]; }, propDecorators: { data: [{
|
|
5632
|
-
type: Input
|
|
5633
|
-
}], close: [{
|
|
5634
|
-
type: Output
|
|
5635
|
-
}], cancel: [{
|
|
5636
|
-
type: Output
|
|
5637
|
-
}], ok: [{
|
|
5638
|
-
type: Output
|
|
5639
|
-
}], closeBtn: [{
|
|
5640
|
-
type: ViewChild,
|
|
5641
|
-
args: ['closeBtn']
|
|
5642
|
-
}], onKeyUp: [{
|
|
5643
|
-
type: HostListener,
|
|
5644
|
-
args: ['window:keyup', ['$event']]
|
|
5645
|
-
}] } });
|
|
5646
|
-
|
|
5647
|
-
class CustomModalComponent {
|
|
5648
|
-
constructor() {
|
|
5649
|
-
this.closeOnBackdrop = false;
|
|
5650
|
-
this.large = false;
|
|
5651
|
-
this.visible = false;
|
|
5652
|
-
this.visibleChange = new EventEmitter(false);
|
|
5653
|
-
this.header = '';
|
|
5654
|
-
this.subheader = '';
|
|
5655
|
-
this.acknowledgeLabel = 'Ok';
|
|
5656
|
-
this.acknowledge = new EventEmitter();
|
|
5657
|
-
this.cancelLabel = 'Cancel';
|
|
5658
|
-
this.cancel = new EventEmitter();
|
|
5659
|
-
}
|
|
5660
|
-
closeModal() {
|
|
5661
|
-
this.visible = false;
|
|
5662
|
-
if (this.visibleChange) {
|
|
5663
|
-
this.visibleChange.emit(false);
|
|
5506
|
+
get toDateDisplayValue() {
|
|
5507
|
+
const v = this.value;
|
|
5508
|
+
if (!v || v.length !== 2) {
|
|
5509
|
+
return null;
|
|
5664
5510
|
}
|
|
5511
|
+
const to = this.value[1];
|
|
5512
|
+
const format = this.format || 'mediumDate';
|
|
5513
|
+
const locale = this.locale || this.localeDefault;
|
|
5514
|
+
const timezone = this.timezone;
|
|
5515
|
+
return formatDate(to, format, locale, timezone);
|
|
5665
5516
|
}
|
|
5666
|
-
|
|
5667
|
-
|
|
5668
|
-
|
|
5669
|
-
this.cancel.emit();
|
|
5517
|
+
hide(event) {
|
|
5518
|
+
if (event.key === 'Escape' || event.key === 'Tab') {
|
|
5519
|
+
this.dispose();
|
|
5670
5520
|
}
|
|
5671
5521
|
}
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
this.acknowledge.emit();
|
|
5675
|
-
}
|
|
5522
|
+
onDateChange(dateRange) {
|
|
5523
|
+
this.value = dateRange;
|
|
5676
5524
|
}
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
this.onCancel();
|
|
5680
|
-
}
|
|
5525
|
+
writeValue(dateRange) {
|
|
5526
|
+
this.innerValue = dateRange;
|
|
5681
5527
|
}
|
|
5682
|
-
|
|
5528
|
+
registerOnChange(fn) {
|
|
5529
|
+
this.onChange = fn;
|
|
5530
|
+
}
|
|
5531
|
+
registerOnTouched(fn) {
|
|
5532
|
+
this.onTouched = fn;
|
|
5533
|
+
}
|
|
5534
|
+
setDisabledState(isDisabled) {
|
|
5535
|
+
this.disabled = isDisabled;
|
|
5536
|
+
}
|
|
5537
|
+
toggle(event) {
|
|
5538
|
+
event.preventDefault();
|
|
5683
5539
|
event.stopPropagation();
|
|
5540
|
+
if (!this.disabled) {
|
|
5541
|
+
if (this.dateRangePickerRef == null) {
|
|
5542
|
+
this.dateRangePickerRef = this.overlay.create({
|
|
5543
|
+
hasBackdrop: true,
|
|
5544
|
+
backdropClass: 'fng-date-picker-backdrop',
|
|
5545
|
+
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
5546
|
+
positionStrategy: this.overlay
|
|
5547
|
+
.position()
|
|
5548
|
+
.flexibleConnectedTo(this.connector.nativeElement)
|
|
5549
|
+
.withPositions([
|
|
5550
|
+
{
|
|
5551
|
+
originX: 'center',
|
|
5552
|
+
originY: 'bottom',
|
|
5553
|
+
overlayX: 'center',
|
|
5554
|
+
overlayY: 'top',
|
|
5555
|
+
offsetY: -12,
|
|
5556
|
+
offsetX: -10,
|
|
5557
|
+
panelClass: ['flatpickr-calendar', 'open']
|
|
5558
|
+
},
|
|
5559
|
+
{
|
|
5560
|
+
originX: 'center',
|
|
5561
|
+
originY: 'top',
|
|
5562
|
+
overlayX: 'center',
|
|
5563
|
+
overlayY: 'bottom',
|
|
5564
|
+
offsetY: 4,
|
|
5565
|
+
offsetX: -10,
|
|
5566
|
+
panelClass: ['flatpickr-calendar', 'open']
|
|
5567
|
+
}
|
|
5568
|
+
])
|
|
5569
|
+
.withFlexibleDimensions(false)
|
|
5570
|
+
.withPush(false)
|
|
5571
|
+
});
|
|
5572
|
+
const datePickerPortal = new ComponentPortal(FlatpickrComponent);
|
|
5573
|
+
this.datePicker = this.dateRangePickerRef.attach(datePickerPortal);
|
|
5574
|
+
this.datePicker.instance.options = {
|
|
5575
|
+
mode: 'range',
|
|
5576
|
+
minDate: this.options != null && this.options.minDate != null ? this.options.minDate : null,
|
|
5577
|
+
maxDate: this.options != null && this.options.maxDate != null ? this.options.maxDate : null
|
|
5578
|
+
};
|
|
5579
|
+
this.datePicker.instance.date = this.value;
|
|
5580
|
+
this.datePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe((c) => {
|
|
5581
|
+
this.onDateChange(c);
|
|
5582
|
+
if (this.options == null || !this.options.keepOpenOnDateChange) {
|
|
5583
|
+
this.dispose();
|
|
5584
|
+
}
|
|
5585
|
+
});
|
|
5586
|
+
this.dateRangePickerRef
|
|
5587
|
+
.backdropClick()
|
|
5588
|
+
.pipe(takeUntil(this.complete))
|
|
5589
|
+
.subscribe(() => this.dispose());
|
|
5590
|
+
this.datePicker.instance.ngOnInit();
|
|
5591
|
+
}
|
|
5592
|
+
else {
|
|
5593
|
+
this.dispose();
|
|
5594
|
+
}
|
|
5595
|
+
}
|
|
5596
|
+
}
|
|
5597
|
+
dispose() {
|
|
5598
|
+
if (this.dateRangePickerRef != null) {
|
|
5599
|
+
this.dateRangePickerRef.detach();
|
|
5600
|
+
this.dateRangePickerRef.dispose();
|
|
5601
|
+
this.dateRangePickerRef = null;
|
|
5602
|
+
}
|
|
5603
|
+
if (this.complete != null) {
|
|
5604
|
+
this.complete.next(true);
|
|
5605
|
+
this.complete.complete();
|
|
5606
|
+
}
|
|
5684
5607
|
}
|
|
5685
5608
|
}
|
|
5686
|
-
|
|
5687
|
-
|
|
5688
|
-
|
|
5609
|
+
DateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DateRangePickerComponent, deps: [{ token: i1$2.Overlay }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
5610
|
+
DateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: DateRangePickerComponent, selector: "fng-date-range-picker", inputs: { value: "value", disabled: "disabled", hint: "hint", error: "error", locale: "locale", format: "format", timezone: "timezone", options: "options", required: "required", width: "width" }, outputs: { fngChange: "fngChange", change: "change" }, host: { listeners: { "document:keydown": "hide($event)" }, properties: { "style.width": "this.width", "style.display": "this.display" } }, providers: [
|
|
5611
|
+
{
|
|
5612
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5613
|
+
useExisting: forwardRef(() => DateRangePickerComponent),
|
|
5614
|
+
multi: true
|
|
5615
|
+
}
|
|
5616
|
+
], viewQueries: [{ propertyName: "connector", first: true, predicate: ["connector"], descendants: true, static: true }], ngImport: i0, template: "<div #connector class=\"fng-date-range-picker\" (click)=\"toggle($event)\">\n <label class=\"fwe-input-text fwe-input-text-icon\">\n <i\n class=\"fwe-icon fwe-icon-time-calendar\"\n [class.fwe-color-hero]=\"dateRangePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></i>\n <div class=\"fng-date-range-picker-inputs\" [class.fng-date-range-picker-inputs--disabled]=\"disabled\">\n <input\n aria-label=\"picked start date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"fromDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n <input\n aria-label=\"picked end date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"toDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n </div>\n <span class=\"fwe-input-text-label\" [class.fwe-color-text-disabled]=\"disabled\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n </label>\n</div>\n", styles: [".fwe-border-hero{border-color:var(--fwe-hero)!important}.fng-date-range-picker:hover input{color:var(--fwe-hero)}.fng-date-range-picker-inputs{display:flex;order:2;position:relative}.fng-date-range-picker-inputs--disabled:after{color:var(--fwe-text-disabled)}.fng-date-range-picker-inputs:after{position:absolute;content:\"-\";left:50%;top:50%;transform:translate(-50%,-50%);padding-right:32px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5617
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
5689
5618
|
type: Component,
|
|
5690
|
-
args: [{ selector: 'fng-
|
|
5691
|
-
|
|
5619
|
+
args: [{ selector: 'fng-date-range-picker', providers: [
|
|
5620
|
+
{
|
|
5621
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5622
|
+
useExisting: forwardRef(() => DateRangePickerComponent),
|
|
5623
|
+
multi: true
|
|
5624
|
+
}
|
|
5625
|
+
], encapsulation: ViewEncapsulation.None, template: "<div #connector class=\"fng-date-range-picker\" (click)=\"toggle($event)\">\n <label class=\"fwe-input-text fwe-input-text-icon\">\n <i\n class=\"fwe-icon fwe-icon-time-calendar\"\n [class.fwe-color-hero]=\"dateRangePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></i>\n <div class=\"fng-date-range-picker-inputs\" [class.fng-date-range-picker-inputs--disabled]=\"disabled\">\n <input\n aria-label=\"picked start date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"fromDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n <input\n aria-label=\"picked end date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"toDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n </div>\n <span class=\"fwe-input-text-label\" [class.fwe-color-text-disabled]=\"disabled\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n </label>\n</div>\n", styles: [".fwe-border-hero{border-color:var(--fwe-hero)!important}.fng-date-range-picker:hover input{color:var(--fwe-hero)}.fng-date-range-picker-inputs{display:flex;order:2;position:relative}.fng-date-range-picker-inputs--disabled:after{color:var(--fwe-text-disabled)}.fng-date-range-picker-inputs:after{position:absolute;content:\"-\";left:50%;top:50%;transform:translate(-50%,-50%);padding-right:32px}\n"] }]
|
|
5626
|
+
}], ctorParameters: function () {
|
|
5627
|
+
return [{ type: i1$2.Overlay }, { type: undefined, decorators: [{
|
|
5628
|
+
type: Inject,
|
|
5629
|
+
args: [LOCALE_ID]
|
|
5630
|
+
}] }];
|
|
5631
|
+
}, propDecorators: { value: [{
|
|
5692
5632
|
type: Input
|
|
5693
|
-
}],
|
|
5633
|
+
}], disabled: [{
|
|
5694
5634
|
type: Input
|
|
5695
|
-
}],
|
|
5635
|
+
}], hint: [{
|
|
5696
5636
|
type: Input
|
|
5697
|
-
}],
|
|
5698
|
-
type: Output
|
|
5699
|
-
}], header: [{
|
|
5637
|
+
}], error: [{
|
|
5700
5638
|
type: Input
|
|
5701
|
-
}],
|
|
5639
|
+
}], locale: [{
|
|
5702
5640
|
type: Input
|
|
5703
|
-
}],
|
|
5641
|
+
}], format: [{
|
|
5704
5642
|
type: Input
|
|
5705
|
-
}],
|
|
5706
|
-
type: Output
|
|
5707
|
-
}], cancelLabel: [{
|
|
5643
|
+
}], timezone: [{
|
|
5708
5644
|
type: Input
|
|
5709
|
-
}],
|
|
5645
|
+
}], options: [{
|
|
5646
|
+
type: Input
|
|
5647
|
+
}], required: [{
|
|
5648
|
+
type: Input
|
|
5649
|
+
}], width: [{
|
|
5650
|
+
type: Input
|
|
5651
|
+
}, {
|
|
5652
|
+
type: HostBinding,
|
|
5653
|
+
args: ['style.width']
|
|
5654
|
+
}], display: [{
|
|
5655
|
+
type: HostBinding,
|
|
5656
|
+
args: ['style.display']
|
|
5657
|
+
}], fngChange: [{
|
|
5710
5658
|
type: Output
|
|
5659
|
+
}], change: [{
|
|
5660
|
+
type: Output
|
|
5661
|
+
}], connector: [{
|
|
5662
|
+
type: ViewChild,
|
|
5663
|
+
args: ['connector', { static: true }]
|
|
5664
|
+
}], hide: [{
|
|
5665
|
+
type: HostListener,
|
|
5666
|
+
args: ['document:keydown', ['$event']]
|
|
5711
5667
|
}] } });
|
|
5712
5668
|
|
|
5713
|
-
class
|
|
5669
|
+
class FestoAngularDatePickerModule {
|
|
5714
5670
|
}
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type:
|
|
5671
|
+
FestoAngularDatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5672
|
+
FestoAngularDatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularDatePickerModule, declarations: [DatePickerComponent, DateRangePickerComponent, FlatpickrComponent], imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], exports: [ReactiveFormsModule, FormsModule, DatePickerComponent, DateRangePickerComponent] });
|
|
5673
|
+
FestoAngularDatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularDatePickerModule, providers: [], imports: [[ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], ReactiveFormsModule, FormsModule] });
|
|
5674
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularDatePickerModule, decorators: [{
|
|
5719
5675
|
type: NgModule,
|
|
5720
5676
|
args: [{
|
|
5721
|
-
declarations: [
|
|
5722
|
-
imports: [
|
|
5723
|
-
exports: [
|
|
5677
|
+
declarations: [DatePickerComponent, DateRangePickerComponent, FlatpickrComponent],
|
|
5678
|
+
imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],
|
|
5679
|
+
exports: [ReactiveFormsModule, FormsModule, DatePickerComponent, DateRangePickerComponent],
|
|
5724
5680
|
providers: []
|
|
5725
5681
|
}]
|
|
5726
5682
|
}] });
|
|
5727
5683
|
|
|
5728
|
-
class
|
|
5729
|
-
constructor() {
|
|
5730
|
-
|
|
5731
|
-
this.
|
|
5732
|
-
this.
|
|
5733
|
-
this.
|
|
5684
|
+
class TextEditorComponent extends ValueAccessorBaseDirective {
|
|
5685
|
+
constructor(elementRef, renderer, domSanitizer) {
|
|
5686
|
+
super();
|
|
5687
|
+
this.elementRef = elementRef;
|
|
5688
|
+
this.renderer = renderer;
|
|
5689
|
+
this.domSanitizer = domSanitizer;
|
|
5690
|
+
this.defaultConfig = {
|
|
5691
|
+
toolbar: {
|
|
5692
|
+
bold: true,
|
|
5693
|
+
italic: true,
|
|
5694
|
+
underline: true,
|
|
5695
|
+
alignCenter: true,
|
|
5696
|
+
alignRight: true,
|
|
5697
|
+
bulletList: true,
|
|
5698
|
+
orderedList: true,
|
|
5699
|
+
image: true,
|
|
5700
|
+
link: true
|
|
5701
|
+
}
|
|
5702
|
+
};
|
|
5703
|
+
this.fngChange = new EventEmitter();
|
|
5704
|
+
this.change = new EventEmitter();
|
|
5705
|
+
this.config = this.defaultConfig;
|
|
5706
|
+
// needed to access editor content
|
|
5707
|
+
this.valueGetter = (editorElement) => {
|
|
5708
|
+
let html = editorElement.querySelector('.ql-editor').innerHTML;
|
|
5709
|
+
if (html === '<p><br></p>' || html === '<div><br></div>') {
|
|
5710
|
+
html = null;
|
|
5711
|
+
}
|
|
5712
|
+
return html;
|
|
5713
|
+
};
|
|
5714
|
+
// needed to access editor content
|
|
5715
|
+
this.valueSetter = (quillEditor, value) => {
|
|
5716
|
+
value = this.domSanitizer.sanitize(SecurityContext.HTML, value);
|
|
5717
|
+
value = this.handleWhitespace(value);
|
|
5718
|
+
return quillEditor.clipboard.convert(value);
|
|
5719
|
+
};
|
|
5720
|
+
}
|
|
5721
|
+
set value(value) {
|
|
5722
|
+
if (this.innerValue !== value) {
|
|
5723
|
+
this.innerValue = value;
|
|
5724
|
+
this.changed.forEach(f => {
|
|
5725
|
+
this.fngChange.emit(this.innerValue);
|
|
5726
|
+
this.change.emit(this.innerValue);
|
|
5727
|
+
return f(value);
|
|
5728
|
+
});
|
|
5729
|
+
}
|
|
5730
|
+
}
|
|
5731
|
+
get value() {
|
|
5732
|
+
return this.innerValue;
|
|
5733
|
+
}
|
|
5734
|
+
ngOnInit() {
|
|
5735
|
+
this.id = (Math.random() * Date.now()).toString().replace('.', '-');
|
|
5734
5736
|
}
|
|
5735
5737
|
ngAfterViewInit() {
|
|
5736
|
-
|
|
5737
|
-
|
|
5738
|
+
this.editorElem = this.elementRef.nativeElement.querySelector(`#editor-${this.id}`);
|
|
5739
|
+
this.quillEditor = new QuillType(this.editorElem, {
|
|
5740
|
+
modules: Object.assign({ toolbar: `#editor-toolbar-${this.id}` }, this.modules),
|
|
5741
|
+
theme: 'snow',
|
|
5742
|
+
scrollingContainer: `#editor-container-${this.id}`
|
|
5743
|
+
});
|
|
5744
|
+
this.setEditorLabel();
|
|
5745
|
+
this.addWhitespaceMatcher();
|
|
5746
|
+
this.addImageMatcher();
|
|
5747
|
+
if (this.innerValue) {
|
|
5748
|
+
const content = this.valueSetter(this.quillEditor, this.innerValue);
|
|
5749
|
+
this.quillEditor.setContents(content, 'silent');
|
|
5750
|
+
this.quillEditor.getModule('history').clear();
|
|
5751
|
+
}
|
|
5752
|
+
this.handle();
|
|
5753
|
+
this.quillEditor.on('text-change', () => {
|
|
5754
|
+
this.value = this.valueGetter(this.editorElem);
|
|
5755
|
+
});
|
|
5756
|
+
}
|
|
5757
|
+
ngOnChanges(changes) {
|
|
5758
|
+
var _a, _b;
|
|
5759
|
+
if (((_a = changes === null || changes === void 0 ? void 0 : changes.config) === null || _a === void 0 ? void 0 : _a.currentValue) != null) {
|
|
5760
|
+
this.config = { toolbar: Object.assign(Object.assign({}, this.defaultConfig.toolbar), (_b = changes.config.currentValue) === null || _b === void 0 ? void 0 : _b.toolbar) };
|
|
5738
5761
|
}
|
|
5762
|
+
if (!this.quillEditor) {
|
|
5763
|
+
return;
|
|
5764
|
+
}
|
|
5765
|
+
this.handle();
|
|
5739
5766
|
}
|
|
5740
|
-
|
|
5741
|
-
if (
|
|
5742
|
-
|
|
5767
|
+
writeValue(value) {
|
|
5768
|
+
if (value === null || value === '') {
|
|
5769
|
+
return;
|
|
5770
|
+
}
|
|
5771
|
+
this.innerValue = value;
|
|
5772
|
+
if (!this.quillEditor) {
|
|
5773
|
+
return;
|
|
5743
5774
|
}
|
|
5775
|
+
const content = this.valueSetter(this.quillEditor, value);
|
|
5776
|
+
this.quillEditor.setContents(content);
|
|
5744
5777
|
}
|
|
5745
|
-
|
|
5746
|
-
this.
|
|
5778
|
+
setDisabledState(isDisabled = this.disabled) {
|
|
5779
|
+
this.disabled = isDisabled;
|
|
5780
|
+
if (this.quillEditor) {
|
|
5781
|
+
if (isDisabled) {
|
|
5782
|
+
this.quillEditor.disable();
|
|
5783
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', 'disabled');
|
|
5784
|
+
}
|
|
5785
|
+
else {
|
|
5786
|
+
if (!this.readOnly) {
|
|
5787
|
+
this.quillEditor.enable();
|
|
5788
|
+
}
|
|
5789
|
+
this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');
|
|
5790
|
+
}
|
|
5791
|
+
}
|
|
5747
5792
|
}
|
|
5748
|
-
|
|
5749
|
-
this.
|
|
5793
|
+
setReadOnlyState() {
|
|
5794
|
+
this.quillEditor.enable(!this.readOnly);
|
|
5750
5795
|
}
|
|
5751
|
-
|
|
5752
|
-
|
|
5753
|
-
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5763
|
-
|
|
5764
|
-
|
|
5765
|
-
|
|
5766
|
-
|
|
5767
|
-
|
|
5768
|
-
|
|
5769
|
-
|
|
5770
|
-
|
|
5771
|
-
|
|
5772
|
-
|
|
5773
|
-
|
|
5774
|
-
|
|
5775
|
-
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
}], action: [{
|
|
5794
|
-
type: Output
|
|
5795
|
-
}], blockDisplay: [{
|
|
5796
|
-
type: HostBinding,
|
|
5797
|
-
args: ['style.display']
|
|
5798
|
-
}], animationState: [{
|
|
5799
|
-
type: HostBinding,
|
|
5800
|
-
args: ['@appearDisappear']
|
|
5801
|
-
}] } });
|
|
5802
|
-
|
|
5803
|
-
class SnackbarService {
|
|
5804
|
-
constructor() {
|
|
5805
|
-
this.snacks = new Subject();
|
|
5806
|
-
this.snacks$ = this.snacks.asObservable();
|
|
5796
|
+
delegate(event, action) {
|
|
5797
|
+
let btn = null;
|
|
5798
|
+
switch (action) {
|
|
5799
|
+
case 'bold':
|
|
5800
|
+
btn = this.btnBold.nativeElement;
|
|
5801
|
+
btn.click();
|
|
5802
|
+
break;
|
|
5803
|
+
case 'italic':
|
|
5804
|
+
btn = this.btnItalic.nativeElement;
|
|
5805
|
+
btn.click();
|
|
5806
|
+
break;
|
|
5807
|
+
case 'underline':
|
|
5808
|
+
btn = this.btnUnderline.nativeElement;
|
|
5809
|
+
btn.click();
|
|
5810
|
+
break;
|
|
5811
|
+
case 'align-center':
|
|
5812
|
+
btn = this.btnAlignCenter.nativeElement;
|
|
5813
|
+
btn.click();
|
|
5814
|
+
break;
|
|
5815
|
+
case 'align-right':
|
|
5816
|
+
btn = this.btnAlignRight.nativeElement;
|
|
5817
|
+
btn.click();
|
|
5818
|
+
break;
|
|
5819
|
+
case 'link':
|
|
5820
|
+
btn = this.btnLink.nativeElement;
|
|
5821
|
+
btn.click();
|
|
5822
|
+
break;
|
|
5823
|
+
case 'ul':
|
|
5824
|
+
btn = this.btnUl.nativeElement;
|
|
5825
|
+
btn.click();
|
|
5826
|
+
break;
|
|
5827
|
+
case 'ol':
|
|
5828
|
+
btn = this.btnOl.nativeElement;
|
|
5829
|
+
btn.click();
|
|
5830
|
+
break;
|
|
5831
|
+
case 'image':
|
|
5832
|
+
btn = this.btnImage.nativeElement;
|
|
5833
|
+
btn.click();
|
|
5834
|
+
break;
|
|
5835
|
+
default:
|
|
5836
|
+
break;
|
|
5837
|
+
}
|
|
5807
5838
|
}
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
});
|
|
5839
|
+
currentLength() {
|
|
5840
|
+
var _a;
|
|
5841
|
+
return (_a = this.value) === null || _a === void 0 ? void 0 : _a.length;
|
|
5812
5842
|
}
|
|
5813
|
-
|
|
5814
|
-
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5843
|
+
hideDivider(name) {
|
|
5844
|
+
const linkOrImage = this.config.toolbar.image || this.config.toolbar.link;
|
|
5845
|
+
const lists = this.config.toolbar.bulletList || this.config.toolbar.orderedList;
|
|
5846
|
+
const typos = this.config.toolbar.bold || this.config.toolbar.italic || this.config.toolbar.underline;
|
|
5847
|
+
const textAlign = this.config.toolbar.alignCenter || this.config.toolbar.alignRight;
|
|
5848
|
+
switch (name) {
|
|
5849
|
+
case 'typo':
|
|
5850
|
+
return !typos || (!textAlign && !linkOrImage && !lists);
|
|
5851
|
+
case 'text-align':
|
|
5852
|
+
return !textAlign || (!linkOrImage && !lists);
|
|
5853
|
+
case 'lists':
|
|
5854
|
+
return !lists || !linkOrImage;
|
|
5855
|
+
case 'image':
|
|
5856
|
+
return !this.config.toolbar.image || !this.config.toolbar.link;
|
|
5857
|
+
default:
|
|
5858
|
+
break;
|
|
5859
|
+
}
|
|
5830
5860
|
}
|
|
5831
|
-
|
|
5832
|
-
|
|
5861
|
+
setEditorLabel() {
|
|
5862
|
+
const editorDiv = this.elementRef.nativeElement.querySelector('.ql-editor');
|
|
5863
|
+
this.renderer.setAttribute(editorDiv, 'role', 'textbox');
|
|
5864
|
+
this.renderer.setAttribute(editorDiv, 'aria-labelledby', `editor-label-${this.id}`);
|
|
5865
|
+
this.renderer.setAttribute(editorDiv, 'aria-multiline', 'true');
|
|
5833
5866
|
}
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
snack.complete.next(true);
|
|
5838
|
-
snack.complete.complete();
|
|
5839
|
-
snack.complete.unsubscribe();
|
|
5840
|
-
});
|
|
5841
|
-
}
|
|
5842
|
-
if (this.snacksSub != null) {
|
|
5843
|
-
this.snacksSub.unsubscribe();
|
|
5844
|
-
}
|
|
5867
|
+
handle() {
|
|
5868
|
+
this.setReadOnlyState();
|
|
5869
|
+
this.setDisabledState();
|
|
5845
5870
|
}
|
|
5846
|
-
|
|
5847
|
-
|
|
5848
|
-
|
|
5849
|
-
|
|
5850
|
-
|
|
5851
|
-
|
|
5852
|
-
|
|
5853
|
-
componentInstance.close.pipe(takeUntil(complete)).subscribe(() => {
|
|
5854
|
-
this.remove(snackbarRef);
|
|
5855
|
-
if (snackDescription.closeCallback) {
|
|
5856
|
-
snackDescription.closeCallback();
|
|
5857
|
-
}
|
|
5858
|
-
});
|
|
5859
|
-
componentInstance.action.pipe(takeUntil(complete)).subscribe(() => {
|
|
5860
|
-
if (componentInstance.data.closeOnAction) {
|
|
5861
|
-
this.remove(snackbarRef);
|
|
5862
|
-
}
|
|
5863
|
-
if (snackDescription.actionCallback) {
|
|
5864
|
-
snackDescription.actionCallback();
|
|
5865
|
-
}
|
|
5871
|
+
addWhitespaceMatcher() {
|
|
5872
|
+
// set up a matcher that replaces placeholder ###tab### with \t in delta again
|
|
5873
|
+
this.quillEditor.clipboard.addMatcher('p', (_node, delta) => {
|
|
5874
|
+
let str = JSON.stringify(delta);
|
|
5875
|
+
str = str.replace(/###tab###/g, '\\t');
|
|
5876
|
+
delta = JSON.parse(str);
|
|
5877
|
+
return delta;
|
|
5866
5878
|
});
|
|
5867
|
-
this.snacks.push(snackbarRef);
|
|
5868
|
-
snackDescription.resolve(snackbarRef.componentRef);
|
|
5869
5879
|
}
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
if (
|
|
5875
|
-
|
|
5876
|
-
if (deletedSnackbar.complete != null) {
|
|
5877
|
-
deletedSnackbar.complete.next(true);
|
|
5878
|
-
deletedSnackbar.complete.complete();
|
|
5879
|
-
deletedSnackbar.complete.unsubscribe();
|
|
5880
|
-
}
|
|
5881
|
-
if (deletedSnackbar.componentRef != null) {
|
|
5882
|
-
deletedSnackbar.componentRef.destroy();
|
|
5883
|
-
}
|
|
5880
|
+
addImageMatcher() {
|
|
5881
|
+
// set up a matcher that does allow/disallow to paste images corresponding to config settings
|
|
5882
|
+
this.quillEditor.clipboard.addMatcher('img', (_node, delta) => {
|
|
5883
|
+
// allowed, passthru delta
|
|
5884
|
+
if (this.config.toolbar.image === true) {
|
|
5885
|
+
return delta;
|
|
5884
5886
|
}
|
|
5885
|
-
|
|
5887
|
+
// not allowed, remove image by setting up a new delta
|
|
5888
|
+
const Delta = QuillType.import('quill-delta');
|
|
5889
|
+
return new Delta().insert('');
|
|
5890
|
+
});
|
|
5886
5891
|
}
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
5890
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerDirective, decorators: [{
|
|
5891
|
-
type: Directive,
|
|
5892
|
-
args: [{
|
|
5893
|
-
selector: '[fngSnackbarContainer]'
|
|
5894
|
-
}]
|
|
5895
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: SnackbarService }]; }, propDecorators: { fngSnackbarContainer: [{
|
|
5896
|
-
type: Input
|
|
5897
|
-
}] } });
|
|
5898
|
-
|
|
5899
|
-
class SnackbarContainerComponent {
|
|
5900
|
-
constructor() {
|
|
5901
|
-
this.config = {
|
|
5902
|
-
darkBackground: true,
|
|
5903
|
-
disappearAfter: 5000,
|
|
5904
|
-
closeOnAction: true
|
|
5905
|
-
};
|
|
5892
|
+
handleWhitespace(value) {
|
|
5893
|
+
// set a placeholder for tab entity to avoid that quill removes it
|
|
5894
|
+
return value.replace(/	/gi, '###tab###');
|
|
5906
5895
|
}
|
|
5907
5896
|
}
|
|
5908
|
-
|
|
5909
|
-
|
|
5910
|
-
|
|
5897
|
+
TextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TextEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
5898
|
+
TextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TextEditorComponent, selector: "fng-text-editor", inputs: { config: "config", modules: "modules", label: "label", readOnly: "readOnly", maxLength: "maxLength", error: "error", hint: "hint", value: "value" }, outputs: { fngChange: "fngChange", change: "change" }, providers: [
|
|
5899
|
+
{
|
|
5900
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5901
|
+
useExisting: forwardRef(() => TextEditorComponent),
|
|
5902
|
+
multi: true
|
|
5903
|
+
}
|
|
5904
|
+
], viewQueries: [{ propertyName: "btnBold", first: true, predicate: ["btnBold"], descendants: true }, { propertyName: "btnItalic", first: true, predicate: ["btnItalic"], descendants: true }, { propertyName: "btnUnderline", first: true, predicate: ["btnUnderline"], descendants: true }, { propertyName: "btnAlignCenter", first: true, predicate: ["btnAlignCenter"], descendants: true }, { propertyName: "btnAlignRight", first: true, predicate: ["btnAlignRight"], descendants: true }, { propertyName: "btnLink", first: true, predicate: ["btnLink"], descendants: true }, { propertyName: "btnUl", first: true, predicate: ["btnUl"], descendants: true }, { propertyName: "btnOl", first: true, predicate: ["btnOl"], descendants: true }, { propertyName: "btnImage", first: true, predicate: ["btnImage"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"fwe-input-text\" [class.fwe-disabled]=\"disabled\">\n <div class=\"fng-editor-toolbar\" [id]=\"'editor-toolbar-' + id\">\n <span class=\"ql-formats fwe-d-none\">\n <select class=\"ql-size\" aria-hidden=\"true\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n <span class=\"ql-formats fng-editor-toolbar-buttons-container fwe-mr-3\">\n <ng-container *ngIf=\"config?.toolbar?.bold\">\n <button type=\"button\" #btnBold class=\"ql-bold fwe-d-none action-bold\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline || config?.toolbar?.italic\"\n (click)=\"delegate($event, 'bold')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-bold\">B</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.italic\">\n <button type=\"button\" #btnItalic class=\"ql-italic fwe-d-none action-italic\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline\"\n (click)=\"delegate($event, 'italic')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-italic\">I</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.underline\">\n <button type=\"button\" #btnUnderline class=\"ql-underline fwe-d-none action-underline\" aria-hidden=\"true\"></button>\n <button type=\"button\" class=\"fwe-btn fng-button\" (click)=\"delegate($event, 'underline')\" [disabled]=\"disabled\">\n <div class=\"fng-button-text fng-text-underline\">U</div>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('typo')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.alignCenter\">\n <button type=\"button\" #btnAlignCenter class=\"ql-align fwe-d-none action-align-center\" aria-hidden=\"true\" value=\"center\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.alignRight\"\n (click)=\"delegate($event, 'align-center')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-center fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"config?.toolbar?.alignRight\">\n <button type=\"button\" #btnAlignRight class=\"ql-align fwe-d-none action-align-right\" aria-hidden=\"true\" value=\"right\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n (click)=\"delegate($event, 'align-right')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-right fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('text-align')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.bulletList\">\n <button type=\"button\" #btnUl class=\"ql-list fwe-d-none action-ul\" aria-hidden=\"true\" value=\"bullet\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.orderedList\"\n (click)=\"delegate($event, 'ul')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-list-list-view fwe-pr-0\"></i>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.orderedList\">\n <button type=\"button\" #btnOl class=\"ql-list fwe-d-none action-ol\" aria-hidden=\"true\" value=\"ordered\"></button>\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'ol')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-enumeration fwe-pr-0\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('lists')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.image\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'image')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-image-image fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnImage class=\"ql-image fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('image')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.link\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'link')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-file-link fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnLink class=\"ql-link fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n </span>\n </div>\n <div class=\"fng-editor-container\" [id]=\"'editor-container-' + id\">\n <div class=\"fng-editor\" [id]=\"'editor-' + id\"></div>\n </div>\n <span class=\"fwe-input-text-label\" [id]=\"'editor-label-' + id\">{{ label }}</span>\n <span *ngIf=\"hint\" class=\"fng-text-editor-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fng-text-editor-invalid\">{{ error }}</span>\n <span *ngIf=\"maxLength > 0 && value != null\" class=\"fwe-input-text-count\">{{ currentLength() }} / {{ maxLength }}</span>\n</label>\n", styles: ["@charset \"UTF-8\";/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:\"\";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:\"\";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=\"\"]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:\"Sans Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:\"Small\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:\"Large\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:\"Visit URL:\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:\"Edit\";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:\"Remove\";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;content:\"Save\";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:\"Enter link:\"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:\"Enter formula:\"}.ql-snow .ql-tooltip[data-mode=video]:before{content:\"Enter video:\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}fng-text-editor .fng-divider-y{display:inline-flex;flex:0 0 1px;height:24px;width:1px;background-color:var(--fwe-gray-400)}fng-text-editor .fng-editor{min-height:100%}fng-text-editor .fng-editor-container{order:2;height:160px;min-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) var(--fwe-gray-100);padding-top:4px;padding-bottom:4px;padding-left:8px;border:var(--fwe-control-border) solid 1px}fng-text-editor .fng-editor-container::-webkit-scrollbar{width:12px}fng-text-editor .fng-editor-container::-webkit-scrollbar-track{background:transparent}fng-text-editor .fng-editor-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:6px}fng-text-editor .fng-editor-container:hover{border-color:var(--fwe-hero)}fng-text-editor .fng-editor-container[contenteditable=true]{outline:none}fng-text-editor .fng-editor-container[contenteditable=true]:focus{border-color:var(--fwe-hero)}fng-text-editor label.fwe-input-text{line-height:24px}fng-text-editor label.fwe-input-text .fwe-input-text-count{display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;right:0;bottom:0;z-index:1;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text .fwe-input-text-label{order:-1}fng-text-editor label.fwe-input-text .fng-text-editor-info{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;left:0;top:unset;bottom:0;z-index:2;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text.fwe-disabled{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fwe-input-text-label{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container:hover{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-divider-y{background-color:var(--fwe-text-disabled)}fng-text-editor .fng-text-editor-invalid{display:none;line-height:1.5;position:absolute;left:0;bottom:0;z-index:2;color:var(--fwe-red);font-size:var(--fwe-font-size-small)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor{box-shadow:none;outline:none}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info:after{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor-container{border-color:var(--fwe-red)}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-info{display:none!important}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-invalid{display:block!important}fng-text-editor .fng-text-bold{font-weight:var(--fwe-font-weight-bold)}fng-text-editor .fng-text-italic{font-style:italic}fng-text-editor .fng-text-underline{text-decoration:underline}fng-text-editor .fng-icon-text-align-center{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-center.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .ql-tooltip{z-index:var(--fwe-z-index-tooltip)}fng-text-editor .ql-editor{font-family:var(--fwe-font-family-sans-serif);font-size:var(--fwe-font-size-base);padding:0;min-height:72px;overflow-x:hidden}fng-text-editor .ql-editor p::selection,fng-text-editor .ql-editor strong::selection,fng-text-editor .ql-editor em::selection,fng-text-editor .ql-editor u::selection,fng-text-editor .ql-editor ul::selection,fng-text-editor .ql-editor ol::selection,fng-text-editor .ql-editor li::selection,fng-text-editor .ql-editor a::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow{border:0;background-color:var(--fwe-white)}fng-text-editor .ql-container.ql-snow .ql-tooltip{transform:translate(160px,12px);color:var(--fwe-black);box-shadow:-1px 1px 4px -1px #3333;border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input{border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow a{color:var(--fwe-caerul)}fng-text-editor .ql-toolbar.ql-snow{border:0;padding:4px 0}fng-text-editor .ql-toolbar.ql-snow .ql-formats.fng-editor-toolbar-buttons-container{display:flex;align-items:center;flex-wrap:wrap}fng-text-editor .ql-toolbar.ql-snow button{line-height:normal;box-sizing:border-box;display:inline-flex;text-align:center;padding:0 8px;height:32px;min-height:unset;color:var(--fwe-black);background:none;border-radius:4px;cursor:pointer;border:none;width:unset;max-width:24px;justify-content:center;align-items:center;float:unset}@media (hover: hover) and (pointer: fine){fng-text-editor .ql-toolbar.ql-snow button:hover{background-color:var(--fwe-control-dark);color:var(--fwe-black)}}fng-text-editor .ql-toolbar.ql-snow button:active{background-color:var(--fwe-control-darker)}fng-text-editor .ql-toolbar.ql-snow button.ql-active+button{background-color:var(--fwe-control)}fng-text-editor .ql-toolbar.ql-snow button.fng-btn-toolbar-list{padding:0 6px}fng-text-editor .ql-toolbar.ql-snow button.fng-button i{pointer-events:none}fng-text-editor .ql-toolbar.ql-snow button.fng-button div{pointer-events:none}fng-text-editor .ql-toolbar .fng-button-text{min-width:12px;line-height:16px}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar{pointer-events:none}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar button{color:var(--fwe-text-disabled)}\n"], directives: [{ type: i1$4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5905
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TextEditorComponent, decorators: [{
|
|
5911
5906
|
type: Component,
|
|
5912
|
-
args: [{ selector: 'fng-
|
|
5913
|
-
|
|
5907
|
+
args: [{ selector: 'fng-text-editor', encapsulation: ViewEncapsulation.None, providers: [
|
|
5908
|
+
{
|
|
5909
|
+
provide: NG_VALUE_ACCESSOR,
|
|
5910
|
+
useExisting: forwardRef(() => TextEditorComponent),
|
|
5911
|
+
multi: true
|
|
5912
|
+
}
|
|
5913
|
+
], template: "<label class=\"fwe-input-text\" [class.fwe-disabled]=\"disabled\">\n <div class=\"fng-editor-toolbar\" [id]=\"'editor-toolbar-' + id\">\n <span class=\"ql-formats fwe-d-none\">\n <select class=\"ql-size\" aria-hidden=\"true\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n <span class=\"ql-formats fng-editor-toolbar-buttons-container fwe-mr-3\">\n <ng-container *ngIf=\"config?.toolbar?.bold\">\n <button type=\"button\" #btnBold class=\"ql-bold fwe-d-none action-bold\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline || config?.toolbar?.italic\"\n (click)=\"delegate($event, 'bold')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-bold\">B</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.italic\">\n <button type=\"button\" #btnItalic class=\"ql-italic fwe-d-none action-italic\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline\"\n (click)=\"delegate($event, 'italic')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-italic\">I</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.underline\">\n <button type=\"button\" #btnUnderline class=\"ql-underline fwe-d-none action-underline\" aria-hidden=\"true\"></button>\n <button type=\"button\" class=\"fwe-btn fng-button\" (click)=\"delegate($event, 'underline')\" [disabled]=\"disabled\">\n <div class=\"fng-button-text fng-text-underline\">U</div>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('typo')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.alignCenter\">\n <button type=\"button\" #btnAlignCenter class=\"ql-align fwe-d-none action-align-center\" aria-hidden=\"true\" value=\"center\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.alignRight\"\n (click)=\"delegate($event, 'align-center')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-center fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"config?.toolbar?.alignRight\">\n <button type=\"button\" #btnAlignRight class=\"ql-align fwe-d-none action-align-right\" aria-hidden=\"true\" value=\"right\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n (click)=\"delegate($event, 'align-right')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-right fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('text-align')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.bulletList\">\n <button type=\"button\" #btnUl class=\"ql-list fwe-d-none action-ul\" aria-hidden=\"true\" value=\"bullet\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.orderedList\"\n (click)=\"delegate($event, 'ul')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-list-list-view fwe-pr-0\"></i>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.orderedList\">\n <button type=\"button\" #btnOl class=\"ql-list fwe-d-none action-ol\" aria-hidden=\"true\" value=\"ordered\"></button>\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'ol')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-enumeration fwe-pr-0\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('lists')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.image\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'image')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-image-image fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnImage class=\"ql-image fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('image')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.link\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'link')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-file-link fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnLink class=\"ql-link fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n </span>\n </div>\n <div class=\"fng-editor-container\" [id]=\"'editor-container-' + id\">\n <div class=\"fng-editor\" [id]=\"'editor-' + id\"></div>\n </div>\n <span class=\"fwe-input-text-label\" [id]=\"'editor-label-' + id\">{{ label }}</span>\n <span *ngIf=\"hint\" class=\"fng-text-editor-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fng-text-editor-invalid\">{{ error }}</span>\n <span *ngIf=\"maxLength > 0 && value != null\" class=\"fwe-input-text-count\">{{ currentLength() }} / {{ maxLength }}</span>\n</label>\n", styles: ["@charset \"UTF-8\";/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"\\2022\"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"\\2611\"}.ql-editor ul[data-checked=false]>li:before{content:\"\\2610\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:\"\";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:\"\";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=\"\"]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:\"Sans Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:\"Normal\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:\"Small\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:\"Large\"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:\"Visit URL:\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:\"Edit\";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:\"Remove\";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;content:\"Save\";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:\"Enter link:\"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:\"Enter formula:\"}.ql-snow .ql-tooltip[data-mode=video]:before{content:\"Enter video:\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}fng-text-editor .fng-divider-y{display:inline-flex;flex:0 0 1px;height:24px;width:1px;background-color:var(--fwe-gray-400)}fng-text-editor .fng-editor{min-height:100%}fng-text-editor .fng-editor-container{order:2;height:160px;min-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) var(--fwe-gray-100);padding-top:4px;padding-bottom:4px;padding-left:8px;border:var(--fwe-control-border) solid 1px}fng-text-editor .fng-editor-container::-webkit-scrollbar{width:12px}fng-text-editor .fng-editor-container::-webkit-scrollbar-track{background:transparent}fng-text-editor .fng-editor-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:6px}fng-text-editor .fng-editor-container:hover{border-color:var(--fwe-hero)}fng-text-editor .fng-editor-container[contenteditable=true]{outline:none}fng-text-editor .fng-editor-container[contenteditable=true]:focus{border-color:var(--fwe-hero)}fng-text-editor label.fwe-input-text{line-height:24px}fng-text-editor label.fwe-input-text .fwe-input-text-count{display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;right:0;bottom:0;z-index:1;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text .fwe-input-text-label{order:-1}fng-text-editor label.fwe-input-text .fng-text-editor-info{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:var(--fwe-line-height-base);position:absolute;left:0;top:unset;bottom:0;z-index:2;color:var(--fwe-text-disabled);font-size:var(--fwe-font-size-small)}fng-text-editor label.fwe-input-text.fwe-disabled{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fwe-input-text-label{color:var(--fwe-text-disabled)}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-editor-container:hover{border-color:var(--fwe-control-disabled)!important}fng-text-editor label.fwe-input-text.fwe-disabled .fng-divider-y{background-color:var(--fwe-text-disabled)}fng-text-editor .fng-text-editor-invalid{display:none;line-height:1.5;position:absolute;left:0;bottom:0;z-index:2;color:var(--fwe-red);font-size:var(--fwe-font-size-small)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor{box-shadow:none;outline:none}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fwe-input-text-label:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-invalid:after,fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor:disabled~.fng-text-editor-info:after{color:var(--fwe-text-disabled)}fng-text-editor.ng-dirty.ng-invalid label.fwe-input-text .fng-editor-container{border-color:var(--fwe-red)}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-info{display:none!important}fng-text-editor.ng-dirty.ng-invalid .fng-text-editor-invalid{display:block!important}fng-text-editor .fng-text-bold{font-weight:var(--fwe-font-weight-bold)}fng-text-editor .fng-text-italic{font-style:italic}fng-text-editor .fng-text-underline{text-decoration:underline}fng-text-editor .fng-icon-text-align-center{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-center.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M5,7h6V9H5Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right{width:12px;height:10px;background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(51, 51, 51)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .fng-icon-text-align-right.fng-gray{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"10\" fill=\"rgb(185, 186, 187)\" viewBox=\"0 0 12 10\"><path d=\"M2,3H14V5H2Z\" transform=\"translate(-2 -3)\"/><path d=\"M8,7h6V9H8Z\" transform=\"translate(-2 -3)\"/><path d=\"M2,11H14v2H2Z\" transform=\"translate(-2 -3)\"/></svg>')}fng-text-editor .ql-tooltip{z-index:var(--fwe-z-index-tooltip)}fng-text-editor .ql-editor{font-family:var(--fwe-font-family-sans-serif);font-size:var(--fwe-font-size-base);padding:0;min-height:72px;overflow-x:hidden}fng-text-editor .ql-editor p::selection,fng-text-editor .ql-editor strong::selection,fng-text-editor .ql-editor em::selection,fng-text-editor .ql-editor u::selection,fng-text-editor .ql-editor ul::selection,fng-text-editor .ql-editor ol::selection,fng-text-editor .ql-editor li::selection,fng-text-editor .ql-editor a::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow{border:0;background-color:var(--fwe-white)}fng-text-editor .ql-container.ql-snow .ql-tooltip{transform:translate(160px,12px);color:var(--fwe-black);box-shadow:-1px 1px 4px -1px #3333;border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input{border:1px solid var(--fwe-gray-200)}fng-text-editor .ql-container.ql-snow .ql-tooltip input::selection{background:var(--fwe-icon-hero-light)}fng-text-editor .ql-container.ql-snow a{color:var(--fwe-caerul)}fng-text-editor .ql-toolbar.ql-snow{border:0;padding:4px 0}fng-text-editor .ql-toolbar.ql-snow .ql-formats.fng-editor-toolbar-buttons-container{display:flex;align-items:center;flex-wrap:wrap}fng-text-editor .ql-toolbar.ql-snow button{line-height:normal;box-sizing:border-box;display:inline-flex;text-align:center;padding:0 8px;height:32px;min-height:unset;color:var(--fwe-black);background:none;border-radius:4px;cursor:pointer;border:none;width:unset;max-width:24px;justify-content:center;align-items:center;float:unset}@media (hover: hover) and (pointer: fine){fng-text-editor .ql-toolbar.ql-snow button:hover{background-color:var(--fwe-control-dark);color:var(--fwe-black)}}fng-text-editor .ql-toolbar.ql-snow button:active{background-color:var(--fwe-control-darker)}fng-text-editor .ql-toolbar.ql-snow button.ql-active+button{background-color:var(--fwe-control)}fng-text-editor .ql-toolbar.ql-snow button.fng-btn-toolbar-list{padding:0 6px}fng-text-editor .ql-toolbar.ql-snow button.fng-button i{pointer-events:none}fng-text-editor .ql-toolbar.ql-snow button.fng-button div{pointer-events:none}fng-text-editor .ql-toolbar .fng-button-text{min-width:12px;line-height:16px}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar{pointer-events:none}fng-text-editor label.fwe-input-text.fwe-disabled .ql-toolbar button{color:var(--fwe-text-disabled)}\n"] }]
|
|
5914
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$3.DomSanitizer }]; }, propDecorators: { btnBold: [{
|
|
5915
|
+
type: ViewChild,
|
|
5916
|
+
args: ['btnBold']
|
|
5917
|
+
}], btnItalic: [{
|
|
5918
|
+
type: ViewChild,
|
|
5919
|
+
args: ['btnItalic']
|
|
5920
|
+
}], btnUnderline: [{
|
|
5921
|
+
type: ViewChild,
|
|
5922
|
+
args: ['btnUnderline']
|
|
5923
|
+
}], btnAlignCenter: [{
|
|
5924
|
+
type: ViewChild,
|
|
5925
|
+
args: ['btnAlignCenter']
|
|
5926
|
+
}], btnAlignRight: [{
|
|
5927
|
+
type: ViewChild,
|
|
5928
|
+
args: ['btnAlignRight']
|
|
5929
|
+
}], btnLink: [{
|
|
5930
|
+
type: ViewChild,
|
|
5931
|
+
args: ['btnLink']
|
|
5932
|
+
}], btnUl: [{
|
|
5933
|
+
type: ViewChild,
|
|
5934
|
+
args: ['btnUl']
|
|
5935
|
+
}], btnOl: [{
|
|
5936
|
+
type: ViewChild,
|
|
5937
|
+
args: ['btnOl']
|
|
5938
|
+
}], btnImage: [{
|
|
5939
|
+
type: ViewChild,
|
|
5940
|
+
args: ['btnImage']
|
|
5941
|
+
}], fngChange: [{
|
|
5942
|
+
type: Output
|
|
5943
|
+
}], change: [{
|
|
5944
|
+
type: Output
|
|
5945
|
+
}], config: [{
|
|
5914
5946
|
type: Input
|
|
5915
|
-
}]
|
|
5916
|
-
|
|
5917
|
-
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
|
|
5921
|
-
|
|
5922
|
-
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
providers: [],
|
|
5929
|
-
bootstrap: [SnackbarComponent]
|
|
5930
|
-
}]
|
|
5931
|
-
}] });
|
|
5932
|
-
|
|
5933
|
-
/**
|
|
5934
|
-
* An icon component.
|
|
5935
|
-
*/
|
|
5936
|
-
class IconComponent {
|
|
5937
|
-
}
|
|
5938
|
-
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5939
|
-
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IconComponent, selector: "fng-icon", inputs: { icon: "icon" }, ngImport: i0, template: "<i *ngIf=\"icon?.type === 'font'\" [class]=\"'fwe-icon fwe-icon-' + icon?.name + ' ' + (icon.class || '')\"></i>\n<img\n *ngIf=\"icon?.type === 'img'\"\n [class]=\"icon.class\"\n [src]=\"icon?.url\"\n [ngStyle]=\"{ width: icon?.width + 'px', height: icon?.height + 'px' }\"\n/>\n<ng-content *ngIf=\"icon?.type === 'svg'\"></ng-content>\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5940
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IconComponent, decorators: [{
|
|
5941
|
-
type: Component,
|
|
5942
|
-
args: [{ selector: 'fng-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<i *ngIf=\"icon?.type === 'font'\" [class]=\"'fwe-icon fwe-icon-' + icon?.name + ' ' + (icon.class || '')\"></i>\n<img\n *ngIf=\"icon?.type === 'img'\"\n [class]=\"icon.class\"\n [src]=\"icon?.url\"\n [ngStyle]=\"{ width: icon?.width + 'px', height: icon?.height + 'px' }\"\n/>\n<ng-content *ngIf=\"icon?.type === 'svg'\"></ng-content>\n", styles: [""] }]
|
|
5943
|
-
}], propDecorators: { icon: [{
|
|
5947
|
+
}], modules: [{
|
|
5948
|
+
type: Input
|
|
5949
|
+
}], label: [{
|
|
5950
|
+
type: Input
|
|
5951
|
+
}], readOnly: [{
|
|
5952
|
+
type: Input
|
|
5953
|
+
}], maxLength: [{
|
|
5954
|
+
type: Input
|
|
5955
|
+
}], error: [{
|
|
5956
|
+
type: Input
|
|
5957
|
+
}], hint: [{
|
|
5958
|
+
type: Input
|
|
5959
|
+
}], value: [{
|
|
5944
5960
|
type: Input
|
|
5945
5961
|
}] } });
|
|
5946
5962
|
|
|
5947
|
-
class
|
|
5963
|
+
class FestoAngularTextEditorModule {
|
|
5948
5964
|
}
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type:
|
|
5965
|
+
FestoAngularTextEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5966
|
+
FestoAngularTextEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularTextEditorModule, declarations: [TextEditorComponent], imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], exports: [ReactiveFormsModule, FormsModule, TextEditorComponent] });
|
|
5967
|
+
FestoAngularTextEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularTextEditorModule, providers: [], imports: [[ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], ReactiveFormsModule, FormsModule] });
|
|
5968
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularTextEditorModule, decorators: [{
|
|
5953
5969
|
type: NgModule,
|
|
5954
5970
|
args: [{
|
|
5955
|
-
declarations: [
|
|
5956
|
-
imports: [CommonModule],
|
|
5957
|
-
exports: [
|
|
5971
|
+
declarations: [TextEditorComponent],
|
|
5972
|
+
imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],
|
|
5973
|
+
exports: [ReactiveFormsModule, FormsModule, TextEditorComponent],
|
|
5958
5974
|
providers: []
|
|
5959
5975
|
}]
|
|
5960
5976
|
}] });
|
|
@@ -6050,30 +6066,38 @@ FestoAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
|
|
|
6050
6066
|
FestoAngularComponentsModule,
|
|
6051
6067
|
FestoAngularContentModule,
|
|
6052
6068
|
FestoAngularFormsModule,
|
|
6069
|
+
FestoAngularDatePickerModule,
|
|
6053
6070
|
FestoAngularModalsModule,
|
|
6054
6071
|
FestoAngularSnackbarModule,
|
|
6055
|
-
FestoAngularImageGalleryModule
|
|
6072
|
+
FestoAngularImageGalleryModule,
|
|
6073
|
+
FestoAngularTextEditorModule], exports: [FestoAngularLayoutModule,
|
|
6056
6074
|
FestoAngularComponentsModule,
|
|
6057
6075
|
FestoAngularContentModule,
|
|
6058
6076
|
FestoAngularFormsModule,
|
|
6077
|
+
FestoAngularDatePickerModule,
|
|
6059
6078
|
FestoAngularModalsModule,
|
|
6060
6079
|
FestoAngularSnackbarModule,
|
|
6061
|
-
FestoAngularImageGalleryModule
|
|
6080
|
+
FestoAngularImageGalleryModule,
|
|
6081
|
+
FestoAngularTextEditorModule] });
|
|
6062
6082
|
FestoAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularModule, imports: [[
|
|
6063
6083
|
FestoAngularLayoutModule,
|
|
6064
6084
|
FestoAngularComponentsModule,
|
|
6065
6085
|
FestoAngularContentModule,
|
|
6066
6086
|
FestoAngularFormsModule,
|
|
6087
|
+
FestoAngularDatePickerModule,
|
|
6067
6088
|
FestoAngularModalsModule,
|
|
6068
6089
|
FestoAngularSnackbarModule,
|
|
6069
|
-
FestoAngularImageGalleryModule
|
|
6090
|
+
FestoAngularImageGalleryModule,
|
|
6091
|
+
FestoAngularTextEditorModule
|
|
6070
6092
|
], FestoAngularLayoutModule,
|
|
6071
6093
|
FestoAngularComponentsModule,
|
|
6072
6094
|
FestoAngularContentModule,
|
|
6073
6095
|
FestoAngularFormsModule,
|
|
6096
|
+
FestoAngularDatePickerModule,
|
|
6074
6097
|
FestoAngularModalsModule,
|
|
6075
6098
|
FestoAngularSnackbarModule,
|
|
6076
|
-
FestoAngularImageGalleryModule
|
|
6099
|
+
FestoAngularImageGalleryModule,
|
|
6100
|
+
FestoAngularTextEditorModule] });
|
|
6077
6101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularModule, decorators: [{
|
|
6078
6102
|
type: NgModule,
|
|
6079
6103
|
args: [{
|
|
@@ -6083,18 +6107,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
6083
6107
|
FestoAngularComponentsModule,
|
|
6084
6108
|
FestoAngularContentModule,
|
|
6085
6109
|
FestoAngularFormsModule,
|
|
6110
|
+
FestoAngularDatePickerModule,
|
|
6086
6111
|
FestoAngularModalsModule,
|
|
6087
6112
|
FestoAngularSnackbarModule,
|
|
6088
|
-
FestoAngularImageGalleryModule
|
|
6113
|
+
FestoAngularImageGalleryModule,
|
|
6114
|
+
FestoAngularTextEditorModule
|
|
6089
6115
|
],
|
|
6090
6116
|
exports: [
|
|
6091
6117
|
FestoAngularLayoutModule,
|
|
6092
6118
|
FestoAngularComponentsModule,
|
|
6093
6119
|
FestoAngularContentModule,
|
|
6094
6120
|
FestoAngularFormsModule,
|
|
6121
|
+
FestoAngularDatePickerModule,
|
|
6095
6122
|
FestoAngularModalsModule,
|
|
6096
6123
|
FestoAngularSnackbarModule,
|
|
6097
|
-
FestoAngularImageGalleryModule
|
|
6124
|
+
FestoAngularImageGalleryModule,
|
|
6125
|
+
FestoAngularTextEditorModule
|
|
6098
6126
|
]
|
|
6099
6127
|
}]
|
|
6100
6128
|
}] });
|
|
@@ -6192,5 +6220,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
6192
6220
|
* Generated bundle index. Do not edit.
|
|
6193
6221
|
*/
|
|
6194
6222
|
|
|
6195
|
-
export { AccordionActions, AccordionComponent, AccordionHeaderActions, AccordionHeaderComponent, AccordionItemBodyComponent, AccordionItemComponent, AccordionItemHeaderComponent, AlertComponent, BreadcrumbComponent, ButtonComponent, CheckboxComponent, ChipComponent, ChipContainerComponent, ChipTextPipe, ChipType, ClickOutsideDirective, ColorIndicatorComponent, ColorPickerComponent, ConfirmComponent, ContainerHostDirective as ContainerHost, CustomModalComponent, DatePickerComponent, DateRangePickerComponent, FestoAngularComponentsModule, FestoAngularContentModule, FestoAngularFormsModule, FestoAngularImageGalleryModule, FestoAngularLayoutModule, FestoAngularModalsModule, FestoAngularModule, FestoAngularSnackbarModule, IconComponent, ImageGalleryComponent, LegendComponent, LegendDirective, LinkButtonComponent, LoadingIndicatorComponent, MobileFlyoutComponent, MobileFlyoutItemComponent, MobileFlyoutPageComponent, ModalService, PREDEFINED_COLORS, PaginationComponent, PaginationType, PopoverComponent, PopoverContentComponent, PopoverContentDirective, PopoverContentTypes, PopoverMenuComponent, PopoverPosition, PopoverTypes, ProgressComponent, PromptComponent, RadioChange, RadioComponent, RadioGroupDirective, SafeHtmlPipe, ScrollableDirective, SearchInputComponent, SearchSuggestion, SegmentComponent, SegmentControlComponent, SelectComponent, SelectOptionComponent, SliderComponent, SnackbarComponent, SnackbarContainerComponent, SnackbarContainerDirective, SnackbarService, StepHorizontalComponent, StepVerticalComponent, StepperHorizontalComponent, StepperVerticalComponent, SwitchComponent, TabPaneComponent, TableHeaderCellDirective, TabsComponent, TextAreaComponent, TextEditorComponent, TextInputComponent, TimePickerComponent, TimePickerDropdownComponent, TooltipDirective, ValueAccessorBaseDirective as ValueAccessorBase };
|
|
6223
|
+
export { AccordionActions, AccordionComponent, AccordionHeaderActions, AccordionHeaderComponent, AccordionItemBodyComponent, AccordionItemComponent, AccordionItemHeaderComponent, AlertComponent, BreadcrumbComponent, ButtonComponent, CheckboxComponent, ChipComponent, ChipContainerComponent, ChipTextPipe, ChipType, ClickOutsideDirective, ColorIndicatorComponent, ColorPickerComponent, ConfirmComponent, ContainerHostDirective as ContainerHost, CustomModalComponent, DatePickerComponent, DateRangePickerComponent, FestoAngularComponentsModule, FestoAngularContentModule, FestoAngularDatePickerModule, FestoAngularFormsModule, FestoAngularImageGalleryModule, FestoAngularLayoutModule, FestoAngularModalsModule, FestoAngularModule, FestoAngularSnackbarModule, FestoAngularTextEditorModule, IconComponent, ImageGalleryComponent, LegendComponent, LegendDirective, LinkButtonComponent, LoadingIndicatorComponent, MobileFlyoutComponent, MobileFlyoutItemComponent, MobileFlyoutPageComponent, ModalService, PREDEFINED_COLORS, PaginationComponent, PaginationType, PopoverComponent, PopoverContentComponent, PopoverContentDirective, PopoverContentTypes, PopoverMenuComponent, PopoverPosition, PopoverTypes, ProgressComponent, PromptComponent, RadioChange, RadioComponent, RadioGroupDirective, SafeHtmlPipe, ScrollableDirective, SearchInputComponent, SearchSuggestion, SegmentComponent, SegmentControlComponent, SelectComponent, SelectOptionComponent, SliderComponent, SnackbarComponent, SnackbarContainerComponent, SnackbarContainerDirective, SnackbarService, StepHorizontalComponent, StepVerticalComponent, StepperHorizontalComponent, StepperVerticalComponent, SwitchComponent, TabPaneComponent, TableHeaderCellDirective, TabsComponent, TextAreaComponent, TextEditorComponent, TextInputComponent, TimePickerComponent, TimePickerDropdownComponent, TooltipDirective, ValueAccessorBaseDirective as ValueAccessorBase };
|
|
6196
6224
|
//# sourceMappingURL=festo-ui-angular.mjs.map
|