Skip to content

Commit 7ce1dbf

Browse files
added a feedback form
1 parent 64906ac commit 7ce1dbf

File tree

9 files changed

+534
-1
lines changed

9 files changed

+534
-1
lines changed

fluid.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
export const fluidEnvironments = {
2+
dev: {
3+
label: 'Development',
4+
esm: 'https://fluid-dev.lmig.com/fluid/build/fluid.esm.js',
5+
legacy: 'https://fluid-dev.lmig.com/fluid/build/fluid.js',
6+
},
7+
test: {
8+
label: 'Test',
9+
esm: 'https://fluid-components-test.libertymutual.com/fluid/build/fluid.esm.js',
10+
legacy: 'https://fluid-components-test.libertymutual.com/fluid/build/fluid.js',
11+
},
12+
prod: {
13+
label: 'Production',
14+
esm: 'https://fluid.lmig.com/fluid/build/fluid.esm.js',
15+
legacy: 'https://fluid.lmig.com/fluid/build/fluid.js',
16+
},
17+
local: {
18+
label: 'Local',
19+
esm: 'http://localhost:3333/fluid/build/fluid.esm.js',
20+
legacy: 'http://localhost:3333/fluid/build/fluid.js',
21+
},
22+
external: {
23+
label: 'External',
24+
esm: 'https://fluid.libertymutual.com/fluid/build/fluid.esm.js',
25+
legacy: 'https://fluid.libertymutual.com/fluid/build/fluid.js',
26+
},
27+
};

src/components.d.ts

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,28 @@ export namespace Components {
2525
}
2626
interface AppRoot {
2727
}
28+
interface FeedbackForm {
29+
"disableQuickbars": boolean;
30+
"disabled": boolean;
31+
"fontFamily": string;
32+
"fontSize": string;
33+
"initialValue": string;
34+
/**
35+
* Optional placeholder text displayed when the form field is empty.
36+
*/
37+
"placeholder": string;
38+
}
2839
interface HeaderNavigation {
2940
}
3041
interface PostsDashboard {
3142
}
3243
interface WebComponents {
3344
}
3445
}
46+
export interface FeedbackFormCustomEvent<T> extends CustomEvent<T> {
47+
detail: T;
48+
target: HTMLFeedbackFormElement;
49+
}
3550
declare global {
3651
interface HTMLAppHomePageElement extends Components.AppHomePage, HTMLStencilElement {
3752
}
@@ -51,6 +66,26 @@ declare global {
5166
prototype: HTMLAppRootElement;
5267
new (): HTMLAppRootElement;
5368
};
69+
interface HTMLFeedbackFormElementEventMap {
70+
"valueChange": string;
71+
"editorFocus": void;
72+
"editorBlur": void;
73+
"contentChanged": any;
74+
}
75+
interface HTMLFeedbackFormElement extends Components.FeedbackForm, HTMLStencilElement {
76+
addEventListener<K extends keyof HTMLFeedbackFormElementEventMap>(type: K, listener: (this: HTMLFeedbackFormElement, ev: FeedbackFormCustomEvent<HTMLFeedbackFormElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
77+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
78+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
79+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
80+
removeEventListener<K extends keyof HTMLFeedbackFormElementEventMap>(type: K, listener: (this: HTMLFeedbackFormElement, ev: FeedbackFormCustomEvent<HTMLFeedbackFormElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
81+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
82+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
83+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
84+
}
85+
var HTMLFeedbackFormElement: {
86+
prototype: HTMLFeedbackFormElement;
87+
new (): HTMLFeedbackFormElement;
88+
};
5489
interface HTMLHeaderNavigationElement extends Components.HeaderNavigation, HTMLStencilElement {
5590
}
5691
var HTMLHeaderNavigationElement: {
@@ -73,6 +108,7 @@ declare global {
73108
"app-home-page": HTMLAppHomePageElement;
74109
"app-profile-page": HTMLAppProfilePageElement;
75110
"app-root": HTMLAppRootElement;
111+
"feedback-form": HTMLFeedbackFormElement;
76112
"header-navigation": HTMLHeaderNavigationElement;
77113
"posts-dashboard": HTMLPostsDashboardElement;
78114
"web-components": HTMLWebComponentsElement;
@@ -98,6 +134,21 @@ declare namespace LocalJSX {
98134
}
99135
interface AppRoot {
100136
}
137+
interface FeedbackForm {
138+
"disableQuickbars"?: boolean;
139+
"disabled"?: boolean;
140+
"fontFamily"?: string;
141+
"fontSize"?: string;
142+
"initialValue"?: string;
143+
"onContentChanged"?: (event: FeedbackFormCustomEvent<any>) => void;
144+
"onEditorBlur"?: (event: FeedbackFormCustomEvent<void>) => void;
145+
"onEditorFocus"?: (event: FeedbackFormCustomEvent<void>) => void;
146+
"onValueChange"?: (event: FeedbackFormCustomEvent<string>) => void;
147+
/**
148+
* Optional placeholder text displayed when the form field is empty.
149+
*/
150+
"placeholder"?: string;
151+
}
101152
interface HeaderNavigation {
102153
}
103154
interface PostsDashboard {
@@ -108,6 +159,7 @@ declare namespace LocalJSX {
108159
"app-home-page": AppHomePage;
109160
"app-profile-page": AppProfilePage;
110161
"app-root": AppRoot;
162+
"feedback-form": FeedbackForm;
111163
"header-navigation": HeaderNavigation;
112164
"posts-dashboard": PostsDashboard;
113165
"web-components": WebComponents;
@@ -120,6 +172,7 @@ declare module "@stencil/core" {
120172
"app-home-page": LocalJSX.AppHomePage & JSXBase.HTMLAttributes<HTMLAppHomePageElement>;
121173
"app-profile-page": LocalJSX.AppProfilePage & JSXBase.HTMLAttributes<HTMLAppProfilePageElement>;
122174
"app-root": LocalJSX.AppRoot & JSXBase.HTMLAttributes<HTMLAppRootElement>;
175+
"feedback-form": LocalJSX.FeedbackForm & JSXBase.HTMLAttributes<HTMLFeedbackFormElement>;
123176
"header-navigation": LocalJSX.HeaderNavigation & JSXBase.HTMLAttributes<HTMLHeaderNavigationElement>;
124177
"posts-dashboard": LocalJSX.PostsDashboard & JSXBase.HTMLAttributes<HTMLPostsDashboardElement>;
125178
"web-components": LocalJSX.WebComponents & JSXBase.HTMLAttributes<HTMLWebComponentsElement>;

src/components/app-home-page/app-home-page.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ export class AppHome {
2323
>
2424
Profile Page
2525
</button>
26+
<button
27+
onClick={() => Router.push('/feedback-form')}
28+
>
29+
Feedback Form
30+
</button>
2631
<button
2732
onClick={() => Router.push('/web-components')}
2833
>

src/components/app-root/app-root.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ export class AppRoot {
3535
path={/^\/web-components/ }>
3636
<web-components></web-components>
3737
</Route>
38-
38+
<Route
39+
path={/^\/feedback-form/ }>
40+
<feedback-form></feedback-form>
41+
</Route>
3942
<Route
4043
path={match("/profile/:name")}
4144
render={({ name }) => <app-profile-page name={name} />}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@import '~tinymce/skins/content/default/content.min.css';
2+
@import '~tinymce/skins/ui/oxide/skin.min.css';
3+
@import '~tinymce/skins/ui/oxide/content.min.css';
4+
5+
:host {
6+
display: block;
7+
}
8+
9+
/*changing tinymce editor default style*/
10+
.tox.tox-tinymce {
11+
min-height: calc(var(--G-form-element-height) - (var(--G-border-width) * 2));
12+
padding-top: var(--form-element-padding-top);
13+
padding-bottom: var(--form-element-padding-bottom);
14+
border-top-right-radius: calc(var(--G-border-radius) + 1px);
15+
border-bottom-right-radius: calc(var(--G-border-radius) + 1px);
16+
resize: vertical;
17+
-ms-overflow-style: none;
18+
border-style: solid;
19+
border-color: light-dark(rgb(118, 118, 118), rgb(133, 133, 133));
20+
border-width: 1px;
21+
}
22+
23+
.tox {
24+
.tox-statusbar__resize-handle {
25+
display: none;
26+
}
27+
}

0 commit comments

Comments
 (0)