novo-elements 13.1.0-next.6 → 13.1.0-next.7
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/addons/ckeditor/index.d.ts +3 -1
- package/elements/aside/aside.component.scss +17 -2
- package/elements/aside/index.d.ts +16 -8
- package/elements/chips/index.d.ts +3 -1
- package/elements/data-table/index.d.ts +2 -1
- package/elements/form/index.d.ts +1 -1
- package/elements/query-builder/index.d.ts +1 -0
- package/elements/tabbed-group-picker/TabbedGroupPicker.scss +9 -0
- package/elements/tabbed-group-picker/index.d.ts +27 -14
- package/elements/tip-well/TipWell.scss +0 -1
- package/fesm2022/novo-elements-addons-ckeditor.mjs +22 -12
- package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-aside.mjs +24 -9
- package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-chips.mjs +6 -2
- package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-data-table.mjs +2 -2
- package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-form.mjs +3 -1
- package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-query-builder.mjs +4 -3
- package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +70 -10
- package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tip-well.mjs +2 -2
- package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
- package/fesm2022/novo-elements-services.mjs +1 -0
- package/fesm2022/novo-elements-services.mjs.map +1 -1
- package/novo-elements.scss +0 -1
- package/package.json +1 -1
- package/services/index.d.ts +1 -0
|
@@ -15,6 +15,8 @@ declare class NovoCKEditorElement implements OnDestroy, AfterViewInit, ControlVa
|
|
|
15
15
|
debounce: any;
|
|
16
16
|
name: any;
|
|
17
17
|
minimal: any;
|
|
18
|
+
customConfig: any;
|
|
19
|
+
customFonts: string;
|
|
18
20
|
startupFocus: boolean;
|
|
19
21
|
fileBrowserImageUploadUrl: string;
|
|
20
22
|
disabled: boolean;
|
|
@@ -47,7 +49,7 @@ declare class NovoCKEditorElement implements OnDestroy, AfterViewInit, ControlVa
|
|
|
47
49
|
setDisabledState(disabled: boolean): void;
|
|
48
50
|
insertText(text: any): void;
|
|
49
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<NovoCKEditorElement, never>;
|
|
50
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NovoCKEditorElement, "novo-editor", never, { "config": { "alias": "config"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "name": { "alias": "name"; "required": false; }; "minimal": { "alias": "minimal"; "required": false; }; "startupFocus": { "alias": "startupFocus"; "required": false; }; "fileBrowserImageUploadUrl": { "alias": "fileBrowserImageUploadUrl"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "change": "change"; "ready": "ready"; "blur": "blur"; "focus": "focus"; "paste": "paste"; "loaded": "loaded"; }, never, never, false, never>;
|
|
52
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NovoCKEditorElement, "novo-editor", never, { "config": { "alias": "config"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "name": { "alias": "name"; "required": false; }; "minimal": { "alias": "minimal"; "required": false; }; "customConfig": { "alias": "customConfig"; "required": false; }; "customFonts": { "alias": "customFonts"; "required": false; }; "startupFocus": { "alias": "startupFocus"; "required": false; }; "fileBrowserImageUploadUrl": { "alias": "fileBrowserImageUploadUrl"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "change": "change"; "ready": "ready"; "blur": "blur"; "focus": "focus"; "paste": "paste"; "loaded": "loaded"; }, never, never, false, never>;
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
declare class NovoNovoCKEditorModule {
|
|
@@ -3,16 +3,31 @@
|
|
|
3
3
|
:host {
|
|
4
4
|
.aside-panel {
|
|
5
5
|
background-color: var(--background-bright, $color-white);
|
|
6
|
+
box-shadow: -3px 3px 15px 4px rgba(61, 70, 77, 0.2);
|
|
6
7
|
height: 100vh;
|
|
7
8
|
width: 50%;
|
|
8
9
|
min-width: min-content;
|
|
9
|
-
max-width:
|
|
10
|
+
max-width: 560px;
|
|
10
11
|
position: absolute;
|
|
11
12
|
top: 0;
|
|
12
|
-
right:
|
|
13
|
+
right: 0;
|
|
13
14
|
padding: 0;
|
|
14
15
|
display: flex;
|
|
15
16
|
justify-content: stretch;
|
|
16
17
|
align-items: stretch;
|
|
18
|
+
|
|
19
|
+
&.draggable {
|
|
20
|
+
position: absolute;
|
|
21
|
+
max-width: none;
|
|
22
|
+
height: auto;
|
|
23
|
+
width: 540px;
|
|
24
|
+
left: calc(100vw - 560px);
|
|
25
|
+
overflow: hidden;
|
|
26
|
+
resize: both;
|
|
27
|
+
.drag-handle {
|
|
28
|
+
width: 100%;
|
|
29
|
+
height: calc(100% - 1rem);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
17
32
|
}
|
|
18
33
|
}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Injector } from '@angular/core';
|
|
3
|
+
import * as i5 from '@angular/cdk/overlay';
|
|
2
4
|
import { OverlayRef, Overlay } from '@angular/cdk/overlay';
|
|
3
5
|
import { Observable } from 'rxjs';
|
|
4
6
|
import * as _angular_animations from '@angular/animations';
|
|
5
7
|
import { AnimationEvent } from '@angular/animations';
|
|
6
|
-
import * as
|
|
8
|
+
import * as i6 from '@angular/cdk/portal';
|
|
7
9
|
import { Portal } from '@angular/cdk/portal';
|
|
8
|
-
import * as
|
|
9
|
-
import
|
|
10
|
+
import * as i2 from '@angular/common';
|
|
11
|
+
import * as i3 from '@angular/cdk/drag-drop';
|
|
12
|
+
import * as i4 from 'novo-elements/elements/common';
|
|
10
13
|
|
|
11
14
|
declare class AsideComponent {
|
|
12
15
|
private injector;
|
|
13
|
-
|
|
16
|
+
asideRef: NovoAsideRef;
|
|
14
17
|
animationStateChanged: EventEmitter<AnimationEvent>;
|
|
15
18
|
animationState: 'void' | 'enter' | 'leave';
|
|
19
|
+
draggable: i0.WritableSignal<boolean>;
|
|
20
|
+
disableDrag: i0.WritableSignal<boolean>;
|
|
16
21
|
component: Portal<any>;
|
|
17
22
|
constructor(injector: Injector, asideRef: NovoAsideRef);
|
|
18
23
|
onAnimationStart(event: AnimationEvent): void;
|
|
@@ -25,12 +30,15 @@ declare class AsideComponent {
|
|
|
25
30
|
declare class NovoAsideRef<T = any, R = any> {
|
|
26
31
|
component: any;
|
|
27
32
|
params: T;
|
|
28
|
-
|
|
33
|
+
overlayRef: OverlayRef;
|
|
29
34
|
constructor(component: any, params: T, overlayRef: OverlayRef);
|
|
30
35
|
private _beforeClose;
|
|
31
36
|
private _afterClosed;
|
|
32
37
|
isClosed: boolean;
|
|
33
38
|
componentInstance: AsideComponent;
|
|
39
|
+
draggable: i0.WritableSignal<boolean>;
|
|
40
|
+
disableDrag: i0.WritableSignal<boolean>;
|
|
41
|
+
onDragStart: EventEmitter<void>;
|
|
34
42
|
get onClosed(): Promise<R>;
|
|
35
43
|
afterClosed(): Observable<R>;
|
|
36
44
|
beforeClose(): Observable<R>;
|
|
@@ -41,7 +49,7 @@ declare const slideInOut: _angular_animations.AnimationTriggerMetadata;
|
|
|
41
49
|
|
|
42
50
|
declare class NovoAsideModule {
|
|
43
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<NovoAsideModule, never>;
|
|
44
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NovoAsideModule, [typeof AsideComponent], [typeof i2.
|
|
52
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NovoAsideModule, [typeof AsideComponent], [typeof i2.CommonModule, typeof i3.DragDropModule, typeof i4.NovoCommonModule, typeof i5.OverlayModule, typeof i6.PortalModule], never>;
|
|
45
53
|
static ɵinj: i0.ɵɵInjectorDeclaration<NovoAsideModule>;
|
|
46
54
|
}
|
|
47
55
|
|
|
@@ -49,7 +57,7 @@ declare class NovoAsideService {
|
|
|
49
57
|
private injector;
|
|
50
58
|
private overlay;
|
|
51
59
|
constructor(injector: Injector, overlay: Overlay);
|
|
52
|
-
open<R = any>(component: any, params?: {}, config?: {}): NovoAsideRef<{}, R>;
|
|
60
|
+
open<R = any>(component: any, params?: {}, config?: {}, draggable?: boolean): NovoAsideRef<{}, R>;
|
|
53
61
|
private createOverlay;
|
|
54
62
|
private attachAsideContainer;
|
|
55
63
|
private createInjector;
|
|
@@ -515,6 +515,8 @@ declare class NovoChipInput implements NovoChipTextControl, OnChanges, OnDestroy
|
|
|
515
515
|
chipEnd: EventEmitter<NovoChipInputEvent>;
|
|
516
516
|
/** The input's placeholder text. */
|
|
517
517
|
placeholder: string;
|
|
518
|
+
/** Setting to false prevents input from being cleared when focus is lost. */
|
|
519
|
+
clearOnBlur: boolean;
|
|
518
520
|
/** Unique id for the input. */
|
|
519
521
|
id: string;
|
|
520
522
|
/** Whether the input is disabled. */
|
|
@@ -548,7 +550,7 @@ declare class NovoChipInput implements NovoChipTextControl, OnChanges, OnDestroy
|
|
|
548
550
|
static readonly ngAcceptInputType_addOnBlur: BooleanInput;
|
|
549
551
|
static readonly ngAcceptInputType_disabled: BooleanInput;
|
|
550
552
|
static ɵfac: i0.ɵɵFactoryDeclaration<NovoChipInput, [null, null, { optional: true; }, null, { optional: true; self: true; }]>;
|
|
551
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NovoChipInput, "input[novoChipInput]", ["novoChipInput", "novoChipInputFor"], { "addOnBlur": { "alias": "novoChipInputAddOnBlur"; "required": false; }; "separatorKeyCodes": { "alias": "novoChipInputSeparatorKeyCodes"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "chipEnd": "novoChipInputTokenEnd"; }, never, never, false, never>;
|
|
553
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NovoChipInput, "input[novoChipInput]", ["novoChipInput", "novoChipInputFor"], { "addOnBlur": { "alias": "novoChipInputAddOnBlur"; "required": false; }; "separatorKeyCodes": { "alias": "novoChipInputSeparatorKeyCodes"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "clearOnBlur": { "alias": "clearOnBlur"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "chipEnd": "novoChipInputTokenEnd"; }, never, never, false, never>;
|
|
552
554
|
}
|
|
553
555
|
|
|
554
556
|
declare class NovoChipsElement implements OnInit, ControlValueAccessor {
|
|
@@ -47,6 +47,7 @@ interface IDataTablePreferences {
|
|
|
47
47
|
hasUnsavedChanges?: boolean;
|
|
48
48
|
unsavedChanges?: any;
|
|
49
49
|
useBooleanKeywords?: boolean;
|
|
50
|
+
cardView?: boolean;
|
|
50
51
|
}
|
|
51
52
|
interface AutobuildEntityData {
|
|
52
53
|
id: number;
|
|
@@ -662,7 +663,7 @@ type ListInteractionDictionary = {
|
|
|
662
663
|
[key: string]: ListInteraction[];
|
|
663
664
|
};
|
|
664
665
|
|
|
665
|
-
type DataTablePreferenceUpdateSrc = 'columndrag' | 'input' | 'statesortchange' | 'pagination';
|
|
666
|
+
type DataTablePreferenceUpdateSrc = 'columndrag' | 'input' | 'statesortchange' | 'pagination' | 'other';
|
|
666
667
|
interface IDataTablePreferencesChangeEvent extends IDataTablePreferences {
|
|
667
668
|
eventSrc: DataTablePreferenceUpdateSrc;
|
|
668
669
|
}
|
package/elements/form/index.d.ts
CHANGED
|
@@ -946,7 +946,7 @@ declare class NovoFieldsetHeaderElement {
|
|
|
946
946
|
title: string;
|
|
947
947
|
icon: string;
|
|
948
948
|
static ɵfac: i0.ɵɵFactoryDeclaration<NovoFieldsetHeaderElement, never>;
|
|
949
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NovoFieldsetHeaderElement, "novo-fieldset-header", never, { "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, {}, never,
|
|
949
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NovoFieldsetHeaderElement, "novo-fieldset-header", never, { "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
950
950
|
}
|
|
951
951
|
declare class NovoFieldsetElement {
|
|
952
952
|
controls: Array<any>;
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
box-sizing: content-box;
|
|
31
31
|
transition: all 300ms;
|
|
32
32
|
color: $dark;
|
|
33
|
+
&.chip-list-input {
|
|
34
|
+
flex: 1 0 20px;
|
|
35
|
+
}
|
|
33
36
|
&::placeholder {
|
|
34
37
|
color: var(--form-placeholder);
|
|
35
38
|
}
|
|
@@ -46,6 +49,12 @@
|
|
|
46
49
|
i.bhi-times {
|
|
47
50
|
cursor: pointer;
|
|
48
51
|
}
|
|
52
|
+
.hidden-chips-toggle {
|
|
53
|
+
cursor: pointer;
|
|
54
|
+
}
|
|
55
|
+
&.use-chips {
|
|
56
|
+
max-width: 500px;
|
|
57
|
+
}
|
|
49
58
|
}
|
|
50
59
|
|
|
51
60
|
.footer {
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnDestroy, OnInit, EventEmitter, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
4
4
|
import { NovoLabelService } from 'novo-elements/services';
|
|
5
|
-
import * as
|
|
5
|
+
import * as i12 from 'novo-elements/elements/dropdown';
|
|
6
6
|
import { NovoDropdownElement } from 'novo-elements/elements/dropdown';
|
|
7
7
|
import * as i2 from '@angular/common';
|
|
8
8
|
import * as i3 from '@angular/forms';
|
|
9
9
|
import * as i4 from '@angular/cdk/scrolling';
|
|
10
|
-
import * as i5 from 'novo-elements/elements/
|
|
11
|
-
import * as i6 from 'novo-elements/elements/
|
|
12
|
-
import * as i7 from 'novo-elements/elements/
|
|
13
|
-
import * as i8 from 'novo-elements/elements/
|
|
14
|
-
import * as
|
|
15
|
-
import * as
|
|
10
|
+
import * as i5 from 'novo-elements/elements/chips';
|
|
11
|
+
import * as i6 from 'novo-elements/elements/common';
|
|
12
|
+
import * as i7 from 'novo-elements/elements/icon';
|
|
13
|
+
import * as i8 from 'novo-elements/elements/tabs';
|
|
14
|
+
import * as i9 from 'novo-elements/elements/list';
|
|
15
|
+
import * as i10 from 'novo-elements/elements/form';
|
|
16
|
+
import * as i11 from 'novo-elements/elements/button';
|
|
17
|
+
import * as i13 from 'novo-elements/elements/checkbox';
|
|
16
18
|
|
|
17
19
|
type TabbedGroupPickerTab = {
|
|
18
20
|
typeName: string;
|
|
@@ -20,7 +22,7 @@ type TabbedGroupPickerTab = {
|
|
|
20
22
|
valueField: string;
|
|
21
23
|
labelField: string;
|
|
22
24
|
scrollOffset?: number;
|
|
23
|
-
icon?:
|
|
25
|
+
icon?: any;
|
|
24
26
|
} & (ParentTab | ChildTab);
|
|
25
27
|
type ParentTab = {
|
|
26
28
|
childTypeName: string;
|
|
@@ -76,11 +78,15 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
|
|
|
76
78
|
tabs: TabbedGroupPickerTab[];
|
|
77
79
|
quickSelectConfig: QuickSelectConfig;
|
|
78
80
|
showFooter: boolean;
|
|
81
|
+
useChips: _angular_core.InputSignal<boolean>;
|
|
82
|
+
maxChips: _angular_core.InputSignal<number>;
|
|
83
|
+
chipSize: _angular_core.InputSignal<string>;
|
|
79
84
|
selectionEnabled: boolean;
|
|
80
85
|
activation: EventEmitter<any>;
|
|
81
86
|
selectionChange: EventEmitter<TabbedGroupPickerTab[]>;
|
|
82
87
|
applyChange: EventEmitter<any>;
|
|
83
88
|
cancelChange: EventEmitter<any>;
|
|
89
|
+
tabSelect: EventEmitter<any>;
|
|
84
90
|
displayTabs: TabbedGroupPickerTab[];
|
|
85
91
|
displayTabIndex: number;
|
|
86
92
|
filterText: BehaviorSubject<string>;
|
|
@@ -90,6 +96,11 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
|
|
|
90
96
|
appliedState: TabbedGroupPickerTab[];
|
|
91
97
|
scrollViewportHeight: number;
|
|
92
98
|
virtualScrollItemSize: number;
|
|
99
|
+
selectedChips: _angular_core.WritableSignal<any[]>;
|
|
100
|
+
showAllChips: _angular_core.WritableSignal<boolean>;
|
|
101
|
+
displayedChips: _angular_core.Signal<any[]>;
|
|
102
|
+
hiddenChips: _angular_core.Signal<any[]>;
|
|
103
|
+
chipsInputPlaceholder: _angular_core.Signal<string>;
|
|
93
104
|
constructor(labelService: NovoLabelService, ref: ChangeDetectorRef);
|
|
94
105
|
get displayTab(): TabbedGroupPickerTab;
|
|
95
106
|
set displayTab(tab: TabbedGroupPickerTab);
|
|
@@ -97,6 +108,7 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
|
|
|
97
108
|
get maxBufferPx(): number;
|
|
98
109
|
ngOnInit(): void;
|
|
99
110
|
ngOnDestroy(): void;
|
|
111
|
+
showAllChipsToggle(event: any): void;
|
|
100
112
|
loadValues(): void;
|
|
101
113
|
changeTab(tab: TabbedGroupPickerTab): void;
|
|
102
114
|
getPixelHeight(element: HTMLElement): number;
|
|
@@ -114,6 +126,7 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
|
|
|
114
126
|
onDropdownToggle(event: any): void;
|
|
115
127
|
activateItem(item: any, tab?: TabbedGroupPickerTab): void;
|
|
116
128
|
onItemToggled(item: Option): void;
|
|
129
|
+
toggleChip(item: Option): void;
|
|
117
130
|
initializeDescendantSelection(): void;
|
|
118
131
|
updateDescendants(parentIsSelected: boolean, children: Option[]): void;
|
|
119
132
|
updateClearAll(itemWasJustSelected?: boolean): void;
|
|
@@ -133,14 +146,14 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
|
|
|
133
146
|
};
|
|
134
147
|
}): void;
|
|
135
148
|
filter: (searchTerm: string) => void;
|
|
136
|
-
static ɵfac:
|
|
137
|
-
static ɵcmp:
|
|
149
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NovoTabbedGroupPickerElement, never>;
|
|
150
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NovoTabbedGroupPickerElement, "novo-tabbed-group-picker", never, { "buttonConfig": { "alias": "buttonConfig"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "quickSelectConfig": { "alias": "quickSelectConfig"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "useChips": { "alias": "useChips"; "required": false; "isSignal": true; }; "maxChips": { "alias": "maxChips"; "required": false; "isSignal": true; }; "chipSize": { "alias": "chipSize"; "required": false; "isSignal": true; }; "selectionEnabled": { "alias": "selectionEnabled"; "required": false; }; }, { "activation": "activation"; "selectionChange": "selectionChange"; "applyChange": "applyChange"; "cancelChange": "cancelChange"; "tabSelect": "tabSelect"; }, never, ["*"], false, never>;
|
|
138
151
|
}
|
|
139
152
|
|
|
140
153
|
declare class NovoTabbedGroupPickerModule {
|
|
141
|
-
static ɵfac:
|
|
142
|
-
static ɵmod:
|
|
143
|
-
static ɵinj:
|
|
154
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NovoTabbedGroupPickerModule, never>;
|
|
155
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NovoTabbedGroupPickerModule, [typeof NovoTabbedGroupPickerElement], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.ScrollingModule, typeof i5.NovoChipsModule, typeof i6.NovoCommonModule, typeof i7.NovoIconModule, typeof i8.NovoTabModule, typeof i9.NovoListModule, typeof i10.NovoFormExtrasModule, typeof i11.NovoButtonModule, typeof i12.NovoDropdownModule, typeof i6.NovoOptionModule, typeof i13.NovoCheckboxModule], [typeof NovoTabbedGroupPickerElement]>;
|
|
156
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<NovoTabbedGroupPickerModule>;
|
|
144
157
|
}
|
|
145
158
|
|
|
146
159
|
export { NovoTabbedGroupPickerElement, NovoTabbedGroupPickerModule };
|
|
@@ -26,6 +26,8 @@ catch (err) {
|
|
|
26
26
|
class NovoCKEditorElement {
|
|
27
27
|
constructor(zone) {
|
|
28
28
|
this.zone = zone;
|
|
29
|
+
this.customConfig = null;
|
|
30
|
+
this.customFonts = '';
|
|
29
31
|
this.startupFocus = false;
|
|
30
32
|
this.fileBrowserImageUploadUrl = '';
|
|
31
33
|
this.disabled = false;
|
|
@@ -133,16 +135,17 @@ class NovoCKEditorElement {
|
|
|
133
135
|
disableNativeSpellChecker: false,
|
|
134
136
|
removePlugins: 'liststyle,tabletools,contextmenu,tableselection', // allows browser based spell checking
|
|
135
137
|
extraAllowedContent: '*(*){*};table tbody tr td th[*];', // allows class names (*) and inline styles {*} for all and attributes [*] on tables
|
|
136
|
-
font_names:
|
|
137
|
-
'
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
138
|
+
font_names: this.customFonts ? this.customFonts :
|
|
139
|
+
'Arial/Arial, Helvetica, sans-serif;' +
|
|
140
|
+
'Calibri/Calibri, Verdana, Geneva, sans-serif;' +
|
|
141
|
+
'Comic Sans MS/Comic Sans MS, cursive;' +
|
|
142
|
+
'Courier New/Courier New, Courier, monospace;' +
|
|
143
|
+
'Georgia/Georgia, serif;' +
|
|
144
|
+
'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +
|
|
145
|
+
'Tahoma/Tahoma, Geneva, sans-serif;' +
|
|
146
|
+
'Times New Roman/Times New Roman, Times, serif;' +
|
|
147
|
+
'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +
|
|
148
|
+
'Verdana/Verdana, Geneva, sans-serif',
|
|
146
149
|
};
|
|
147
150
|
const minimalConfig = {
|
|
148
151
|
toolbar: [
|
|
@@ -194,7 +197,10 @@ class NovoCKEditorElement {
|
|
|
194
197
|
],
|
|
195
198
|
filebrowserImageUploadUrl: this.fileBrowserImageUploadUrl,
|
|
196
199
|
};
|
|
197
|
-
|
|
200
|
+
const config = this.customConfig
|
|
201
|
+
? this.customConfig
|
|
202
|
+
: this.minimal ? minimalConfig : extendedConfig;
|
|
203
|
+
return Object.assign(baseConfig, config);
|
|
198
204
|
}
|
|
199
205
|
writeValue(value) {
|
|
200
206
|
this._value = value;
|
|
@@ -221,7 +227,7 @@ class NovoCKEditorElement {
|
|
|
221
227
|
this.instance.insertText(trimmedText);
|
|
222
228
|
}
|
|
223
229
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCKEditorElement, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
224
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: NovoCKEditorElement, isStandalone: false, selector: "novo-editor", inputs: { config: "config", debounce: "debounce", name: "name", minimal: "minimal", startupFocus: "startupFocus", fileBrowserImageUploadUrl: "fileBrowserImageUploadUrl", disabled: "disabled", value: "value" }, outputs: { change: "change", ready: "ready", blur: "blur", focus: "focus", paste: "paste", loaded: "loaded" }, providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true }], ngImport: i0, template: '<textarea [name]="name" [id]="name" #host></textarea>', isInline: true, styles: [":host ::ng-deep .cke{font:inherit!important;box-shadow:none;border-color:var(--background-muted)}:host ::ng-deep .cke .cke_top,:host ::ng-deep .cke .cke_bottom{background:var(--background-muted) none;box-shadow:none}:host ::ng-deep .cke .cke_bottom{border-top:none}.cke_dialog_background_cover{background-color:#000!important}.cke_dialog .cke_dialog_title{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-bottom:none}.cke_dialog .cke_dialog_footer{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-top:none}:host-context(.theme-dark) ::ng-deep .cke_button{filter:invert(1)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:hover,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:active,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:focus,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button.cke_combo_on{background:var(--background-main);border:1px solid var(--border)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_text{color:#fff}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_arrow{border-top-color:#fff}\n"] }); }
|
|
230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: NovoCKEditorElement, isStandalone: false, selector: "novo-editor", inputs: { config: "config", debounce: "debounce", name: "name", minimal: "minimal", customConfig: "customConfig", customFonts: "customFonts", startupFocus: "startupFocus", fileBrowserImageUploadUrl: "fileBrowserImageUploadUrl", disabled: "disabled", value: "value" }, outputs: { change: "change", ready: "ready", blur: "blur", focus: "focus", paste: "paste", loaded: "loaded" }, providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true }], ngImport: i0, template: '<textarea [name]="name" [id]="name" #host></textarea>', isInline: true, styles: [":host ::ng-deep .cke{font:inherit!important;box-shadow:none;border-color:var(--background-muted)}:host ::ng-deep .cke .cke_top,:host ::ng-deep .cke .cke_bottom{background:var(--background-muted) none;box-shadow:none}:host ::ng-deep .cke .cke_bottom{border-top:none}.cke_dialog_background_cover{background-color:#000!important}.cke_dialog .cke_dialog_title{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-bottom:none}.cke_dialog .cke_dialog_footer{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-top:none}:host-context(.theme-dark) ::ng-deep .cke_button{filter:invert(1)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:hover,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:active,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:focus,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button.cke_combo_on{background:var(--background-main);border:1px solid var(--border)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_text{color:#fff}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_arrow{border-top-color:#fff}\n"] }); }
|
|
225
231
|
}
|
|
226
232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCKEditorElement, decorators: [{
|
|
227
233
|
type: Component,
|
|
@@ -234,6 +240,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
234
240
|
type: Input
|
|
235
241
|
}], minimal: [{
|
|
236
242
|
type: Input
|
|
243
|
+
}], customConfig: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], customFonts: [{
|
|
246
|
+
type: Input
|
|
237
247
|
}], startupFocus: [{
|
|
238
248
|
type: Input
|
|
239
249
|
}], fileBrowserImageUploadUrl: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"novo-elements-addons-ckeditor.mjs","sources":["../../../projects/novo-elements/src/addons/ckeditor/CKEditor.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.module.ts","../../../projects/novo-elements/src/addons/ckeditor/novo-elements-addons-ckeditor.ts"],"sourcesContent":["// NG2\nimport { AfterViewInit, Component, EventEmitter, forwardRef, Input, NgZone, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fixCkEditorInputEvent } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst CKEDITOR_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCKEditorElement),\n multi: true,\n};\n\ndeclare const CKEDITOR: any;\n\n// Prevents CKEDITOR from querying the page for all [contenteditable] elements (fixes a conflict against Codemirror Editor)\ntry {\n CKEDITOR.disableAutoInline = true;\n} catch (err) {\n // may be running in a context without CKEDITOR - ignore\n}\n\n/**\n * CKEditor component\n * Usage :\n * <novo-editor [(ngModel)]=\"data\" [config]=\"{...}\" debounce=\"500\"></novo-editor>\n */\n@Component({\n selector: 'novo-editor',\n providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR],\n template: '<textarea [name]=\"name\" [id]=\"name\" #host></textarea>',\n styleUrls: ['./CKEditor.scss'],\n standalone: false,\n})\nexport class NovoCKEditorElement implements OnDestroy, AfterViewInit, ControlValueAccessor {\n @Input()\n config;\n @Input()\n debounce;\n @Input()\n name;\n @Input()\n minimal;\n @Input()\n startupFocus: boolean = false;\n @Input()\n fileBrowserImageUploadUrl: string = '';\n @Input()\n disabled: boolean = false;\n\n @Output()\n change = new EventEmitter();\n @Output()\n ready = new EventEmitter();\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n @Output()\n paste = new EventEmitter();\n @Output()\n loaded = new EventEmitter();\n @ViewChild('host')\n host;\n\n _value: string = '';\n instance;\n debounceTimeout;\n private _ckEditorFixRemoveListener?: () => void;\n\n constructor(private zone: NgZone) {}\n\n get value() {\n return this._value;\n }\n\n @Input()\n set value(v) {\n if (v !== this._value) {\n this._value = v;\n this.onChange(v);\n }\n }\n\n ngOnDestroy() {\n if (this.instance) {\n this.instance.focusManager.blur(true); // Remove focus from editor\n this._ckEditorFixRemoveListener?.();\n setTimeout(() => {\n this.instance.removeAllListeners();\n const aInstance = CKEDITOR.instances[this.instance.name];\n if (aInstance) {\n aInstance.destroy();\n }\n this.instance.destroy();\n this.instance = null;\n });\n }\n }\n\n ngAfterViewInit() {\n const config = Object.assign(this.getBaseConfig(), this.config);\n if (this.startupFocus) {\n config.startupFocus = true;\n }\n if (this.disabled) {\n config.readOnly = true;\n }\n this.ckeditorInit(config);\n }\n\n updateValue(value) {\n this.zone.run(() => {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.change.emit(value);\n });\n }\n\n private ckeditorInit(config) {\n if (!CKEDITOR) {\n console.error('Make sure to include CKEditor sources in your dependencies!');\n return;\n }\n\n // CKEditor replace textarea\n this.instance = CKEDITOR.replace(this.host.nativeElement, config);\n this._ckEditorFixRemoveListener = fixCkEditorInputEvent(this.instance);\n\n // Set initial value\n this.instance.setData(this.value);\n\n // listen for instanceReady event\n this.instance.on('instanceReady', (evt) => {\n // send the evt to the EventEmitter\n this.ready.emit(evt);\n });\n\n // CKEditor change event\n this.instance.on('change', () => {\n this.onTouched();\n const value = this.instance.getData();\n\n // Debounce update\n if (this.debounce) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(() => {\n this.updateValue(value);\n this.debounceTimeout = null;\n }, parseInt(this.debounce, 10));\n } else {\n this.updateValue(value);\n }\n });\n this.instance.on('blur', (event) => {\n this.blur.emit(event);\n });\n this.instance.on('focus', (event) => {\n this.focus.emit(event);\n });\n this.instance.on('paste', (event) => {\n this.paste.emit(event);\n });\n this.instance.on('loaded', (event) => {\n this.loaded.emit(event);\n });\n }\n\n getBaseConfig(): { [key: string]: any } {\n const baseConfig = {\n enterMode: CKEDITOR.ENTER_BR,\n entities: false,\n shiftEnterMode: CKEDITOR.ENTER_P,\n disableNativeSpellChecker: false,\n removePlugins: 'liststyle,tabletools,contextmenu,tableselection', // allows browser based spell checking\n extraAllowedContent: '*(*){*};table tbody tr td th[*];', // allows class names (*) and inline styles {*} for all and attributes [*] on tables\n font_names:\n 'Arial/Arial, Helvetica, sans-serif;' +\n 'Calibri/Calibri, Verdana, Geneva, sans-serif;' +\n 'Comic Sans MS/Comic Sans MS, cursive;' +\n 'Courier New/Courier New, Courier, monospace;' +\n 'Georgia/Georgia, serif;' +\n 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +\n 'Tahoma/Tahoma, Geneva, sans-serif;' +\n 'Times New Roman/Times New Roman, Times, serif;' +\n 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +\n 'Verdana/Verdana, Geneva, sans-serif',\n };\n\n const minimalConfig = {\n toolbar: [\n {\n name: 'basicstyles',\n items: [\n 'Styles',\n 'FontSize',\n 'Bold',\n 'Italic',\n 'Underline',\n 'TextColor',\n '-',\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Link',\n ],\n },\n ],\n };\n\n const extendedConfig = {\n toolbar: [\n { name: 'clipboard', items: ['Paste', 'PasteText', 'PasteFromWord', 'Undo', 'Redo'] },\n {\n name: 'paragraph',\n items: [\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Blockquote',\n 'JustifyLeft',\n 'JustifyCenter',\n 'JustifyRight',\n 'JustifyBlock',\n 'BidiLtr',\n 'BidiRtl',\n ],\n },\n { name: 'links', items: ['Link'] },\n { name: 'insert', items: ['Image', 'Table', 'HorizontalRule'] },\n { name: 'tools', items: ['Maximize', 'Source'] },\n '/', // line break\n { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'] },\n { name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize'] },\n { name: 'colors', items: ['TextColor', 'BGColor'] },\n ],\n filebrowserImageUploadUrl: this.fileBrowserImageUploadUrl,\n };\n\n return Object.assign(baseConfig, this.minimal ? minimalConfig : extendedConfig);\n }\n\n writeValue(value) {\n this._value = value;\n if (this.instance) {\n this.instance.setData(value);\n }\n }\n\n onChange(value?: any) {}\n\n onTouched(event?) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n if (this.instance) {\n CKEDITOR.instances[this.instance.name].setReadOnly(disabled);\n }\n }\n\n insertText(text) {\n const trimmedText = text.trim();\n this.instance.insertText(trimmedText);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoCKEditorElement } from './CKEditor';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [NovoCKEditorElement],\n exports: [NovoCKEditorElement],\n})\nexport class NovoNovoCKEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;AAKA;AACA,MAAM,+BAA+B,GAAG;AACtC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,IAAA,KAAK,EAAE,IAAI;CACZ;AAID;AACA,IAAI;AACF,IAAA,QAAQ,CAAC,iBAAiB,GAAG,IAAI;AACnC;AAAE,OAAO,GAAG,EAAE;;AAEd;AAEA;;;;AAIG;MAQU,mBAAmB,CAAA;AAoC9B,IAAA,WAAA,CAAoB,IAAY,EAAA;QAAZ,IAAA,CAAA,IAAI,GAAJ,IAAI;QA1BxB,IAAA,CAAA,YAAY,GAAY,KAAK;QAE7B,IAAA,CAAA,yBAAyB,GAAW,EAAE;QAEtC,IAAA,CAAA,QAAQ,GAAY,KAAK;AAGzB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAE3B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE;AAE1B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE;AAEzB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE;AAE1B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE;QAI3B,IAAA,CAAA,MAAM,GAAW,EAAE;IAKgB;AAEnC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;IAEA,IACI,KAAK,CAAC,CAAC,EAAA;AACT,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClB;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,0BAA0B,IAAI;YACnC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;AAClC,gBAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACxD,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,OAAO,EAAE;gBACrB;AACA,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACtB,YAAA,CAAC,CAAC;QACJ;IACF;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;AAC/D,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,CAAC,YAAY,GAAG,IAAI;QAC5B;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;QACxB;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAC3B;AAEA,IAAA,WAAW,CAAC,KAAK,EAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,YAAY,CAAC,MAAM,EAAA;QACzB,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC;YAC5E;QACF;;AAGA,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QACjE,IAAI,CAAC,0BAA0B,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;;QAGtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;QAGjC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,KAAI;;AAExC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAK;YAC9B,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;;AAGrC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,oBAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;gBACpC;AACA,gBAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;AACrC,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;gBAC7B,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACjC;iBAAO;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzB;AACF,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,CAAC,CAAC;IACJ;IAEA,aAAa,GAAA;AACX,QAAA,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,QAAQ,CAAC,QAAQ;AAC5B,YAAA,QAAQ,EAAE,KAAK;YACf,cAAc,EAAE,QAAQ,CAAC,OAAO;AAChC,YAAA,yBAAyB,EAAE,KAAK;YAChC,aAAa,EAAE,iDAAiD;YAChE,mBAAmB,EAAE,kCAAkC;AACvD,YAAA,UAAU,EACR,qCAAqC;gBACrC,+CAA+C;gBAC/C,uCAAuC;gBACvC,8CAA8C;gBAC9C,yBAAyB;gBACzB,qEAAqE;gBACrE,oCAAoC;gBACpC,gDAAgD;gBAChD,mDAAmD;gBACnD,qCAAqC;SACxC;AAED,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,KAAK,EAAE;wBACL,QAAQ;wBACR,UAAU;wBACV,MAAM;wBACN,QAAQ;wBACR,WAAW;wBACX,WAAW;wBACX,GAAG;wBACH,cAAc;wBACd,cAAc;wBACd,SAAS;wBACT,QAAQ;wBACR,MAAM;AACP,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;AAED,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,OAAO,EAAE;AACP,gBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;AACrF,gBAAA;AACE,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,KAAK,EAAE;wBACL,cAAc;wBACd,cAAc;wBACd,SAAS;wBACT,QAAQ;wBACR,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,cAAc;wBACd,cAAc;wBACd,SAAS;wBACT,SAAS;AACV,qBAAA;AACF,iBAAA;gBACD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE;AAClC,gBAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE;gBAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AAChD,gBAAA,GAAG;AACH,gBAAA,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE;AACrG,gBAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;gBACnE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;AACpD,aAAA;YACD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;SAC1D;AAED,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;IACjF;AAEA,IAAA,UAAU,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9B;IACF;IAEA,QAAQ,CAAC,KAAW,EAAA,EAAG;IAEvB,SAAS,CAAC,KAAM,EAAA,EAAG;AAEnB,IAAA,gBAAgB,CAAC,EAAE,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAE,EAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC9D;IACF;AAEA,IAAA,UAAU,CAAC,IAAI,EAAA;AACb,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;IACvC;+GAlPW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EALjB,CAAC,+BAA+B,CAAC,wHAClC,uDAAuD,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mrCAAA,CAAA,EAAA,CAAA,CAAA;;4FAIxD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,aACZ,CAAC,+BAA+B,CAAC,EAAA,QAAA,EAClC,uDAAuD,cAErD,KAAK,EAAA,MAAA,EAAA,CAAA,mrCAAA,CAAA,EAAA;;sBAGlB;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAGA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA,SAAS;uBAAC,MAAM;;sBAchB;;;AC3EH;MAYa,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBAHlB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CADxB,YAAY,EAAE,WAAW,aAEzB,mBAAmB,CAAA,EAAA,CAAA,CAAA;gHAElB,sBAAsB,EAAA,OAAA,EAAA,CAJvB,YAAY,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAIxB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;oBACpC,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"novo-elements-addons-ckeditor.mjs","sources":["../../../projects/novo-elements/src/addons/ckeditor/CKEditor.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.module.ts","../../../projects/novo-elements/src/addons/ckeditor/novo-elements-addons-ckeditor.ts"],"sourcesContent":["// NG2\nimport { AfterViewInit, Component, EventEmitter, forwardRef, Input, NgZone, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fixCkEditorInputEvent } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst CKEDITOR_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCKEditorElement),\n multi: true,\n};\n\ndeclare const CKEDITOR: any;\n\n// Prevents CKEDITOR from querying the page for all [contenteditable] elements (fixes a conflict against Codemirror Editor)\ntry {\n CKEDITOR.disableAutoInline = true;\n} catch (err) {\n // may be running in a context without CKEDITOR - ignore\n}\n\n/**\n * CKEditor component\n * Usage :\n * <novo-editor [(ngModel)]=\"data\" [config]=\"{...}\" debounce=\"500\"></novo-editor>\n */\n@Component({\n selector: 'novo-editor',\n providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR],\n template: '<textarea [name]=\"name\" [id]=\"name\" #host></textarea>',\n styleUrls: ['./CKEditor.scss'],\n standalone: false,\n})\nexport class NovoCKEditorElement implements OnDestroy, AfterViewInit, ControlValueAccessor {\n @Input()\n config;\n @Input()\n debounce;\n @Input()\n name;\n @Input()\n minimal;\n @Input() customConfig: any = null;\n @Input() customFonts: string = '';\n @Input()\n startupFocus: boolean = false;\n @Input()\n fileBrowserImageUploadUrl: string = '';\n @Input()\n disabled: boolean = false;\n\n @Output()\n change = new EventEmitter();\n @Output()\n ready = new EventEmitter();\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n @Output()\n paste = new EventEmitter();\n @Output()\n loaded = new EventEmitter();\n @ViewChild('host')\n host;\n\n _value: string = '';\n instance;\n debounceTimeout;\n private _ckEditorFixRemoveListener?: () => void;\n\n constructor(private zone: NgZone) {}\n\n get value() {\n return this._value;\n }\n\n @Input()\n set value(v) {\n if (v !== this._value) {\n this._value = v;\n this.onChange(v);\n }\n }\n\n ngOnDestroy() {\n if (this.instance) {\n this.instance.focusManager.blur(true); // Remove focus from editor\n this._ckEditorFixRemoveListener?.();\n setTimeout(() => {\n this.instance.removeAllListeners();\n const aInstance = CKEDITOR.instances[this.instance.name];\n if (aInstance) {\n aInstance.destroy();\n }\n this.instance.destroy();\n this.instance = null;\n });\n }\n }\n\n ngAfterViewInit() {\n const config = Object.assign(this.getBaseConfig(), this.config);\n if (this.startupFocus) {\n config.startupFocus = true;\n }\n if (this.disabled) {\n config.readOnly = true;\n }\n this.ckeditorInit(config);\n }\n\n updateValue(value) {\n this.zone.run(() => {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.change.emit(value);\n });\n }\n\n private ckeditorInit(config) {\n if (!CKEDITOR) {\n console.error('Make sure to include CKEditor sources in your dependencies!');\n return;\n }\n\n // CKEditor replace textarea\n this.instance = CKEDITOR.replace(this.host.nativeElement, config);\n this._ckEditorFixRemoveListener = fixCkEditorInputEvent(this.instance);\n\n // Set initial value\n this.instance.setData(this.value);\n\n // listen for instanceReady event\n this.instance.on('instanceReady', (evt) => {\n // send the evt to the EventEmitter\n this.ready.emit(evt);\n });\n\n // CKEditor change event\n this.instance.on('change', () => {\n this.onTouched();\n const value = this.instance.getData();\n\n // Debounce update\n if (this.debounce) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(() => {\n this.updateValue(value);\n this.debounceTimeout = null;\n }, parseInt(this.debounce, 10));\n } else {\n this.updateValue(value);\n }\n });\n this.instance.on('blur', (event) => {\n this.blur.emit(event);\n });\n this.instance.on('focus', (event) => {\n this.focus.emit(event);\n });\n this.instance.on('paste', (event) => {\n this.paste.emit(event);\n });\n this.instance.on('loaded', (event) => {\n this.loaded.emit(event);\n });\n }\n\n getBaseConfig(): { [key: string]: any } {\n const baseConfig = {\n enterMode: CKEDITOR.ENTER_BR,\n entities: false,\n shiftEnterMode: CKEDITOR.ENTER_P,\n disableNativeSpellChecker: false,\n removePlugins: 'liststyle,tabletools,contextmenu,tableselection', // allows browser based spell checking\n extraAllowedContent: '*(*){*};table tbody tr td th[*];', // allows class names (*) and inline styles {*} for all and attributes [*] on tables\n font_names: this.customFonts ? this.customFonts :\n 'Arial/Arial, Helvetica, sans-serif;' +\n 'Calibri/Calibri, Verdana, Geneva, sans-serif;' +\n 'Comic Sans MS/Comic Sans MS, cursive;' +\n 'Courier New/Courier New, Courier, monospace;' +\n 'Georgia/Georgia, serif;' +\n 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +\n 'Tahoma/Tahoma, Geneva, sans-serif;' +\n 'Times New Roman/Times New Roman, Times, serif;' +\n 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +\n 'Verdana/Verdana, Geneva, sans-serif',\n };\n\n const minimalConfig = {\n toolbar: [\n {\n name: 'basicstyles',\n items: [\n 'Styles',\n 'FontSize',\n 'Bold',\n 'Italic',\n 'Underline',\n 'TextColor',\n '-',\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Link',\n ],\n },\n ],\n };\n\n const extendedConfig = {\n toolbar: [\n { name: 'clipboard', items: ['Paste', 'PasteText', 'PasteFromWord', 'Undo', 'Redo'] },\n {\n name: 'paragraph',\n items: [\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Blockquote',\n 'JustifyLeft',\n 'JustifyCenter',\n 'JustifyRight',\n 'JustifyBlock',\n 'BidiLtr',\n 'BidiRtl',\n ],\n },\n { name: 'links', items: ['Link'] },\n { name: 'insert', items: ['Image', 'Table', 'HorizontalRule'] },\n { name: 'tools', items: ['Maximize', 'Source'] },\n '/', // line break\n { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'] },\n { name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize'] },\n { name: 'colors', items: ['TextColor', 'BGColor'] },\n ],\n filebrowserImageUploadUrl: this.fileBrowserImageUploadUrl,\n };\n\n const config = this.customConfig\n ? this.customConfig\n : this.minimal ? minimalConfig : extendedConfig;\n\n return Object.assign(baseConfig, config);\n }\n\n writeValue(value) {\n this._value = value;\n if (this.instance) {\n this.instance.setData(value);\n }\n }\n\n onChange(value?: any) {}\n\n onTouched(event?) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n if (this.instance) {\n CKEDITOR.instances[this.instance.name].setReadOnly(disabled);\n }\n }\n\n insertText(text) {\n const trimmedText = text.trim();\n this.instance.insertText(trimmedText);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoCKEditorElement } from './CKEditor';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [NovoCKEditorElement],\n exports: [NovoCKEditorElement],\n})\nexport class NovoNovoCKEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { signal, EventEmitter, Output, Component, Injector, Injectable, NgModule } from '@angular/core';
|
|
1
3
|
import { Subject } from 'rxjs';
|
|
2
4
|
import { filter, take } from 'rxjs/operators';
|
|
3
5
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
4
|
-
import * as
|
|
6
|
+
import * as i3 from '@angular/cdk/portal';
|
|
5
7
|
import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
6
|
-
import * as
|
|
7
|
-
import {
|
|
8
|
+
import * as i2 from '@angular/cdk/drag-drop';
|
|
9
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
8
10
|
import * as i1 from '@angular/cdk/overlay';
|
|
9
11
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
12
|
+
import { CommonModule } from '@angular/common';
|
|
13
|
+
import { NovoCommonModule } from 'novo-elements/elements/common';
|
|
10
14
|
|
|
11
15
|
class NovoAsideRef {
|
|
12
16
|
constructor(component, params, overlayRef) {
|
|
@@ -16,6 +20,9 @@ class NovoAsideRef {
|
|
|
16
20
|
this._beforeClose = new Subject();
|
|
17
21
|
this._afterClosed = new Subject();
|
|
18
22
|
this.isClosed = false;
|
|
23
|
+
this.draggable = signal(false, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
|
|
24
|
+
this.disableDrag = signal(true, ...(ngDevMode ? [{ debugName: "disableDrag" }] : []));
|
|
25
|
+
this.onDragStart = new EventEmitter();
|
|
19
26
|
}
|
|
20
27
|
// Gets a promise that is resolved when the dialog is closed.
|
|
21
28
|
get onClosed() {
|
|
@@ -66,6 +73,10 @@ class AsideComponent {
|
|
|
66
73
|
this.asideRef = asideRef;
|
|
67
74
|
this.animationStateChanged = new EventEmitter();
|
|
68
75
|
this.animationState = 'enter';
|
|
76
|
+
this.draggable = signal(false, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
|
|
77
|
+
this.disableDrag = signal(true, ...(ngDevMode ? [{ debugName: "disableDrag" }] : []));
|
|
78
|
+
this.draggable = asideRef.draggable;
|
|
79
|
+
this.disableDrag = asideRef.disableDrag;
|
|
69
80
|
this.component = new ComponentPortal(asideRef.component, null, injector);
|
|
70
81
|
}
|
|
71
82
|
onAnimationStart(event) {
|
|
@@ -75,14 +86,17 @@ class AsideComponent {
|
|
|
75
86
|
this.animationStateChanged.emit(event);
|
|
76
87
|
}
|
|
77
88
|
startExitAnimation() {
|
|
89
|
+
if (this.draggable()) {
|
|
90
|
+
this.onAnimationDone({ phaseName: 'done', toState: 'leave' });
|
|
91
|
+
}
|
|
78
92
|
this.animationState = 'leave';
|
|
79
93
|
}
|
|
80
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AsideComponent, deps: [{ token: i0.Injector }, { token: NovoAsideRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AsideComponent, isStandalone: false, selector: "novo-aside", outputs: { animationStateChanged: "animationStateChanged" }, ngImport: i0, template: "@if(!draggable()) {\n <div class=\"aside-panel\" [@slideInOut]=\"animationState\" (@slideInOut.start)=\"onAnimationStart($event)\"\n (@slideInOut.done)=\"onAnimationDone($event)\">\n <ng-template [cdkPortalOutlet]=\"component\"></ng-template>\n </div>\n} @else {\n <div class=\"aside-panel draggable\" [@slideInOut]=\"animationState\" (@slideInOut.start)=\"onAnimationStart($event)\"\n (@slideInOut.done)=\"onAnimationDone($event)\" cdkDrag [cdkDragDisabled]=\"disableDrag()\" (cdkDragStarted)=\"asideRef?.onDragStart.emit()\" cdkDragBoundary=\".cdk-overlay-container\">\n <div class=\"drag-handle\">\n <ng-template [cdkPortalOutlet]=\"component\"></ng-template>\n </div>\n </div>\n}\n", styles: [":host .aside-panel{background-color:var(--background-bright, #ffffff);box-shadow:-3px 3px 15px 4px #3d464d33;height:100vh;width:50%;min-width:min-content;max-width:560px;position:absolute;top:0;right:0;padding:0;display:flex;justify-content:stretch;align-items:stretch}:host .aside-panel.draggable{position:absolute;max-width:none;height:auto;width:540px;left:calc(100vw - 560px);overflow:hidden;resize:both}:host .aside-panel.draggable .drag-handle{width:100%;height:calc(100% - 1rem)}\n"], dependencies: [{ kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [slideInOut] }); }
|
|
82
96
|
}
|
|
83
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AsideComponent, decorators: [{
|
|
84
98
|
type: Component,
|
|
85
|
-
args: [{ selector: 'novo-aside', animations: [slideInOut], standalone: false, template: "<div class=\"aside-panel\" [@slideInOut]=\"animationState\" (@slideInOut.start)=\"onAnimationStart($event)\"\n
|
|
99
|
+
args: [{ selector: 'novo-aside', animations: [slideInOut], standalone: false, template: "@if(!draggable()) {\n <div class=\"aside-panel\" [@slideInOut]=\"animationState\" (@slideInOut.start)=\"onAnimationStart($event)\"\n (@slideInOut.done)=\"onAnimationDone($event)\">\n <ng-template [cdkPortalOutlet]=\"component\"></ng-template>\n </div>\n} @else {\n <div class=\"aside-panel draggable\" [@slideInOut]=\"animationState\" (@slideInOut.start)=\"onAnimationStart($event)\"\n (@slideInOut.done)=\"onAnimationDone($event)\" cdkDrag [cdkDragDisabled]=\"disableDrag()\" (cdkDragStarted)=\"asideRef?.onDragStart.emit()\" cdkDragBoundary=\".cdk-overlay-container\">\n <div class=\"drag-handle\">\n <ng-template [cdkPortalOutlet]=\"component\"></ng-template>\n </div>\n </div>\n}\n", styles: [":host .aside-panel{background-color:var(--background-bright, #ffffff);box-shadow:-3px 3px 15px 4px #3d464d33;height:100vh;width:50%;min-width:min-content;max-width:560px;position:absolute;top:0;right:0;padding:0;display:flex;justify-content:stretch;align-items:stretch}:host .aside-panel.draggable{position:absolute;max-width:none;height:auto;width:540px;left:calc(100vw - 560px);overflow:hidden;resize:both}:host .aside-panel.draggable .drag-handle{width:100%;height:calc(100% - 1rem)}\n"] }]
|
|
86
100
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: NovoAsideRef }], propDecorators: { animationStateChanged: [{
|
|
87
101
|
type: Output
|
|
88
102
|
}] } });
|
|
@@ -97,13 +111,14 @@ class NovoAsideService {
|
|
|
97
111
|
this.injector = injector;
|
|
98
112
|
this.overlay = overlay;
|
|
99
113
|
}
|
|
100
|
-
open(component, params = {}, config = {}) {
|
|
114
|
+
open(component, params = {}, config = {}, draggable = false) {
|
|
101
115
|
// Override default configuration
|
|
102
116
|
const asideConfig = this.getOverlayConfig({ ...DEFAULT_CONFIG, ...config });
|
|
103
117
|
// Returns an OverlayRef which is a PortalHost
|
|
104
118
|
const overlayRef = this.createOverlay(asideConfig);
|
|
105
119
|
// Instantiate remote control
|
|
106
120
|
const asideRef = new NovoAsideRef(component, params, overlayRef);
|
|
121
|
+
asideRef.draggable.set(draggable);
|
|
107
122
|
const overlayComponent = this.attachAsideContainer(AsideComponent, overlayRef, asideConfig, asideRef);
|
|
108
123
|
// Pass the instance of the overlay component to the remote control
|
|
109
124
|
asideRef.componentInstance = overlayComponent;
|
|
@@ -144,13 +159,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
144
159
|
|
|
145
160
|
class NovoAsideModule {
|
|
146
161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoAsideModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
147
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: NovoAsideModule, declarations: [AsideComponent], imports: [OverlayModule, PortalModule] }); }
|
|
148
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoAsideModule, providers: [NovoAsideService], imports: [OverlayModule, PortalModule] }); }
|
|
162
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: NovoAsideModule, declarations: [AsideComponent], imports: [CommonModule, DragDropModule, NovoCommonModule, OverlayModule, PortalModule] }); }
|
|
163
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoAsideModule, providers: [NovoAsideService], imports: [CommonModule, DragDropModule, NovoCommonModule, OverlayModule, PortalModule] }); }
|
|
149
164
|
}
|
|
150
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoAsideModule, decorators: [{
|
|
151
166
|
type: NgModule,
|
|
152
167
|
args: [{
|
|
153
|
-
imports: [OverlayModule, PortalModule],
|
|
168
|
+
imports: [CommonModule, DragDropModule, NovoCommonModule, OverlayModule, PortalModule],
|
|
154
169
|
declarations: [AsideComponent],
|
|
155
170
|
providers: [NovoAsideService],
|
|
156
171
|
}]
|