@ember-eui/core 12.0.9 → 12.0.11
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/declarations/components/eui-flyout.d.ts +1 -1
- package/declarations/components/eui-flyout.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor-footer.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor-toolbar.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor.d.ts +4 -0
- package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
- package/declarations/components/eui-markdown-format.d.ts +12 -6
- package/declarations/components/eui-markdown-format.d.ts.map +1 -1
- package/declarations/components/eui-range.d.ts +2 -2
- package/declarations/components/eui-range.d.ts.map +1 -1
- package/declarations/utils/css-mappings/eui-text.d.ts +1 -0
- package/declarations/utils/css-mappings/eui-text.d.ts.map +1 -1
- package/dist/components/eui-flyout.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer.js +14 -5
- package/dist/components/eui-markdown-editor-footer.js.map +1 -1
- package/dist/components/eui-markdown-editor-toolbar.js +4 -2
- package/dist/components/eui-markdown-editor-toolbar.js.map +1 -1
- package/dist/components/eui-markdown-editor.js +1 -1
- package/dist/components/eui-markdown-editor.js.map +1 -1
- package/dist/components/eui-markdown-format.js +8 -1
- package/dist/components/eui-markdown-format.js.map +1 -1
- package/dist/components/eui-range.js.map +1 -1
- package/dist/utils/css-mappings/eui-text.js +2 -1
- package/dist/utils/css-mappings/eui-text.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-flyout.d.ts","sourceRoot":"","sources":["../../src/components/eui-flyout.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AA0B3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAC9C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mBAAmB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE3C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-flyout.d.ts","sourceRoot":"","sources":["../../src/components/eui-flyout.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AA0B3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAC9C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mBAAmB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE3C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iBAAiB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAE/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,gBAAgB,CAAC,EAAE;QACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;QAC1D,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;QAC3D,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAuDF,eAAO,MAAM,KAAK,qBAAsB,CAAC;AACzC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAMnD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAClE,yBAAyB,UAGhC;IAEO,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1D,IAAI,EAAE,WAEL;IAED,IAAI,eAAe,YAElB;IAED,IAAI,mBAAmB,yBAEtB;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,IAAI,qBAEP;IAED,IAAI,IAAI,oBAEP;IAED,IAAI,WAAW,WAEd;IAED,IAAI,QAAQ,qBAEX;IAED,IAAI,IAAI,WAEP;IAED,IAAI,kBAAkB,YAErB;IAED,IAAI,IAAI,WAEP;IAED,IAAI,iBAAiB,+BAEpB;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,MAAM;;MAmBT;IAGD,4BAA4B;IAW5B,OAAO;IAKP,oBAAoB,CAAC,CAAC,EAAE,UAAU;IAMlC,QAAQ,CAAC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAsIvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-editor-footer.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-editor-footer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-markdown-editor-footer.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-editor-footer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAsB3C,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE;QACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;KACnB,CAAC;CACH;AAUD,MAAM,CAAC,OAAO,OAAO,gCAAiC,SAAQ,SAAS,CAAC,gCAAgC,CAAC;IAC9F,aAAa,UAAS;IACtB,aAAa,UAAS;CA4KhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-editor-toolbar.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-editor-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-markdown-editor-toolbar.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-editor-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAiB3C,OAAO,KAAK,eAAe,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC/D,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,4BAA4B,CAAC;IACnC,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EACJ,MAAM,GACN;QACE,SAAS,EAAE,GAAG,CAAC;KAChB,CAAC;IACN,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,iCAAkC,SAAQ,SAAS,CAAC,iCAAiC,CAAC;IACzG,kBAAkB;;;;;QAahB;IAEF,IACI,WAAW;;;;;;;;;;;;;;SAwBd;IAED,oBAAoB;;;;;QAmBlB;IAEF,IAAI,SAAS,UAEZ;IAED,IAAI,YAAY,YAEf;IAGD,mBAAmB,CAAC,UAAU,EAAE,MAAM;IAMtC,aAAa,CAAC,IAAI,EAAE,4BAA4B;CAkMjD"}
|
|
@@ -6,6 +6,7 @@ import { defaultParsingPlugins, defaultProcessingPlugins } from '../utils/markdo
|
|
|
6
6
|
import type { EuiMarkdownAstNode, EuiMarkdownAstNodePosition, EuiMarkdownEditorUiPlugin } from '../utils/markdown/markdown-types';
|
|
7
7
|
import type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';
|
|
8
8
|
import type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';
|
|
9
|
+
import type { EuiMarkdownFormatSignature } from './eui-markdown-format';
|
|
9
10
|
export interface EuiMarkdownEditorArgs {
|
|
10
11
|
initialViewMode?: string;
|
|
11
12
|
editorId?: string;
|
|
@@ -26,6 +27,9 @@ export interface EuiMarkdownEditorArgs {
|
|
|
26
27
|
ariaLabel?: string;
|
|
27
28
|
ariaLabelledBy?: string;
|
|
28
29
|
ariaDescribedBy?: string;
|
|
30
|
+
formatRootClasses?: EuiMarkdownFormatSignature['Args']['rootClasses'];
|
|
31
|
+
formatTextSize?: EuiMarkdownFormatSignature['Args']['textSize'];
|
|
32
|
+
formatShouldIncludeDefaultRootClasses?: EuiMarkdownFormatSignature['Args']['shouldIncludeDefaultRootClasses'];
|
|
29
33
|
}
|
|
30
34
|
export interface EuiMarkdownEditorSignature {
|
|
31
35
|
Element: EuiMarkdownEditorTextAreaSignature['Element'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-editor.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-editor.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAS3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAOtC,OAAO,OAAO,MAAM,SAAS,CAAC;AAM9B,OAAO,eAEN,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,6DAA6D,CAAC;AAQrE,OAAO,KAAK,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-markdown-editor.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,18 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import unified from 'unified';
|
|
3
3
|
import { defaultParsingPlugins, defaultProcessingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/index.ts';
|
|
4
4
|
import type { EuiMarkdownAstNodePosition } from '../utils/markdown/markdown-types';
|
|
5
|
+
import type { EuiTextSignature } from './eui-text';
|
|
5
6
|
export type Replacer = (position: EuiMarkdownAstNodePosition, str: string) => void;
|
|
6
7
|
export interface EuiMarkdownFormatSignature {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
Args: {
|
|
9
|
+
parsingPluginList?: typeof defaultParsingPlugins;
|
|
10
|
+
processingPluginList?: typeof defaultProcessingPlugins;
|
|
11
|
+
replaceNode?: Replacer;
|
|
12
|
+
value: string;
|
|
13
|
+
rootClasses?: string | string[];
|
|
14
|
+
textSize?: EuiTextSignature['Args']['size'];
|
|
15
|
+
shouldIncludeDefaultRootClasses?: boolean;
|
|
16
|
+
};
|
|
13
17
|
}
|
|
14
18
|
export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownFormatSignature> {
|
|
15
19
|
get parsingPluginList(): import("../utils/markdown/plugins/markdown-default-plugins/parsing-plugins.ts").DefaultEuiMarkdownParsingPlugins;
|
|
@@ -17,6 +21,8 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
|
|
|
17
21
|
get processor(): unified.Processor<unified.Settings>;
|
|
18
22
|
get shouldIncludeDefaultRootClasses(): boolean;
|
|
19
23
|
get rootClasses(): string[];
|
|
24
|
+
get textSize(): "xs" | "s" | "m" | "relative";
|
|
25
|
+
get textSizeClass(): string;
|
|
20
26
|
get result(): {
|
|
21
27
|
element: Node | undefined;
|
|
22
28
|
components: import("../utils/markdown/plugins/to-dom.ts").DynamicComponent[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-format.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-format.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAM3C,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-markdown-format.d.ts","sourceRoot":"","sources":["../../src/components/eui-markdown-format.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAM3C,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,6DAA6D,CAAC;AAGrE,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,MAAM,MAAM,QAAQ,GAAG,CACrB,QAAQ,EAAE,0BAA0B,EACpC,GAAG,EAAE,MAAM,KACR,IAAI,CAAC;AAEV,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE;QACJ,iBAAiB,CAAC,EAAE,OAAO,qBAAqB,CAAC;QACjD,oBAAoB,CAAC,EAAE,OAAO,wBAAwB,CAAC;QACvD,WAAW,CAAC,EAAE,QAAQ,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QAEd,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAChC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,+BAA+B,CAAC,EAAE,OAAO,CAAC;KAC3C,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,iCAAkC,SAAQ,SAAS,CAAC,0BAA0B,CAAC;IAClG,IAAI,iBAAiB,qHAEpB;IAED,IAAI,oBAAoB,QAEvB;IAED,IACI,SAAS,wCAcZ;IAED,IAAI,+BAA+B,YAElC;IAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAgB1B;IAED,IAAI,QAAQ,kCAEX;IAED,IAAI,aAAa,WAEhB;IAED,IACI,MAAM;;;aAaT;CAmCF"}
|
|
@@ -5,7 +5,7 @@ export interface EuiRangeArgs {
|
|
|
5
5
|
compressed?: boolean;
|
|
6
6
|
readOnly?: boolean;
|
|
7
7
|
fullWidth?: boolean;
|
|
8
|
-
id
|
|
8
|
+
id?: string;
|
|
9
9
|
/**
|
|
10
10
|
* Create colored indicators for certain intervals
|
|
11
11
|
*/
|
|
@@ -37,7 +37,7 @@ export interface EuiRangeArgs {
|
|
|
37
37
|
/**
|
|
38
38
|
* Specified ticks at specified values
|
|
39
39
|
*/
|
|
40
|
-
ticks
|
|
40
|
+
ticks?: EuiRangeTick[];
|
|
41
41
|
/**
|
|
42
42
|
* Modifies the number of tick marks and at what interval
|
|
43
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-range.d.ts","sourceRoot":"","sources":["../../src/components/eui-range.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AA0B3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-range.d.ts","sourceRoot":"","sources":["../../src/components/eui-range.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-text.d.ts","sourceRoot":"","sources":["../../../src/utils/css-mappings/eui-text.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"eui-text.d.ts","sourceRoot":"","sources":["../../../src/utils/css-mappings/eui-text.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC;AAEF,QAAA,MAAM,OAAO,EAAE,gBAKd,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-flyout.js","sources":["../../src/components/eui-flyout.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { element } from 'ember-element-helper';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier as modBuilder } from 'ember-modifier';\nimport styleModifier from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport outsideClickDetectorModifier from '../modifiers/outside-click-detector.ts';\nimport resizeObserverModifier from '../modifiers/resize-observer.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-flyout.ts';\nimport { keysOf } from './common.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiFlyoutArgs = {\n closeAriaLabel?: string;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n isFocusTrapActive?: boolean;\n\n as?: string;\n\n size?: number | string;\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n hideCloseButton?: boolean;\n\n closeButtonProps?: {\n className?: string;\n onClick?: (e: MouseEvent) => void;\n classes?: string;\n };\n\n closeButtonAriaLabel?: string;\n\n onClose: () => void;\n\n maxWidth?: boolean | number;\n\n maskProps?: Record<string, unknown>;\n\n type?: string;\n\n pushMinBreakpoint?: number | EuiBreakpointSize;\n\n shouldSelfFocus?: boolean;\n\n focusTrapOptions?: {\n allowOutsideClick?: boolean;\n clickOutsideDeactivates?: boolean;\n initialFocus?: string | HTMLElement | (() => HTMLElement);\n fallbackFocus?: string | HTMLElement | (() => HTMLElement);\n escapeDeactivates?: boolean;\n returnFocusOnDeactivate?: boolean;\n preventScroll?: boolean;\n };\n};\n\nconst classesModifier = modBuilder(\n (\n _element: Element,\n _pos,\n {\n type,\n isPushed,\n side,\n dimensions = {},\n functionToCallOnWindowResize\n }: {\n type: string;\n isPushed: boolean;\n side: string;\n dimensions?: { width?: number };\n functionToCallOnWindowResize: () => void;\n }\n ) => {\n // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)\n document.body.classList.add('euiBody--hasFlyout');\n\n /**\n * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element\n */\n if (type === 'push') {\n // Only add the event listener if we'll need to accommodate with padding\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n if (isPushed && dimensions.width) {\n if (side === 'right') {\n document.body.style.paddingRight = `${dimensions.width}px`;\n } else if (side === 'left') {\n document.body.style.paddingLeft = `${dimensions.width}px`;\n }\n }\n }\n\n return () => {\n document.body.classList.remove('euiBody--hasFlyout');\n\n if (type === 'push') {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n\n if (side === 'right') {\n document.body.style.paddingRight = '';\n } else if (side === 'left') {\n document.body.style.paddingLeft = '';\n }\n }\n };\n }\n);\n\nexport const SIZES = keysOf(sizeMapping);\nexport type EuiFlyoutSize = (typeof SIZES)[number];\n\nfunction isEuiFlyoutSizeNamed(value: any): value is EuiFlyoutSize {\n return SIZES.includes(value);\n}\n\nexport interface EuiFlyoutSignature {\n Element: any;\n Args: EuiFlyoutArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFlyoutComponent extends Component<EuiFlyoutSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.pushMinBreakpoint\n );\n\n @tracked dimensions?: { width?: number; height?: number };\n\n get as() {\n return this.args.as ?? 'div';\n }\n\n get hideCloseButton() {\n return this.args.hideCloseButton ?? false;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'inside';\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get side() {\n return this.args.side ?? 'right';\n }\n\n get size() {\n return this.args.size ?? 'm';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get maxWidth() {\n return this.args.maxWidth ?? false;\n }\n\n get type() {\n return this.args.type ?? 'overlay';\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? false;\n }\n\n get role() {\n return this.args.role ?? 'dialog';\n }\n\n get pushMinBreakpoint() {\n return this.args.pushMinBreakpoint ?? 'l';\n }\n\n get isPushed() {\n return this.type === 'push' && this.windowIsLargeEnoughToPush;\n }\n\n get styles() {\n let newStyle: { [key: string]: unknown } = {};\n\n if (this.maxWidth !== false) {\n const value =\n typeof this.maxWidth === 'number'\n ? `${this.maxWidth}px`\n : this.maxWidth;\n\n newStyle = { maxWidth: value };\n }\n\n if (!isEuiFlyoutSizeNamed(this.size) && newStyle) {\n newStyle['width'] = this.size;\n } else {\n newStyle = { width: this.size };\n }\n\n return newStyle;\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.pushMinBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n @action\n onClose() {\n this.args.onClose?.();\n }\n\n @action\n onButtonCloseClicked(e: MouseEvent) {\n this.onClose();\n this.args.closeButtonProps?.onClick?.(e);\n }\n\n @action\n onResize(dimensions: { width: number; height: number }) {\n this.dimensions = dimensions;\n }\n\n <template>\n {{#let\n (classNames\n (if (eq this.maxWidth true) \"euiFlyout--maxWidth-default\")\n componentName=\"EuiFlyout\"\n type=this.type\n side=this.side\n size=this.size\n padding=this.paddingSize\n )\n (classNames\n \"euiFlyout__closeButton\"\n (concat \"euiFlyout__closeButton--\" this.closeButtonPosition)\n (or @closeButtonProps.className @closeButtonProps.classes)\n )\n (modifier\n focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=this.isPushed\n focusTrapOptions=(argOrDefault\n @focusTrapOptions\n (hash\n allowOutsideClick=true clickOutsideDeactivates=(not this.ownFocus)\n )\n )\n )\n (modifier\n outsideClickDetectorModifier\n isDisabled=(or this.isPushed (not this.outsideClickCloses))\n onOutsideClick=this.onClose\n )\n (modifier styleModifier this.styles)\n (modifier onKey \"Escape\" this.onClose)\n (modifier\n classesModifier\n type=this.type\n isPushed=this.isPushed\n side=this.side\n dimensions=this.dimensions\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n )\n (modifier resizeObserverModifier onResize=this.onResize)\n (element this.as)\n as |classes closeButtonClasses focusTrapModifier outsideClickDetector currentStyles onEscape classesModifier resizeObserver TheElement|\n }}\n\n {{#if (and this.ownFocus (not this.isPushed))}}\n <EuiOverlayMask @headerZindexLocation=\"below\" @onClick={{this.onClose}}>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{!@glint-expect-error}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiOverlayMask>\n {{else if (not this.isPushed)}}\n <EuiPortal>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiPortal>\n {{else}}\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{onEscape}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["classesModifier","modBuilder","_element","_pos","type","isPushed","side","dimensions","functionToCallOnWindowResize","document","body","classList","add","window","addEventListener","width","style","paddingRight","paddingLeft","remove","removeEventListener","SIZES","keysOf","sizeMapping","isEuiFlyoutSizeNamed","value","includes","EuiFlyoutComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","pushMinBreakpoint","i","void 0","as","args","hideCloseButton","closeButtonPosition","ownFocus","size","paddingSize","maxWidth","outsideClickCloses","role","windowIsLargeEnoughToPush","styles","newStyle","throttle","n","action","onClose","onButtonCloseClicked","e","closeButtonProps","onClick","onResize","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","concat","or","focusTrap","argOrDefault","hash","not","outsideClickDetectorModifier","styleModifier","onKey","resizeObserverModifier","element","and","EuiOverlayMask","EuiButtonIcon","on","EuiPortal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-flyout.js","sources":["../../src/components/eui-flyout.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { element } from 'ember-element-helper';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier as modBuilder } from 'ember-modifier';\nimport styleModifier from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport outsideClickDetectorModifier from '../modifiers/outside-click-detector.ts';\nimport resizeObserverModifier from '../modifiers/resize-observer.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-flyout.ts';\nimport { keysOf } from './common.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiFlyoutArgs = {\n closeAriaLabel?: string;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n isFocusTrapActive?: boolean;\n\n as?: string;\n\n size?: number | string;\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n hideCloseButton?: boolean;\n\n closeButtonProps?: {\n className?: string;\n onClick?: (e: MouseEvent) => void;\n classes?: string;\n };\n\n closeButtonAriaLabel?: string;\n\n onClose?: () => void;\n\n maxWidth?: boolean | number;\n\n maskProps?: Record<string, unknown>;\n\n type?: string;\n\n pushMinBreakpoint?: number | EuiBreakpointSize;\n\n shouldSelfFocus?: boolean;\n\n focusTrapOptions?: {\n allowOutsideClick?: boolean;\n clickOutsideDeactivates?: boolean;\n initialFocus?: string | HTMLElement | (() => HTMLElement);\n fallbackFocus?: string | HTMLElement | (() => HTMLElement);\n escapeDeactivates?: boolean;\n returnFocusOnDeactivate?: boolean;\n preventScroll?: boolean;\n };\n};\n\nconst classesModifier = modBuilder(\n (\n _element: Element,\n _pos,\n {\n type,\n isPushed,\n side,\n dimensions = {},\n functionToCallOnWindowResize\n }: {\n type: string;\n isPushed: boolean;\n side: string;\n dimensions?: { width?: number };\n functionToCallOnWindowResize: () => void;\n }\n ) => {\n // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)\n document.body.classList.add('euiBody--hasFlyout');\n\n /**\n * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element\n */\n if (type === 'push') {\n // Only add the event listener if we'll need to accommodate with padding\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n if (isPushed && dimensions.width) {\n if (side === 'right') {\n document.body.style.paddingRight = `${dimensions.width}px`;\n } else if (side === 'left') {\n document.body.style.paddingLeft = `${dimensions.width}px`;\n }\n }\n }\n\n return () => {\n document.body.classList.remove('euiBody--hasFlyout');\n\n if (type === 'push') {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n\n if (side === 'right') {\n document.body.style.paddingRight = '';\n } else if (side === 'left') {\n document.body.style.paddingLeft = '';\n }\n }\n };\n }\n);\n\nexport const SIZES = keysOf(sizeMapping);\nexport type EuiFlyoutSize = (typeof SIZES)[number];\n\nfunction isEuiFlyoutSizeNamed(value: any): value is EuiFlyoutSize {\n return SIZES.includes(value);\n}\n\nexport interface EuiFlyoutSignature {\n Element: any;\n Args: EuiFlyoutArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFlyoutComponent extends Component<EuiFlyoutSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.pushMinBreakpoint\n );\n\n @tracked dimensions?: { width?: number; height?: number };\n\n get as() {\n return this.args.as ?? 'div';\n }\n\n get hideCloseButton() {\n return this.args.hideCloseButton ?? false;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'inside';\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get side() {\n return this.args.side ?? 'right';\n }\n\n get size() {\n return this.args.size ?? 'm';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get maxWidth() {\n return this.args.maxWidth ?? false;\n }\n\n get type() {\n return this.args.type ?? 'overlay';\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? false;\n }\n\n get role() {\n return this.args.role ?? 'dialog';\n }\n\n get pushMinBreakpoint() {\n return this.args.pushMinBreakpoint ?? 'l';\n }\n\n get isPushed() {\n return this.type === 'push' && this.windowIsLargeEnoughToPush;\n }\n\n get styles() {\n let newStyle: { [key: string]: unknown } = {};\n\n if (this.maxWidth !== false) {\n const value =\n typeof this.maxWidth === 'number'\n ? `${this.maxWidth}px`\n : this.maxWidth;\n\n newStyle = { maxWidth: value };\n }\n\n if (!isEuiFlyoutSizeNamed(this.size) && newStyle) {\n newStyle['width'] = this.size;\n } else {\n newStyle = { width: this.size };\n }\n\n return newStyle;\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.pushMinBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n @action\n onClose() {\n this.args.onClose?.();\n }\n\n @action\n onButtonCloseClicked(e: MouseEvent) {\n this.onClose();\n this.args.closeButtonProps?.onClick?.(e);\n }\n\n @action\n onResize(dimensions: { width: number; height: number }) {\n this.dimensions = dimensions;\n }\n\n <template>\n {{#let\n (classNames\n (if (eq this.maxWidth true) \"euiFlyout--maxWidth-default\")\n componentName=\"EuiFlyout\"\n type=this.type\n side=this.side\n size=this.size\n padding=this.paddingSize\n )\n (classNames\n \"euiFlyout__closeButton\"\n (concat \"euiFlyout__closeButton--\" this.closeButtonPosition)\n (or @closeButtonProps.className @closeButtonProps.classes)\n )\n (modifier\n focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=this.isPushed\n focusTrapOptions=(argOrDefault\n @focusTrapOptions\n (hash\n allowOutsideClick=true clickOutsideDeactivates=(not this.ownFocus)\n )\n )\n )\n (modifier\n outsideClickDetectorModifier\n isDisabled=(or this.isPushed (not this.outsideClickCloses))\n onOutsideClick=this.onClose\n )\n (modifier styleModifier this.styles)\n (modifier onKey \"Escape\" this.onClose)\n (modifier\n classesModifier\n type=this.type\n isPushed=this.isPushed\n side=this.side\n dimensions=this.dimensions\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n )\n (modifier resizeObserverModifier onResize=this.onResize)\n (element this.as)\n as |classes closeButtonClasses focusTrapModifier outsideClickDetector currentStyles onEscape classesModifier resizeObserver TheElement|\n }}\n\n {{#if (and this.ownFocus (not this.isPushed))}}\n <EuiOverlayMask @headerZindexLocation=\"below\" @onClick={{this.onClose}}>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{!@glint-expect-error}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiOverlayMask>\n {{else if (not this.isPushed)}}\n <EuiPortal>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiPortal>\n {{else}}\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{onEscape}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["classesModifier","modBuilder","_element","_pos","type","isPushed","side","dimensions","functionToCallOnWindowResize","document","body","classList","add","window","addEventListener","width","style","paddingRight","paddingLeft","remove","removeEventListener","SIZES","keysOf","sizeMapping","isEuiFlyoutSizeNamed","value","includes","EuiFlyoutComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","pushMinBreakpoint","i","void 0","as","args","hideCloseButton","closeButtonPosition","ownFocus","size","paddingSize","maxWidth","outsideClickCloses","role","windowIsLargeEnoughToPush","styles","newStyle","throttle","n","action","onClose","onButtonCloseClicked","e","closeButtonProps","onClick","onResize","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","concat","or","focusTrap","argOrDefault","hash","not","outsideClickDetectorModifier","styleModifier","onKey","resizeObserverModifier","element","and","EuiOverlayMask","EuiButtonIcon","on","EuiPortal"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import MarkdownLogo from './eui-markdown-editor-footer/icons/markdown-logo.js';
|
|
|
7
7
|
import EuiButtonEmpty from './eui-button-empty.js';
|
|
8
8
|
import EuiButtonIcon from './eui-button-icon.js';
|
|
9
9
|
import EuiHorizontalRule from './eui-horizontal-rule.js';
|
|
10
|
+
import EuiI18nComponent from './eui-i18n.js';
|
|
10
11
|
import EuiLoadingSpinner from './eui-loading-spinner.js';
|
|
11
12
|
import EuiMarkdownEditorToolbarComponent from './eui-markdown-format.js';
|
|
12
13
|
import EuiModal from './eui-modal.js';
|
|
@@ -14,12 +15,19 @@ import EuiModalBody from './eui-modal-body.js';
|
|
|
14
15
|
import EuiModalHeader from './eui-modal-header.js';
|
|
15
16
|
import EuiPopoverComponent from './eui-popover.js';
|
|
16
17
|
import EuiSpacer from './eui-spacer.js';
|
|
17
|
-
import
|
|
18
|
+
import './eui-text.js';
|
|
18
19
|
import EuiTitle from './eui-title.js';
|
|
19
20
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
20
21
|
import { setComponentTemplate } from '@ember/component';
|
|
21
22
|
import { g, i } from 'decorator-transforms/runtime';
|
|
22
23
|
|
|
24
|
+
const defaultMarkdownSyntaxHelp = `
|
|
25
|
+
The editor uses
|
|
26
|
+
|
|
27
|
+
[Github flavored markdown](https://github.github.com/gfm/).
|
|
28
|
+
|
|
29
|
+
You can also utilize these additional syntax plugins to add rich content to your text.
|
|
30
|
+
`;
|
|
23
31
|
class EuiMarkdownEditorFooterComponent extends Component {
|
|
24
32
|
static {
|
|
25
33
|
g(this.prototype, "isPopoverOpen", [tracked], function () {
|
|
@@ -34,7 +42,7 @@ class EuiMarkdownEditorFooterComponent extends Component {
|
|
|
34
42
|
}
|
|
35
43
|
#isShowingHelp = (i(this, "isShowingHelp"), void 0);
|
|
36
44
|
static {
|
|
37
|
-
setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{!-- pending implementation--}}\n <EuiButtonIcon @iconType={{component EuiLoadingSpinner}} @useComponent={{true}} {{!-- aria-label={ariaLabels.uploadingFiles} --}} />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover @isOpen={{this.isPopoverOpen}} @closePopover={{set this \"isPopoverOpen\" false}}>\n <:button>\n <EuiButtonEmpty @iconType=\"error\" @size=\"s\" @color=\"danger\" {{!-- aria-label={ariaLabels.showSyntaxErrors} --}} {{on \"click\" (set this \"isPopoverOpen\" (not this.isPopoverOpen))}}>\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon class=\"euiMarkdownEditorFooter__help\" @iconType={{component MarkdownLogo}} @useComponent={{true}} @color=\"text\" @useSvg={{true}} {{!-- aria-label={ariaLabels.showMarkdownHelp} --}} {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}} />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n
|
|
45
|
+
setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{!-- pending implementation--}}\n <EuiButtonIcon @iconType={{component EuiLoadingSpinner}} @useComponent={{true}} {{!-- aria-label={ariaLabels.uploadingFiles} --}} />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover @isOpen={{this.isPopoverOpen}} @closePopover={{set this \"isPopoverOpen\" false}}>\n <:button>\n <EuiButtonEmpty @iconType=\"error\" @size=\"s\" @color=\"danger\" {{!-- aria-label={ariaLabels.showSyntaxErrors} --}} {{on \"click\" (set this \"isPopoverOpen\" (not this.isPopoverOpen))}}>\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon class=\"euiMarkdownEditorFooter__help\" @iconType={{component MarkdownLogo}} @useComponent={{true}} @color=\"text\" @useSvg={{true}} {{!-- aria-label={ariaLabels.showMarkdownHelp} --}} {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}} />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n <EuiI18n @token=\"euiMarkdownEditorFooter.syntaxTitle\" @default=\"Syntax Help\" as |Token|>\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </h3>\n </EuiTitle>\n </EuiModalHeader>\n <EuiModalBody>\n\n <EuiI18n @token=\"euiMarkdownEditorFooter.syntaxHelp\" @default={{defaultMarkdownSyntaxHelp}} as |Token|>\n <Token as |value|>\n <EuiMarkdownFormat @value={{value}} />\n </Token>\n </EuiI18n>\n\n <EuiHorizontalRule />\n {{#each @uiPlugins as |uiPlugin|}}\n {{#if uiPlugin.helpText}}\n <EuiTitle size=\"xxs\">\n <p>\n <strong>{{uiPlugin.name}}</strong>\n </p>\n </EuiTitle>\n <EuiSpacer size=\"s\" />\n <EuiMarkdownFormat @value={{uiPlugin.helpText}} />\n <EuiSpacer size=\"l\" />\n\n {{/if}}\n {{/each}}\n </EuiModalBody>\n </EuiModal>\n\n {{/if}}\n </div>\n ", {
|
|
38
46
|
strictMode: true,
|
|
39
47
|
scope: () => ({
|
|
40
48
|
EuiButtonIcon,
|
|
@@ -49,11 +57,12 @@ class EuiMarkdownEditorFooterComponent extends Component {
|
|
|
49
57
|
EuiModal,
|
|
50
58
|
EuiModalHeader,
|
|
51
59
|
EuiTitle,
|
|
60
|
+
EuiI18n: EuiI18nComponent,
|
|
52
61
|
EuiModalBody,
|
|
53
|
-
|
|
62
|
+
defaultMarkdownSyntaxHelp,
|
|
63
|
+
EuiMarkdownFormat: EuiMarkdownEditorToolbarComponent,
|
|
54
64
|
EuiHorizontalRule,
|
|
55
|
-
EuiSpacer
|
|
56
|
-
EuiMarkdownFormat: EuiMarkdownEditorToolbarComponent
|
|
65
|
+
EuiSpacer
|
|
57
66
|
})
|
|
58
67
|
}), this);
|
|
59
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-editor-footer.js","sources":["../../src/components/eui-markdown-editor-footer.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\nimport { and, not } from 'ember-truth-helpers';\n\nimport MarkdownLogo from '../components/eui-markdown-editor-footer/icons/markdown-logo.gts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiHorizontalRule from './eui-horizontal-rule.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\nimport EuiModalBody from './eui-modal-body.gts';\nimport EuiModalHeader from './eui-modal-header.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nexport interface EuiMarkdownEditorFooterSignature {\n Args: {\n isUploadingFiles?: boolean;\n errors?: string[];\n uiPlugins?: any[];\n };\n}\n\nexport default class EuiMarkdownEditorFooterComponent extends Component<EuiMarkdownEditorFooterSignature> {\n @tracked isPopoverOpen = false;\n @tracked isShowingHelp = false;\n\n <template>\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{! pending implementation}}\n <EuiButtonIcon\n @iconType={{component EuiLoadingSpinner}}\n @useComponent={{true}}\n {{! aria-label={ariaLabels.uploadingFiles} }}\n />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{set this \"isPopoverOpen\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @iconType=\"error\"\n @size=\"s\"\n @color=\"danger\"\n {{! aria-label={ariaLabels.showSyntaxErrors} }}\n {{on\n \"click\"\n (set this \"isPopoverOpen\" (not this.isPopoverOpen))\n }}\n >\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon\n class=\"euiMarkdownEditorFooter__help\"\n @iconType={{component MarkdownLogo}}\n @useComponent={{true}}\n @color=\"text\"\n @useSvg={{true}}\n {{! aria-label={ariaLabels.showMarkdownHelp} }}\n {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}}\n />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n
|
|
1
|
+
{"version":3,"file":"eui-markdown-editor-footer.js","sources":["../../src/components/eui-markdown-editor-footer.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\nimport { and, not } from 'ember-truth-helpers';\n\nimport MarkdownLogo from '../components/eui-markdown-editor-footer/icons/markdown-logo.gts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiHorizontalRule from './eui-horizontal-rule.gts';\nimport EuiI18n from './eui-i18n.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\nimport EuiModalBody from './eui-modal-body.gts';\nimport EuiModalHeader from './eui-modal-header.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nexport interface EuiMarkdownEditorFooterSignature {\n Args: {\n isUploadingFiles?: boolean;\n errors?: string[];\n uiPlugins?: any[];\n };\n}\n\nconst defaultMarkdownSyntaxHelp = `\nThe editor uses \n\n[Github flavored markdown](https://github.github.com/gfm/).\n\nYou can also utilize these additional syntax plugins to add rich content to your text.\n`;\n\nexport default class EuiMarkdownEditorFooterComponent extends Component<EuiMarkdownEditorFooterSignature> {\n @tracked isPopoverOpen = false;\n @tracked isShowingHelp = false;\n\n <template>\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{! pending implementation}}\n <EuiButtonIcon\n @iconType={{component EuiLoadingSpinner}}\n @useComponent={{true}}\n {{! aria-label={ariaLabels.uploadingFiles} }}\n />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{set this \"isPopoverOpen\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @iconType=\"error\"\n @size=\"s\"\n @color=\"danger\"\n {{! aria-label={ariaLabels.showSyntaxErrors} }}\n {{on\n \"click\"\n (set this \"isPopoverOpen\" (not this.isPopoverOpen))\n }}\n >\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon\n class=\"euiMarkdownEditorFooter__help\"\n @iconType={{component MarkdownLogo}}\n @useComponent={{true}}\n @color=\"text\"\n @useSvg={{true}}\n {{! aria-label={ariaLabels.showMarkdownHelp} }}\n {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}}\n />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n <EuiI18n\n @token=\"euiMarkdownEditorFooter.syntaxTitle\"\n @default=\"Syntax Help\"\n as |Token|\n >\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </h3>\n </EuiTitle>\n </EuiModalHeader>\n <EuiModalBody>\n\n <EuiI18n\n @token=\"euiMarkdownEditorFooter.syntaxHelp\"\n @default={{defaultMarkdownSyntaxHelp}}\n as |Token|\n >\n <Token as |value|>\n <EuiMarkdownFormat @value={{value}} />\n </Token>\n </EuiI18n>\n\n <EuiHorizontalRule />\n {{#each @uiPlugins as |uiPlugin|}}\n {{#if uiPlugin.helpText}}\n <EuiTitle size=\"xxs\">\n <p>\n <strong>{{uiPlugin.name}}</strong>\n </p>\n </EuiTitle>\n <EuiSpacer size=\"s\" />\n <EuiMarkdownFormat @value={{uiPlugin.helpText}} />\n <EuiSpacer size=\"l\" />\n\n {{/if}}\n {{/each}}\n </EuiModalBody>\n </EuiModal>\n\n {{/if}}\n </div>\n </template>\n}\n"],"names":["defaultMarkdownSyntaxHelp","EuiMarkdownEditorFooterComponent","Component","g","prototype","tracked","i","void 0","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonIcon","EuiLoadingSpinner","and","EuiPopover","set","EuiButtonEmpty","on","not","MarkdownLogo","EuiModal","EuiModalHeader","EuiTitle","EuiI18n","EuiModalBody","EuiMarkdownFormat","EuiHorizontalRule","EuiSpacer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,4BAA4B;;;;;;AAMlC,CAAC;AAEc,MAAMC,yCAAyCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACrEC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAC9BC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAE/B,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA6FA,08EAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,aAAA;QAAAC,iBAAA;QAAAC,GAAA;oBAAAC,mBAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,cAAA;QAAAC,QAAA;iBAAAC,gBAAA;QAAAC,YAAA;QAAAzB,yBAAA;2BAAA0B,iCAAA;QAAAC,iBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -8,6 +8,7 @@ import { eq, and, gte } from 'ember-truth-helpers';
|
|
|
8
8
|
import { MODE_VIEWING } from '../utils/markdown/markdown-modes.js';
|
|
9
9
|
import EuiButtonEmpty from './eui-button-empty.js';
|
|
10
10
|
import EuiButtonIcon from './eui-button-icon.js';
|
|
11
|
+
import EuiI18nComponent from './eui-i18n.js';
|
|
11
12
|
import MarkdownCheckmark from './eui-markdown-editor-toolbar/icons/markdown-checkmark.js';
|
|
12
13
|
import EuiToolTip from './eui-tool-tip.js';
|
|
13
14
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -84,7 +85,7 @@ class EuiMarkdownEditorToolbarComponent extends Component {
|
|
|
84
85
|
return item.iconType.component;
|
|
85
86
|
}
|
|
86
87
|
static {
|
|
87
|
-
setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{this.itemComponent item}} {{!--@glint-expect-error--}} @useComponent={{if item.iconType.component true}} aria-label={{item.label}} @useSvg={{item.useSvg}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let (and @selectedNode (eq @selectedNode.type plugin.name)) as |isSelectedNodeType|}}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{style (if isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\"))}} {{on \"click\" (fn this.handleMdButtonClick plugin.name)}} @iconType={{plugin.button.iconType}} aria-label={{plugin.button.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty @iconType=\"editorCodeBlock\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n Editor\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty @iconType=\"eye\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n Preview\n </EuiButtonEmpty>\n {{/if}}\n </div>\n ", {
|
|
88
|
+
setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{this.itemComponent item}} {{!--@glint-expect-error--}} @useComponent={{if item.iconType.component true}} aria-label={{item.label}} @useSvg={{item.useSvg}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let (and @selectedNode (eq @selectedNode.type plugin.name)) as |isSelectedNodeType|}}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{style (if isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\"))}} {{on \"click\" (fn this.handleMdButtonClick plugin.name)}} @iconType={{plugin.button.iconType}} aria-label={{plugin.button.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty @iconType=\"editorCodeBlock\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n\n <EuiI18n @token=\"euiMarkdownEditorToolbar.editor\" @default=\"Editor\" as |Token|>\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty @iconType=\"eye\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n <EuiI18n @token=\"euiMarkdownEditorToolbar.preview\" @default=\"Preview\" as |Token|>\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n {{/if}}\n </div>\n ", {
|
|
88
89
|
strictMode: true,
|
|
89
90
|
scope: () => ({
|
|
90
91
|
EuiToolTip,
|
|
@@ -96,7 +97,8 @@ class EuiMarkdownEditorToolbarComponent extends Component {
|
|
|
96
97
|
eq,
|
|
97
98
|
style,
|
|
98
99
|
hash,
|
|
99
|
-
EuiButtonEmpty
|
|
100
|
+
EuiButtonEmpty,
|
|
101
|
+
EuiI18n: EuiI18nComponent
|
|
100
102
|
})
|
|
101
103
|
}), this);
|
|
102
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-editor-toolbar.js","sources":["../../src/components/eui-markdown-editor-toolbar.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\n\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, gte, or } from 'ember-truth-helpers';\n\nimport { MODE_VIEWING } from '../utils/markdown/markdown-modes.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport MarkdownCheckmark from './eui-markdown-editor-toolbar/icons/markdown-checkmark.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type MarkdownActions from '../utils/markdown/markdown-actions';\nimport type { EuiMarkdownEditorUiPlugin } from '../utils/markdown/markdown-types';\n\nexport interface EuiMarkdownEditorToolbarArgs {\n viewMode?: string;\n markdownActions: MarkdownActions;\n uiPlugins: any[];\n openPluginEditor?: (plugin: EuiMarkdownEditorUiPlugin) => void;\n onClickPreview: () => void;\n selectedNode: any;\n}\n\nexport interface EuiMarkdownEditorToolbarSignature {\n Element: HTMLDivElement;\n Args: EuiMarkdownEditorToolbarArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport interface EuiMarkdownEditorToolbarItem {\n id: string;\n label: string;\n name: string;\n iconType:\n | string\n | {\n component: any;\n };\n useSvg?: boolean;\n}\n\nexport default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownEditorToolbarSignature> {\n boldItalicsButtons = [\n {\n id: 'mdBold',\n label: 'Bold',\n name: 'bold',\n iconType: 'editorBold'\n },\n {\n id: 'mdItalic',\n label: 'Italic',\n name: 'italic',\n iconType: 'editorItalic'\n }\n ];\n\n @cached\n get listButtons() {\n return [\n {\n id: 'mdUl',\n label: 'Unordered list',\n name: 'ul',\n iconType: 'editorUnorderedList'\n },\n {\n id: 'mdOl',\n label: 'Ordered list',\n name: 'ol',\n iconType: 'editorOrderedList'\n },\n {\n id: 'mdTl',\n label: 'Task list',\n name: 'tl',\n useSvg: true,\n iconType: {\n component: MarkdownCheckmark\n }\n }\n ];\n }\n\n quoteCodeLinkButtons = [\n {\n id: 'mdQuote',\n label: 'Quote',\n name: 'quote',\n iconType: 'quote'\n },\n {\n id: 'mdCode',\n label: 'Code',\n name: 'code',\n iconType: 'editorCodeBlock'\n },\n {\n id: 'mdLink',\n label: 'Link',\n name: 'link',\n iconType: 'editorLink'\n }\n ];\n\n get uiPlugins() {\n return this.args.uiPlugins || [];\n }\n\n get isPreviewing() {\n return this.args.viewMode === MODE_VIEWING;\n }\n\n @action\n handleMdButtonClick(mdButtonId: string) {\n const actionResult = this.args.markdownActions.do(mdButtonId);\n\n if (actionResult !== true) this.args.openPluginEditor?.(actionResult!);\n }\n\n itemComponent(item: EuiMarkdownEditorToolbarItem) {\n if (typeof item.iconType === 'string') return item.iconType;\n\n return item.iconType.component;\n }\n\n <template>\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{this.itemComponent item}}\n {{!@glint-expect-error}}\n @useComponent={{if item.iconType.component true}}\n aria-label={{item.label}}\n @useSvg={{item.useSvg}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let\n (and @selectedNode (eq @selectedNode.type plugin.name))\n as |isSelectedNodeType|\n }}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{style\n (if\n isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\")\n )\n }}\n {{on \"click\" (fn this.handleMdButtonClick plugin.name)}}\n @iconType={{plugin.button.iconType}}\n aria-label={{plugin.button.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty\n @iconType=\"editorCodeBlock\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n Editor\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty\n @iconType=\"eye\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n Preview\n </EuiButtonEmpty>\n {{/if}}\n </div>\n </template>\n}\n"],"names":["EuiMarkdownEditorToolbarComponent","Component","boldItalicsButtons","id","label","name","iconType","listButtons","useSvg","component","MarkdownCheckmark","n","prototype","cached","quoteCodeLinkButtons","uiPlugins","args","isPreviewing","viewMode","MODE_VIEWING","handleMdButtonClick","mdButtonId","actionResult","markdownActions","do","openPluginEditor","action","itemComponent","item","setComponentTemplate","precompileTemplate","strictMode","scope","EuiToolTip","EuiButtonIcon","on","fn","gte","and","eq","style","hash","EuiButtonEmpty"],"mappings":"
|
|
1
|
+
{"version":3,"file":"eui-markdown-editor-toolbar.js","sources":["../../src/components/eui-markdown-editor-toolbar.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\n\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, gte, or } from 'ember-truth-helpers';\n\nimport { MODE_VIEWING } from '../utils/markdown/markdown-modes.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiI18n from './eui-i18n.gts';\nimport MarkdownCheckmark from './eui-markdown-editor-toolbar/icons/markdown-checkmark.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type MarkdownActions from '../utils/markdown/markdown-actions';\nimport type { EuiMarkdownEditorUiPlugin } from '../utils/markdown/markdown-types';\n\nexport interface EuiMarkdownEditorToolbarArgs {\n viewMode?: string;\n markdownActions: MarkdownActions;\n uiPlugins: any[];\n openPluginEditor?: (plugin: EuiMarkdownEditorUiPlugin) => void;\n onClickPreview: () => void;\n selectedNode: any;\n}\n\nexport interface EuiMarkdownEditorToolbarSignature {\n Element: HTMLDivElement;\n Args: EuiMarkdownEditorToolbarArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport interface EuiMarkdownEditorToolbarItem {\n id: string;\n label: string;\n name: string;\n iconType:\n | string\n | {\n component: any;\n };\n useSvg?: boolean;\n}\n\nexport default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownEditorToolbarSignature> {\n boldItalicsButtons = [\n {\n id: 'mdBold',\n label: 'Bold',\n name: 'bold',\n iconType: 'editorBold'\n },\n {\n id: 'mdItalic',\n label: 'Italic',\n name: 'italic',\n iconType: 'editorItalic'\n }\n ];\n\n @cached\n get listButtons() {\n return [\n {\n id: 'mdUl',\n label: 'Unordered list',\n name: 'ul',\n iconType: 'editorUnorderedList'\n },\n {\n id: 'mdOl',\n label: 'Ordered list',\n name: 'ol',\n iconType: 'editorOrderedList'\n },\n {\n id: 'mdTl',\n label: 'Task list',\n name: 'tl',\n useSvg: true,\n iconType: {\n component: MarkdownCheckmark\n }\n }\n ];\n }\n\n quoteCodeLinkButtons = [\n {\n id: 'mdQuote',\n label: 'Quote',\n name: 'quote',\n iconType: 'quote'\n },\n {\n id: 'mdCode',\n label: 'Code',\n name: 'code',\n iconType: 'editorCodeBlock'\n },\n {\n id: 'mdLink',\n label: 'Link',\n name: 'link',\n iconType: 'editorLink'\n }\n ];\n\n get uiPlugins() {\n return this.args.uiPlugins || [];\n }\n\n get isPreviewing() {\n return this.args.viewMode === MODE_VIEWING;\n }\n\n @action\n handleMdButtonClick(mdButtonId: string) {\n const actionResult = this.args.markdownActions.do(mdButtonId);\n\n if (actionResult !== true) this.args.openPluginEditor?.(actionResult!);\n }\n\n itemComponent(item: EuiMarkdownEditorToolbarItem) {\n if (typeof item.iconType === 'string') return item.iconType;\n\n return item.iconType.component;\n }\n\n <template>\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{this.itemComponent item}}\n {{!@glint-expect-error}}\n @useComponent={{if item.iconType.component true}}\n aria-label={{item.label}}\n @useSvg={{item.useSvg}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let\n (and @selectedNode (eq @selectedNode.type plugin.name))\n as |isSelectedNodeType|\n }}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{style\n (if\n isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\")\n )\n }}\n {{on \"click\" (fn this.handleMdButtonClick plugin.name)}}\n @iconType={{plugin.button.iconType}}\n aria-label={{plugin.button.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty\n @iconType=\"editorCodeBlock\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n\n <EuiI18n\n @token=\"euiMarkdownEditorToolbar.editor\"\n @default=\"Editor\"\n as |Token|\n >\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty\n @iconType=\"eye\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n <EuiI18n\n @token=\"euiMarkdownEditorToolbar.preview\"\n @default=\"Preview\"\n as |Token|\n >\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n {{/if}}\n </div>\n </template>\n}\n"],"names":["EuiMarkdownEditorToolbarComponent","Component","boldItalicsButtons","id","label","name","iconType","listButtons","useSvg","component","MarkdownCheckmark","n","prototype","cached","quoteCodeLinkButtons","uiPlugins","args","isPreviewing","viewMode","MODE_VIEWING","handleMdButtonClick","mdButtonId","actionResult","markdownActions","do","openPluginEditor","action","itemComponent","item","setComponentTemplate","precompileTemplate","strictMode","scope","EuiToolTip","EuiButtonIcon","on","fn","gte","and","eq","style","hash","EuiButtonEmpty","EuiI18n"],"mappings":"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"}
|
|
@@ -347,7 +347,7 @@ class EuiMarkdownEditorComponent extends Component {
|
|
|
347
347
|
this.pluginEditorPlugin = undefined;
|
|
348
348
|
};
|
|
349
349
|
static {
|
|
350
|
-
setComponentTemplate(precompileTemplate("\n <div class={{classNames \"euiMarkdownEditor\" (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\") (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")}} {{didUpdate this.updateCurrentHeight this.currentHeight this.isPreviewing this.height this.autoExpandPreview}}>\n <EuiMarkdownEditorToolbar @selectedNode={{this.selectedNode}} @markdownActions={{this.markdownActions}} @onClickPreview={{this.setViewMode}} @openPluginEditor={{this.openPluginEditor}} @viewMode={{this.viewMode}} @uiPlugins={{this.toolbarPlugins}} {{didInsert this.setEditorToolbarRef}} />\n {{#if this.isPreviewing}}\n <div class=\"euiMarkdownEditorPreview\" {{didInsert (set this \"previewRef\")}} {{style (hash height=this.previewHeight)}}>\n <EuiMarkdownFormat @parsingPluginList={{this.parsingPluginList}} @processingPluginList={{this.processingPluginList}} @value={{@value}} @replaceNode={{this.replaceNode}} />\n </div>\n {{/if}}\n\n <div class=\"euiMarkdownEditor__toggleContainer\" {{style height=this.editorToggleContainerHeight}}>\n <EuiMarkdownEditorDropZone @uiPlugins={{this.toolbarPlugins}} {{resizeObserver onResize=this.onResize}}>\n <EuiMarkdownEditorTextArea {{getCursorNodeModifier this.vFile this.setSelectedNode}} {{didUpdate this.onParse this.parsed}} {{didInsert this.setTextAreaRef}} disabled={{@disabled}} id={{this.editorId}} @height={{this.textAreaHeight}} @maxHeight={{this.textAreaMaxHeight}} value={{@value}} aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-describedby={{@ariaDescribedBy}} {{on \"input\" (pick \"target.value\" @onChange)}} {{validatableControl @isInvalid}} ...attributes />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor @node={{this.selectedNode}} @onCancel={{set this \"pluginEditorPlugin\" undefined}} @onSave={{this.onEditorPluginSave}} />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n ", {
|
|
350
|
+
setComponentTemplate(precompileTemplate("\n <div class={{classNames \"euiMarkdownEditor\" (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\") (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")}} {{didUpdate this.updateCurrentHeight this.currentHeight this.isPreviewing this.height this.autoExpandPreview}}>\n <EuiMarkdownEditorToolbar @selectedNode={{this.selectedNode}} @markdownActions={{this.markdownActions}} @onClickPreview={{this.setViewMode}} @openPluginEditor={{this.openPluginEditor}} @viewMode={{this.viewMode}} @uiPlugins={{this.toolbarPlugins}} {{didInsert this.setEditorToolbarRef}} />\n {{#if this.isPreviewing}}\n <div class=\"euiMarkdownEditorPreview\" {{didInsert (set this \"previewRef\")}} {{style (hash height=this.previewHeight)}}>\n <EuiMarkdownFormat @parsingPluginList={{this.parsingPluginList}} @processingPluginList={{this.processingPluginList}} @value={{@value}} @replaceNode={{this.replaceNode}} @rootClasses={{@formatRootClasses}} @textSize={{@formatTextSize}} @shouldIncludeDefaultRootClasses={{@formatShouldIncludeDefaultRootClasses}} />\n </div>\n {{/if}}\n\n <div class=\"euiMarkdownEditor__toggleContainer\" {{style height=this.editorToggleContainerHeight}}>\n <EuiMarkdownEditorDropZone @uiPlugins={{this.toolbarPlugins}} {{resizeObserver onResize=this.onResize}}>\n <EuiMarkdownEditorTextArea {{getCursorNodeModifier this.vFile this.setSelectedNode}} {{didUpdate this.onParse this.parsed}} {{didInsert this.setTextAreaRef}} disabled={{@disabled}} id={{this.editorId}} @height={{this.textAreaHeight}} @maxHeight={{this.textAreaMaxHeight}} value={{@value}} aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-describedby={{@ariaDescribedBy}} {{on \"input\" (pick \"target.value\" @onChange)}} {{validatableControl @isInvalid}} ...attributes />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor @node={{this.selectedNode}} @onCancel={{set this \"pluginEditorPlugin\" undefined}} @onSave={{this.onEditorPluginSave}} />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n ", {
|
|
351
351
|
strictMode: true,
|
|
352
352
|
scope: () => ({
|
|
353
353
|
classNames,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport pick from '@nullvoxpopuli/ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq } from 'ember-truth-helpers';\nimport unified from 'unified';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions, {\n insertText\n} from '../utils/markdown/markdown-actions.ts';\nimport {\n MODE_EDITING,\n MODE_VIEWING\n} from '../utils/markdown/markdown-modes.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\n\nimport type {\n EuiMarkdownAstNode,\n EuiMarkdownAstNodePosition,\n EuiMarkdownEditorUiPlugin\n} from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { Processor } from 'unified';\n\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (\n parseError: unknown | null,\n parsed: { messages: any[]; ast: any }\n ) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport const getCursorNode = (\n textareaRef: HTMLTextAreaElement,\n parsed: any\n): EuiMarkdownAstNode => {\n const { selectionStart } = textareaRef;\n\n let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;\n\n //eslint-disable-next-line\n outer: while (true) {\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n\n if (\n child &&\n child.position.start.offset < (selectionStart as number) &&\n (selectionStart as number) < child.position.end.offset\n ) {\n if (child.type === 'text') break outer; // don't dive into `text` nodes\n node = child;\n continue outer;\n }\n }\n }\n\n break;\n }\n\n return node;\n};\n\nfunction wrapper(\n textarea: HTMLTextAreaElement,\n parsed: any,\n callback: (node: EuiMarkdownAstNode) => void\n) {\n const node = getCursorNode(textarea, parsed);\n\n callback(node);\n}\n\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier(\n textarea: EuiMarkdownEditorTextAreaSignature['Element'],\n [parsed, onSelectedNode]: [any, (node: Node) => void]\n) {\n //@ts-expect-error\n const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);\n\n textarea.addEventListener('keyup', fn);\n textarea.addEventListener('mouseup', fn);\n\n return () => {\n textarea.removeEventListener('keyup', fn);\n textarea.removeEventListener('mouseup', fn);\n };\n});\n\nfunction isNewLine(char: string | undefined): boolean {\n if (char == null) return true;\n\n return !!char.match(/[\\r\\n]/);\n}\n\nfunction padWithNewlinesIfNeeded(textarea: HTMLTextAreaElement, text: string) {\n const selectionStart = textarea.selectionStart;\n const selectionEnd = textarea.selectionEnd;\n\n // block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability\n const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);\n const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);\n const isNextNewLine = isNewLine(textarea.value[selectionEnd]);\n\n // pad text with newlines as needed\n text = `${isPrevNewLine ? '' : '\\n'}${isPrevPrevNewLine ? '' : '\\n'}${text}${\n isNextNewLine ? '' : '\\n'\n }`;\n\n return text;\n}\n\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n @tracked pluginEditorPlugin?: EuiMarkdownEditorUiPlugin;\n\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins)\n declare parsingPluginList: typeof defaultParsingPlugins;\n\n @argOrDefaultDecorator(250) declare height: number | string;\n @argOrDefaultDecorator(500) declare maxHeight: number | string;\n @argOrDefaultDecorator(true) declare autoExpandPreview: boolean;\n\n @argOrDefaultDecorator(defaultProcessingPlugins)\n declare processingPluginList: typeof defaultProcessingPlugins;\n\n @tracked selectedNode: Node | null = null;\n @tracked editorId = this.args.editorId ?? guidFor({});\n @tracked viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked textareaRef: HTMLTextAreaElement | null = null;\n @tracked previewRef: HTMLDivElement | null = null;\n @tracked editorToolbarRef: HTMLDivElement | null = null;\n @tracked currentHeight: number | string = 250;\n @tracked editorFooterHeight: number = 0;\n @tracked editorToolbarHeight: number = 0;\n\n markdownActions: MarkdownActions;\n\n get toolbarPlugins() {\n return [MarkdownTooltipPlugin.plugin, ...(this.args.uiPlugins || [])];\n }\n\n constructor(owner: Owner, args: EuiMarkdownEditorArgs) {\n super(owner, args);\n this.markdownActions = new MarkdownActions(\n this.editorId,\n this.toolbarPlugins\n );\n this.currentHeight = this.height;\n }\n\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n\n return `${this.currentHeight}px`;\n }\n\n get textAreaHeight() {\n return this.height === 'full'\n ? '100%'\n : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n\n get textAreaMaxHeight() {\n return this.height !== 'full'\n ? `${(this.maxHeight as number) - this.editorFooterHeight}px`\n : '';\n }\n\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight =\n this.textareaRef.offsetHeight + this.editorFooterHeight;\n\n const update = () => {\n this.currentHeight = resizedTextareaHeight;\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n\n @action\n updateCurrentHeight() {\n let { isPreviewing, autoExpandPreview, height, previewRef, currentHeight } =\n this;\n\n if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {\n //@ts-ignore\n if (previewRef.scrollHeight > currentHeight) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle = window.getComputedStyle(previewRef);\n const borderWidth =\n parseFloat(elementComputedStyle.borderTopWidth) +\n parseFloat(elementComputedStyle.borderBottomWidth);\n const marginWidth =\n parseFloat(elementComputedStyle.marginTop) +\n parseFloat(elementComputedStyle.marginBottom);\n\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight = borderWidth + marginWidth + 1;\n\n const update = () => {\n if (previewRef) {\n this.currentHeight = previewRef.scrollHeight + extraHeight;\n }\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n }\n\n getCursorNode = () => {};\n\n @action\n setTextAreaRef(ref: HTMLTextAreaElement) {\n this.textareaRef = ref;\n }\n\n @action\n setEditorToolbarRef(ref: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref;\n this.editorToolbarHeight = ref.offsetHeight;\n }\n\n @action\n replaceNode(position: EuiMarkdownAstNodePosition, next: string) {\n let value = this.args.value;\n const leading = value.substr(0, position.start.offset);\n const trailing = value.substr(position.end.offset);\n\n this.args.onChange?.(`${leading}${next}${trailing}`);\n }\n\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n\n @cached\n get parser() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified().use(this.parsingPluginList).use(identityCompiler);\n }\n\n @cached\n get parsed(): [\n ReturnType<typeof this.parser.processSync> | null,\n null | unknown\n ] {\n try {\n const parsed = this.parser.processSync(this.args.value);\n\n return [parsed, null];\n } catch (e) {\n return [null, e];\n }\n }\n\n get vFile() {\n return this.parsed[0];\n }\n\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed, parseError] = this.parsed;\n const onParse = this.args.onParse;\n const messages = parsed ? parsed.messages : [];\n const ast = parsed ? parsed['result'] ?? parsed.contents : null;\n\n onParse(parseError, { messages, ast });\n }\n }\n\n @action\n setSelectedNode(node: Node) {\n this.selectedNode = node;\n }\n\n openPluginEditor = (plugin: EuiMarkdownEditorUiPlugin) => {\n this.pluginEditorPlugin = plugin;\n };\n\n onEditorPluginSave = (markdown: any, config: any) => {\n let { selectedNode, textareaRef } = this;\n\n if (\n this.pluginEditorPlugin &&\n selectedNode &&\n // @ts-expect-error\n selectedNode.type === this.pluginEditorPlugin.name &&\n // @ts-expect-error\n selectedNode.position\n ) {\n // modifying an existing node\n textareaRef!.setSelectionRange(\n // @ts-expect-error\n selectedNode.position.start.offset,\n // @ts-expect-error\n selectedNode.position.end.offset\n );\n } else {\n // creating a new node\n if (config.block) {\n // inject newlines if needed\n markdown = padWithNewlinesIfNeeded(textareaRef!, markdown);\n }\n }\n\n insertText(textareaRef!, {\n text: markdown,\n selectionStart: undefined,\n selectionEnd: undefined\n });\n\n this.pluginEditorPlugin = undefined;\n };\n\n <template>\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @openPluginEditor={{this.openPluginEditor}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor\n @node={{this.selectedNode}}\n @onCancel={{set this \"pluginEditorPlugin\" undefined}}\n @onSave={{this.onEditorPluginSave}}\n />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["getCursorNode","textareaRef","parsed","selectionStart","node","result","contents","outer","children","i","length","child","position","start","offset","end","type","wrapper","textarea","callback","getCursorNodeModifier","modifier","onSelectedNode","fn","bind","addEventListener","removeEventListener","isNewLine","char","match","padWithNewlinesIfNeeded","text","selectionEnd","isPrevNewLine","value","isPrevPrevNewLine","isNextNewLine","EuiMarkdownEditorComponent","Component","g","prototype","tracked","void 0","argOrDefaultDecorator","defaultParsingPlugins","defaultProcessingPlugins","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","isEditing","resizedTextareaHeight","offsetHeight","update","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","autoExpandPreview","previewRef","scrollHeight","elementComputedStyle","window","getComputedStyle","borderWidth","parseFloat","borderTopWidth","borderBottomWidth","marginWidth","marginTop","marginBottom","extraHeight","setTextAreaRef","ref","setEditorToolbarRef","editorToolbarRef","replaceNode","next","leading","substr","trailing","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler","tree","identityCompiler","unified","use","parsingPluginList","cached","processSync","e","vFile","onParse","parseError","messages","ast","setSelectedNode","selectedNode","openPluginEditor","plugin","pluginEditorPlugin","onEditorPluginSave","markdown","config","name","setSelectionRange","block","insertText","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl","EuiModal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+EaA,aAAgB,GAAAA,CAC3BC,WACA,EAAAC,MAAW,KACV;EACD,MAAM;AAAEC,IAAAA;AAAc,GAAE,GAAGF,WAAA;EAE3B,IAAIG,IAA2B,GAAAF,MAAA,CAAOG,MAAM,IAAIH,OAAOI,QAAQ;AAE/D;EACAC,KAAA,EAAO,OAAO,IAAM,EAAA;IAClB,IAAIH,IAAA,CAAKI,QAAQ,EAAE;AACjB,MAAA,KAAK,IAAIC,IAAI,CAAG,EAAAA,CAAA,GAAIL,KAAKI,QAAQ,CAACE,MAAM,EAAED,CAAK,EAAA,EAAA;AAC7C,QAAA,MAAME,KAAQ,GAAAP,IAAA,CAAKI,QAAQ,CAACC,CAAE,CAAA;QAE9B,IACEE,KAAA,IACAA,MAAMC,QAAQ,CAACC,KAAK,CAACC,MAAM,GAAIX,kBAC9BA,cAAA,GAA4BQ,KAAA,CAAMC,QAAQ,CAACG,GAAG,CAACD,MAAM,EACtD;UACA,IAAIH,MAAMK,IAAI,KAAK,MAAQ,EAAA,MAAMT;AACjCH,UAAAA,IAAO,GAAAO,KAAA;AACP,UAAA,SAASJ,KAAA;AACX;AACF;AACF;AAEA,IAAA;AACF;AAEA,EAAA,OAAOH,IAAA;AACT;AAEA,SAASa,OAAAA,CACPC,QAA6B,EAC7BhB,MAAW,EACXiB,QAA4C,EAAA;AAE5C,EAAA,MAAMf,IAAA,GAAOJ,cAAckB,QAAU,EAAAhB,MAAA,CAAA;EAErCiB,QAAS,CAAAf,IAAA,CAAA;AACX;AAEagB,MAAAA,qBAAwB,GAAAC,QAAA,CAAS,SAASD,qBAAAA,CACrDF,QAAuD,EACvD,CAAChB,QAAQoB,cAAkB,CAA0B,EAAA;AAErD;AACA,EAAA,MAAMC,KAAKN,OAAQ,CAAAO,IAAI,CAAC,IAAA,EAAMN,UAAUhB,MAAQ,EAAAoB,cAAA,CAAA;AAEhDJ,EAAAA,QAAS,CAAAO,gBAAgB,CAAC,OAAS,EAAAF,EAAA,CAAA;AACnCL,EAAAA,QAAS,CAAAO,gBAAgB,CAAC,SAAW,EAAAF,EAAA,CAAA;AAErC,EAAA,OAAO,MAAA;AACLL,IAAAA,QAAS,CAAAQ,mBAAmB,CAAC,OAAS,EAAAH,EAAA,CAAA;AACtCL,IAAAA,QAAS,CAAAQ,mBAAmB,CAAC,SAAW,EAAAH,EAAA,CAAA;GAC1C;AACF,CAAG;AAEH,SAASI,UAAUC,IAAwB,EAAU;AACnD,EAAA,IAAIA,IAAA,IAAQ,MAAM,OAAO,IAAA;AAEzB,EAAA,OAAO,CAAC,CAACA,IAAK,CAAAC,KAAK,CAAC,QAAA,CAAA;AACtB;AAEA,SAASC,uBAAwBA,CAAAZ,QAA6B,EAAEa,IAAY,EAAA;AAC1E,EAAA,MAAM5B,cAAA,GAAiBe,SAASf,cAAc;AAC9C,EAAA,MAAM6B,YAAA,GAAed,SAASc,YAAY;AAE1C;AACA,EAAA,MAAMC,gBAAgBN,SAAU,CAAAT,QAAA,CAASgB,KAAK,CAAC/B,iBAAiB,CAAE,CAAA,CAAA;AAClE,EAAA,MAAMgC,oBAAoBR,SAAU,CAAAT,QAAA,CAASgB,KAAK,CAAC/B,iBAAiB,CAAE,CAAA,CAAA;EACtE,MAAMiC,aAAgB,GAAAT,SAAA,CAAUT,QAAS,CAAAgB,KAAK,CAACF,YAAa,CAAA,CAAA;AAE5D;EACAD,IAAA,GAAO,GAAGE,aAAgB,GAAA,EAAA,GAAK,OAAOE,iBAAA,GAAoB,EAAK,GAAA,IAAA,GAAOJ,IAAK,CAAA,EACzEK,aAAgB,GAAA,EAAA,GAAK,KACrB,CAAA;AAEF,EAAA,OAAOL,IAAA;AACT;AAEe,MAAMM,mCAAmCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CAC/DC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,mBAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;AAAAH,IAAAA,CAAA,MAAAC,SAAA,EAAA,mBAAA,EAAA,CAGAG,qBAAsB,CAAAC,qBAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,kBAAA,IAAAnC,CAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,EAAAiC,MAAA,EADvB;AAAA,EAAA;AAAAH,IAAAA,CAAA,MAAAC,SAAA,EAAA,QAAA,EAAA,CAICG,qBAAsB,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAlC,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;AAAAH,IAAAA,CAAA,MAAAC,SAAA,EAAA,WAAA,EAAA,CACtBG,qBAAsB,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAlC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;AAAAH,IAAAA,CAAA,MAAAC,SAAA,EAAA,mBAAA,EAAA,CACtBG,qBAAsB,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,kBAAA,IAAAlC,CAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;AAAAH,IAAAA,CAAA,MAAAC,SAAA,EAAA,sBAAA,EAAA,CAEtBG,qBAAsB,CAAAE,wBAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,qBAAA,IAAApC,CAAA,CAAA,IAAA,EAAA,sBAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CAGtBC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAoC,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACzCC,OAAA,CAAA,EAAA,YAAA;MAAA,OAAmB,IAAI,CAACK,IAAI,CAACC,QAAQ,IAAIC,OAAA,CAAQ,EAAI,CAAA;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAvC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACrDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAmB,IAAI,CAACK,IAAI,CAACG,eAAe,IAAIC,YAAa;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAzC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CAC7DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkD,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,YAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACvDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4C,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CACjDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkD,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,iBAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACvDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAyC,GAAI;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CAC7CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAqC,CAAE;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,mBAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,EAAAiC,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,qBAAA,EAAA,CACvCC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAsC,CAAE;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,oBAAA,IAAAhC,CAAA,CAAA,IAAA,EAAA,qBAAA,CAAA,EAAAiC,MAAA;EAEzCS,eAAA;EAEA,IAAIC,cAAiBA,GAAA;AACnB,IAAA,OAAO,CAACC,aAA4B,EAAK,IAAC,IAAI,CAACP,IAAI,CAACQ,SAAS,IAAI,EAAE,CAAA,CAAE;AACvE;AAEAC,EAAAA,WAAAA,CAAYC,KAAY,EAAEV,IAA2B,EAAE;AACrD,IAAA,KAAK,CAACU,KAAO,EAAAV,IAAA,CAAA;AACb,IAAA,IAAI,CAACK,eAAe,GAAG,IAAIM,eAAA,CACzB,IAAI,CAACV,QAAQ,EACb,IAAI,CAACK,cAAc,CAAA;AAErB,IAAA,IAAI,CAACM,aAAa,GAAG,IAAI,CAACC,MAAM;AAClC;EAEA,IAAIC,aAAgBA,GAAA;AAClB,IAAA,IAAI,IAAI,CAACD,MAAM,KAAK,MAAQ,EAAA;AAC1B,MAAA,OAAO,CAAe,YAAA,EAAA,IAAI,CAACE,kBAAkB,CAAK,GAAA,CAAA;AACpD;AAEA,IAAA,OAAO,CAAG,EAAA,IAAI,CAACH,aAAa,CAAI,EAAA,CAAA;AAClC;EAEA,IAAII,cAAiBA,GAAA;AACnB,IAAA,OAAO,IAAI,CAACH,MAAM,KAAK,SACnB,MACA,GAAA,CAAS,KAAA,EAAA,IAAI,CAACA,MAAM,GAAc,IAAI,CAACE,kBAAkB,CAAK,GAAA,CAAA;AACpE;EAEA,IAAIE,iBAAoBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACJ,MAAM,KAAK,SACnB,CAAI,EAAA,IAAI,CAACK,SAAS,GAAc,IAAI,CAACH,kBAAkB,CAAA,EAAA,CAAI,GAC3D,EAAA;AACN;EAEA,IAAII,2BAA8BA,GAAA;AAChC,IAAA,OAAO,CAAe,YAAA,EAAA,IAAI,CAACC,mBAAmB,CAAK,GAAA,CAAA;AACrD;AAGAC,EAAAA,QAAWA,GAAA;AACT,IAAA,IAAI,IAAI,CAAClE,WAAW,IAAI,IAAI,CAACmE,SAAS,IAAI,IAAI,CAACT,MAAM,KAAK,MAAQ,EAAA;MAChE,MAAMU,qBAAA,GACJ,IAAI,CAACpE,WAAW,CAACqE,YAAY,GAAG,IAAI,CAACT,kBAAkB;MAEzD,MAAMU,MAAS,GAAAA,MAAA;QACb,IAAI,CAACb,aAAa,GAAGW,qBAAA;OACvB;AAEAG,MAAAA,YAAa,CAAA,aAAA,EAAe,IAAI,EAAED,MAAA,CAAA;AACpC;AACF;AAAA,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,UAAA,EAAA,CAZCkC,MAAA,CAAA,CAAA;AAAA;AAeDC,EAAAA,mBAAsBA,GAAA;IACpB,IAAI;MAAEC,YAAY;MAAEC,iBAAiB;MAAElB,MAAM;MAAEmB,UAAU;AAAEpB,MAAAA;AAAe,KAAA,GACxE,IAAI;IAEN,IAAIkB,YAAgB,IAAAC,iBAAA,IAAqBlB,MAAW,KAAA,MAAA,IAAUmB,UAAY,EAAA;AACxE;AACA,MAAA,IAAIA,UAAA,CAAWC,YAAY,GAAGrB,aAAe,EAAA;AAC3C;AACA;AACA;AACA;AACA,QAAA,MAAMsB,oBAAA,GAAuBC,MAAO,CAAAC,gBAAgB,CAACJ,UAAA,CAAA;AACrD,QAAA,MAAMK,cACJC,UAAW,CAAAJ,oBAAA,CAAqBK,cAAc,CAC9C,GAAAD,UAAA,CAAWJ,qBAAqBM,iBAAiB,CAAA;AACnD,QAAA,MAAMC,cACJH,UAAW,CAAAJ,oBAAA,CAAqBQ,SAAS,CACzC,GAAAJ,UAAA,CAAWJ,qBAAqBS,YAAY,CAAA;AAE9C;AACA,QAAA,MAAMC,WAAA,GAAcP,cAAcI,WAAc,GAAA,CAAA;QAEhD,MAAMhB,MAAS,GAAAA,MAAA;AACb,UAAA,IAAIO,UAAY,EAAA;AACd,YAAA,IAAI,CAACpB,aAAa,GAAGoB,UAAA,CAAWC,YAAY,GAAGW,WAAA;AACjD;SACF;AAEAlB,QAAAA,YAAa,CAAA,aAAA,EAAe,IAAI,EAAED,MAAA,CAAA;AACpC;AACF;AACF;AAAA,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,qBAAA,EAAA,CAhCCkC,MAAA,CAAA,CAAA;AAAA;AAkCD1E,EAAAA,aAAA,GAAgBA,QAAS;EAGzB2F,cAAeA,CAAAC,GAAwB,EAAE;IACvC,IAAI,CAAC3F,WAAW,GAAG2F,GAAA;AACrB;AAAA,EAAA;IAAAnB,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,gBAAA,EAAA,CAHCkC,MAAA,CAAA,CAAA;AAAA;EAMDmB,mBAAoBA,CAAAD,GAAiD,EAAE;IACrE,IAAI,CAACE,gBAAgB,GAAGF,GAAA;AACxB,IAAA,IAAI,CAAC1B,mBAAmB,GAAG0B,GAAA,CAAItB,YAAY;AAC7C;AAAA,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,qBAAA,EAAA,CAJCkC,MAAA,CAAA,CAAA;AAAA;AAODqB,EAAAA,WAAAA,CAAYnF,QAAoC,EAAEoF,IAAY,EAAE;AAC9D,IAAA,IAAI9D,KAAQ,GAAA,IAAI,CAACY,IAAI,CAACZ,KAAK;AAC3B,IAAA,MAAM+D,OAAA,GAAU/D,MAAMgE,MAAM,CAAC,GAAGtF,QAAS,CAAAC,KAAK,CAACC,MAAM,CAAA;IACrD,MAAMqF,WAAWjE,KAAM,CAAAgE,MAAM,CAACtF,QAAS,CAAAG,GAAG,CAACD,MAAM,CAAA;AAEjD,IAAA,IAAI,CAACgC,IAAI,CAACsD,QAAQ,GAAG,CAAA,EAAGH,OAAA,CAAA,EAAUD,IAAA,CAAA,EAAOG,QAAA,CAAA,CAAU,CAAA;AACrD;AAAA,EAAA;IAAA1B,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,aAAA,EAAA,CAPCkC,MAAA,CAAA,CAAA;AAAA;EASD,IAAIN,SAAYA,GAAA;AACd,IAAA,OAAO,IAAI,CAACiC,QAAQ,KAAKnD,YAAA;AAC3B;EAEA,IAAI0B,YAAeA,GAAA;AACjB,IAAA,OAAO,IAAI,CAACyB,QAAQ,KAAKC,YAAA;AAC3B;AAGAC,EAAAA,WAAcA,GAAA;IACZ,IAAI,CAACF,QAAQ,GAAG,IAAI,CAACzB,YAAY,GAAG1B,YAAe,GAAAoD,YAAA;AACrD;AAAA,EAAA;IAAA7B,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,aAAA,EAAA,CAHCkC,MAAA,CAAA,CAAA;AAAA;EAKD,IACI8B,MAASA,GAAA;IACX,MAAMC,QAAA,GAAYC,IAAS,IAAA;AACzB,MAAA,OAAOA,IAAA;KACT;IAEA,SAASC,gBAAAA,GAAgC;AACvC;MACA,IAAI,CAACF,QAAQ,GAAGA,QAAA;AAClB;AAEA,IAAA,OAAOG,OAAA,EAAA,CAAUC,GAAG,CAAC,IAAI,CAACC,iBAAiB,CAAA,CAAED,GAAG,CAACF,gBAAA,CAAA;AACnD;AAAA,EAAA;IAAAlC,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,QAAA,EAAA,CAZCuE,MAAA,CAAA,CAAA;AAAA;EAcD,IACI7G,MAAAA,GAGF;IACA,IAAI;AACF,MAAA,MAAMA,MAAA,GAAS,IAAI,CAACsG,MAAM,CAACQ,WAAW,CAAC,IAAI,CAAClE,IAAI,CAACZ,KAAK,CAAA;AAEtD,MAAA,OAAO,CAAChC,MAAA,EAAQ,IAAA,CAAK;KACvB,CAAE,OAAO+G,CAAG,EAAA;AACV,MAAA,OAAO,CAAC,IAAA,EAAMA,CAAA,CAAE;AAClB;AACF;AAAA,EAAA;IAAAxC,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,QAAA,EAAA,CAZCuE,MAAA,CAAA,CAAA;AAAA;EAcD,IAAIG,KAAQA,GAAA;AACV,IAAA,OAAO,IAAI,CAAChH,MAAM,CAAC,CAAE,CAAA;AACvB;AAGAiH,EAAAA,OAAUA,GAAA;AACR,IAAA,IAAI,IAAI,CAACrE,IAAI,CAACqE,OAAO,EAAE;MACrB,MAAM,CAACjH,MAAQ,EAAAkH,UAAA,CAAW,GAAG,IAAI,CAAClH,MAAM;AACxC,MAAA,MAAMiH,OAAU,GAAA,IAAI,CAACrE,IAAI,CAACqE,OAAO;MACjC,MAAME,QAAW,GAAAnH,MAAA,GAASA,MAAO,CAAAmH,QAAQ,GAAG,EAAE;AAC9C,MAAA,MAAMC,GAAA,GAAMpH,SAASA,MAAM,CAAC,SAAS,IAAIA,MAAA,CAAOI,QAAQ,GAAG,IAAA;MAE3D6G,OAAA,CAAQC,UAAY,EAAA;QAAEC,QAAA;AAAUC,QAAAA;AAAI,OAAA,CAAA;AACtC;AACF;AAAA,EAAA;IAAA7C,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,SAAA,EAAA,CAVCkC,MAAA,CAAA,CAAA;AAAA;EAaD6C,eAAgBA,CAAAnH,IAAU,EAAE;IAC1B,IAAI,CAACoH,YAAY,GAAGpH,IAAA;AACtB;AAAA,EAAA;IAAAqE,CAAA,CAAA,IAAA,CAAAjC,SAAA,EAAA,iBAAA,EAAA,CAHCkC,MAAA,CAAA,CAAA;AAAA;EAKD+C,gBAAA,GAAoBC,MAAQ,IAAA;IAC1B,IAAI,CAACC,kBAAkB,GAAGD,MAAA;GAC1B;AAEFE,EAAAA,kBAAA,GAAqBA,CAACC,QAAa,EAAEC,MAAW,KAAA;IAC9C,IAAI;MAAEN,YAAY;AAAEvH,MAAAA;AAAW,KAAE,GAAG,IAAI;AAExC,IAAA,IACE,IAAI,CAAC0H,kBAAkB,IACvBH;AACA;AACAA,IAAAA,YAAa,CAAAxG,IAAI,KAAK,IAAI,CAAC2G,kBAAkB,CAACI,IAAI;AAClD;IACAP,YAAA,CAAa5G,QAAQ,EACrB;AACA;AACAX,MAAAA,WAAa,CAAA+H,iBAAiB;AAC5B;AACAR,MAAAA,YAAA,CAAa5G,QAAQ,CAACC,KAAK,CAACC,MAAM;AAClC;AACA0G,MAAAA,YAAA,CAAa5G,QAAQ,CAACG,GAAG,CAACD,MAAM,CAAA;AAEpC,KAAO,MAAA;AACL;MACA,IAAIgH,MAAA,CAAOG,KAAK,EAAE;AAChB;AACAJ,QAAAA,QAAA,GAAW/F,wBAAwB7B,WAAc,EAAA4H,QAAA,CAAA;AACnD;AACF;IAEAK,UAAA,CAAWjI,WAAc,EAAA;AACvB8B,MAAAA,IAAM,EAAA8F,QAAA;AACN1H,MAAAA,cAAgB,EAAAgI,SAAA;AAChBnG,MAAAA,YAAc,EAAAmG;AAChB,KAAA,CAAA;IAEA,IAAI,CAACR,kBAAkB,GAAGQ,SAAA;GAC1B;AAEF,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA6EA,4nEAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,SAAA;kCAAAC,mCAAA;QAAAC,SAAA;QAAAC,GAAA;QAAAC,KAAA;QAAAC,IAAA;2BAAAC,iCAAA;QAAAC,yBAAA;wBAAAC,cAAA;QAAAC,yBAAA;QAAA/H,qBAAA;QAAAgI,EAAA;QAAAC,IAAA;QAAAC,kBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport pick from '@nullvoxpopuli/ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq } from 'ember-truth-helpers';\nimport unified from 'unified';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions, {\n insertText\n} from '../utils/markdown/markdown-actions.ts';\nimport {\n MODE_EDITING,\n MODE_VIEWING\n} from '../utils/markdown/markdown-modes.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\n\nimport type {\n EuiMarkdownAstNode,\n EuiMarkdownAstNodePosition,\n EuiMarkdownEditorUiPlugin\n} from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { EuiMarkdownFormatSignature } from './eui-markdown-format.gts';\nimport type { Processor } from 'unified';\n\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (\n parseError: unknown | null,\n parsed: { messages: any[]; ast: any }\n ) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n formatRootClasses?: EuiMarkdownFormatSignature['Args']['rootClasses'];\n formatTextSize?: EuiMarkdownFormatSignature['Args']['textSize'];\n formatShouldIncludeDefaultRootClasses?: EuiMarkdownFormatSignature['Args']['shouldIncludeDefaultRootClasses'];\n}\n\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport const getCursorNode = (\n textareaRef: HTMLTextAreaElement,\n parsed: any\n): EuiMarkdownAstNode => {\n const { selectionStart } = textareaRef;\n\n let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;\n\n //eslint-disable-next-line\n outer: while (true) {\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n\n if (\n child &&\n child.position.start.offset < (selectionStart as number) &&\n (selectionStart as number) < child.position.end.offset\n ) {\n if (child.type === 'text') break outer; // don't dive into `text` nodes\n node = child;\n continue outer;\n }\n }\n }\n\n break;\n }\n\n return node;\n};\n\nfunction wrapper(\n textarea: HTMLTextAreaElement,\n parsed: any,\n callback: (node: EuiMarkdownAstNode) => void\n) {\n const node = getCursorNode(textarea, parsed);\n\n callback(node);\n}\n\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier(\n textarea: EuiMarkdownEditorTextAreaSignature['Element'],\n [parsed, onSelectedNode]: [any, (node: Node) => void]\n) {\n //@ts-expect-error\n const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);\n\n textarea.addEventListener('keyup', fn);\n textarea.addEventListener('mouseup', fn);\n\n return () => {\n textarea.removeEventListener('keyup', fn);\n textarea.removeEventListener('mouseup', fn);\n };\n});\n\nfunction isNewLine(char: string | undefined): boolean {\n if (char == null) return true;\n\n return !!char.match(/[\\r\\n]/);\n}\n\nfunction padWithNewlinesIfNeeded(textarea: HTMLTextAreaElement, text: string) {\n const selectionStart = textarea.selectionStart;\n const selectionEnd = textarea.selectionEnd;\n\n // block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability\n const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);\n const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);\n const isNextNewLine = isNewLine(textarea.value[selectionEnd]);\n\n // pad text with newlines as needed\n text = `${isPrevNewLine ? '' : '\\n'}${isPrevPrevNewLine ? '' : '\\n'}${text}${\n isNextNewLine ? '' : '\\n'\n }`;\n\n return text;\n}\n\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n @tracked pluginEditorPlugin?: EuiMarkdownEditorUiPlugin;\n\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins)\n declare parsingPluginList: typeof defaultParsingPlugins;\n\n @argOrDefaultDecorator(250) declare height: number | string;\n @argOrDefaultDecorator(500) declare maxHeight: number | string;\n @argOrDefaultDecorator(true) declare autoExpandPreview: boolean;\n\n @argOrDefaultDecorator(defaultProcessingPlugins)\n declare processingPluginList: typeof defaultProcessingPlugins;\n\n @tracked selectedNode: Node | null = null;\n @tracked editorId = this.args.editorId ?? guidFor({});\n @tracked viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked textareaRef: HTMLTextAreaElement | null = null;\n @tracked previewRef: HTMLDivElement | null = null;\n @tracked editorToolbarRef: HTMLDivElement | null = null;\n @tracked currentHeight: number | string = 250;\n @tracked editorFooterHeight: number = 0;\n @tracked editorToolbarHeight: number = 0;\n\n markdownActions: MarkdownActions;\n\n get toolbarPlugins() {\n return [MarkdownTooltipPlugin.plugin, ...(this.args.uiPlugins || [])];\n }\n\n constructor(owner: Owner, args: EuiMarkdownEditorArgs) {\n super(owner, args);\n this.markdownActions = new MarkdownActions(\n this.editorId,\n this.toolbarPlugins\n );\n this.currentHeight = this.height;\n }\n\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n\n return `${this.currentHeight}px`;\n }\n\n get textAreaHeight() {\n return this.height === 'full'\n ? '100%'\n : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n\n get textAreaMaxHeight() {\n return this.height !== 'full'\n ? `${(this.maxHeight as number) - this.editorFooterHeight}px`\n : '';\n }\n\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight =\n this.textareaRef.offsetHeight + this.editorFooterHeight;\n\n const update = () => {\n this.currentHeight = resizedTextareaHeight;\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n\n @action\n updateCurrentHeight() {\n let { isPreviewing, autoExpandPreview, height, previewRef, currentHeight } =\n this;\n\n if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {\n //@ts-ignore\n if (previewRef.scrollHeight > currentHeight) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle = window.getComputedStyle(previewRef);\n const borderWidth =\n parseFloat(elementComputedStyle.borderTopWidth) +\n parseFloat(elementComputedStyle.borderBottomWidth);\n const marginWidth =\n parseFloat(elementComputedStyle.marginTop) +\n parseFloat(elementComputedStyle.marginBottom);\n\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight = borderWidth + marginWidth + 1;\n\n const update = () => {\n if (previewRef) {\n this.currentHeight = previewRef.scrollHeight + extraHeight;\n }\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n }\n\n getCursorNode = () => {};\n\n @action\n setTextAreaRef(ref: HTMLTextAreaElement) {\n this.textareaRef = ref;\n }\n\n @action\n setEditorToolbarRef(ref: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref;\n this.editorToolbarHeight = ref.offsetHeight;\n }\n\n @action\n replaceNode(position: EuiMarkdownAstNodePosition, next: string) {\n let value = this.args.value;\n const leading = value.substr(0, position.start.offset);\n const trailing = value.substr(position.end.offset);\n\n this.args.onChange?.(`${leading}${next}${trailing}`);\n }\n\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n\n @cached\n get parser() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified().use(this.parsingPluginList).use(identityCompiler);\n }\n\n @cached\n get parsed(): [\n ReturnType<typeof this.parser.processSync> | null,\n null | unknown\n ] {\n try {\n const parsed = this.parser.processSync(this.args.value);\n\n return [parsed, null];\n } catch (e) {\n return [null, e];\n }\n }\n\n get vFile() {\n return this.parsed[0];\n }\n\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed, parseError] = this.parsed;\n const onParse = this.args.onParse;\n const messages = parsed ? parsed.messages : [];\n const ast = parsed ? parsed['result'] ?? parsed.contents : null;\n\n onParse(parseError, { messages, ast });\n }\n }\n\n @action\n setSelectedNode(node: Node) {\n this.selectedNode = node;\n }\n\n openPluginEditor = (plugin: EuiMarkdownEditorUiPlugin) => {\n this.pluginEditorPlugin = plugin;\n };\n\n onEditorPluginSave = (markdown: any, config: any) => {\n let { selectedNode, textareaRef } = this;\n\n if (\n this.pluginEditorPlugin &&\n selectedNode &&\n // @ts-expect-error\n selectedNode.type === this.pluginEditorPlugin.name &&\n // @ts-expect-error\n selectedNode.position\n ) {\n // modifying an existing node\n textareaRef!.setSelectionRange(\n // @ts-expect-error\n selectedNode.position.start.offset,\n // @ts-expect-error\n selectedNode.position.end.offset\n );\n } else {\n // creating a new node\n if (config.block) {\n // inject newlines if needed\n markdown = padWithNewlinesIfNeeded(textareaRef!, markdown);\n }\n }\n\n insertText(textareaRef!, {\n text: markdown,\n selectionStart: undefined,\n selectionEnd: undefined\n });\n\n this.pluginEditorPlugin = undefined;\n };\n\n <template>\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @openPluginEditor={{this.openPluginEditor}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n @rootClasses={{@formatRootClasses}}\n @textSize={{@formatTextSize}}\n @shouldIncludeDefaultRootClasses={{@formatShouldIncludeDefaultRootClasses}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor\n @node={{this.selectedNode}}\n @onCancel={{set this \"pluginEditorPlugin\" undefined}}\n @onSave={{this.onEditorPluginSave}}\n />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["getCursorNode","textareaRef","parsed","selectionStart","node","result","contents","outer","children","i","length","child","position","start","offset","end","type","wrapper","textarea","callback","getCursorNodeModifier","modifier","onSelectedNode","fn","bind","addEventListener","removeEventListener","isNewLine","char","match","padWithNewlinesIfNeeded","text","selectionEnd","isPrevNewLine","value","isPrevPrevNewLine","isNextNewLine","EuiMarkdownEditorComponent","Component","g","prototype","tracked","void 0","argOrDefaultDecorator","defaultParsingPlugins","defaultProcessingPlugins","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","isEditing","resizedTextareaHeight","offsetHeight","update","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","autoExpandPreview","previewRef","scrollHeight","elementComputedStyle","window","getComputedStyle","borderWidth","parseFloat","borderTopWidth","borderBottomWidth","marginWidth","marginTop","marginBottom","extraHeight","setTextAreaRef","ref","setEditorToolbarRef","editorToolbarRef","replaceNode","next","leading","substr","trailing","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler","tree","identityCompiler","unified","use","parsingPluginList","cached","processSync","e","vFile","onParse","parseError","messages","ast","setSelectedNode","selectedNode","openPluginEditor","plugin","pluginEditorPlugin","onEditorPluginSave","markdown","config","name","setSelectionRange","block","insertText","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl","EuiModal"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { isArray } from '@ember/array';
|
|
|
4
4
|
import { EnsureSafeComponentHelper } from '@embroider/util';
|
|
5
5
|
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
6
6
|
import unified from 'unified';
|
|
7
|
+
import { sizeMapping } from '../utils/css-mappings/eui-text.js';
|
|
7
8
|
import { defaultParsingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js';
|
|
8
9
|
import { defaultProcessingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/processing-plugins.js';
|
|
9
10
|
import '../utils/markdown/plugins/markdown-default-plugins/ui-plugins.js';
|
|
@@ -38,7 +39,7 @@ class EuiMarkdownEditorToolbarComponent extends Component {
|
|
|
38
39
|
get rootClasses() {
|
|
39
40
|
let baseClasses = ['euiMarkdownFormat'];
|
|
40
41
|
if (this.shouldIncludeDefaultRootClasses) {
|
|
41
|
-
baseClasses = baseClasses.concat(['euiText',
|
|
42
|
+
baseClasses = baseClasses.concat(['euiText', this.textSizeClass]);
|
|
42
43
|
}
|
|
43
44
|
if (this.args.rootClasses) {
|
|
44
45
|
let rootClasses = isArray(this.args.rootClasses) ? this.args.rootClasses : this.args.rootClasses?.trim()?.split(' ') || [];
|
|
@@ -46,6 +47,12 @@ class EuiMarkdownEditorToolbarComponent extends Component {
|
|
|
46
47
|
}
|
|
47
48
|
return baseClasses;
|
|
48
49
|
}
|
|
50
|
+
get textSize() {
|
|
51
|
+
return this.args.textSize || 'm';
|
|
52
|
+
}
|
|
53
|
+
get textSizeClass() {
|
|
54
|
+
return sizeMapping[this.textSize];
|
|
55
|
+
}
|
|
49
56
|
get result() {
|
|
50
57
|
try {
|
|
51
58
|
const processed = this.processor.processSync(this.args.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-format.js","sources":["../../src/components/eui-markdown-format.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport unified from 'unified';\n\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport { toDOM } from '../utils/markdown/plugins/to-dom.ts';\n\nimport type {\n EuiMarkdownAstNodePosition,\n RehypeNode\n} from '../utils/markdown/markdown-types';\nimport type { Processor } from 'unified';\n\nexport type Replacer = (\n position: EuiMarkdownAstNodePosition,\n str: string\n) => void;\n\nexport interface EuiMarkdownFormatSignature {\n parsingPluginList?: typeof defaultParsingPlugins;\n
|
|
1
|
+
{"version":3,"file":"eui-markdown-format.js","sources":["../../src/components/eui-markdown-format.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport unified from 'unified';\n\nimport { sizeMapping as textSizeMapping } from '../utils/css-mappings/eui-text.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport { toDOM } from '../utils/markdown/plugins/to-dom.ts';\n\nimport type {\n EuiMarkdownAstNodePosition,\n RehypeNode\n} from '../utils/markdown/markdown-types';\nimport type { EuiTextSignature } from './eui-text.gts';\nimport type { Processor } from 'unified';\n\nexport type Replacer = (\n position: EuiMarkdownAstNodePosition,\n str: string\n) => void;\n\nexport interface EuiMarkdownFormatSignature {\n Args: {\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n replaceNode?: Replacer;\n value: string;\n //you can pass in a string or an array of strings to be added to the root element\n rootClasses?: string | string[];\n textSize?: EuiTextSignature['Args']['size'];\n shouldIncludeDefaultRootClasses?: boolean;\n };\n}\n\nexport default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownFormatSignature> {\n get parsingPluginList() {\n return this.args.parsingPluginList || defaultParsingPlugins;\n }\n\n get processingPluginList() {\n return this.args.processingPluginList || defaultProcessingPlugins;\n }\n\n @cached\n get processor() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified()\n .use(this.parsingPluginList)\n .use(this.processingPluginList)\n .use(identityCompiler);\n }\n\n get shouldIncludeDefaultRootClasses() {\n return this.args.shouldIncludeDefaultRootClasses ?? true;\n }\n\n get rootClasses(): string[] {\n let baseClasses = ['euiMarkdownFormat'];\n\n if (this.shouldIncludeDefaultRootClasses) {\n baseClasses = baseClasses.concat(['euiText', this.textSizeClass]);\n }\n\n if (this.args.rootClasses) {\n let rootClasses = isArray(this.args.rootClasses)\n ? this.args.rootClasses\n : (this.args.rootClasses as string)?.trim()?.split(' ') || [];\n\n baseClasses = baseClasses.concat(rootClasses);\n }\n\n return baseClasses;\n }\n\n get textSize() {\n return this.args.textSize || 'm';\n }\n\n get textSizeClass() {\n return textSizeMapping[this.textSize];\n }\n\n @cached\n get result() {\n try {\n const processed = this.processor.processSync(this.args.value);\n\n return toDOM(processed['result'] as RehypeNode, {\n rootClasses: this.rootClasses\n });\n //eslint-disable-next-line\n } catch (e) {\n console.warn(e);\n }\n\n return null;\n }\n\n <template>\n {{! This hbs was inspired by https://github.com/ampatspell/ember-cli-remark-static/blob/v3.0.5/addon/components/remark.hbs }}\n {{#if this.result}}\n {{this.result.element}}\n {{#each this.result.components as |CompNode|}}\n {{#in-element CompNode.element}}\n {{#if CompNode.componentName}}\n {{#let\n (component (EnsureSafeComponentHelper CompNode.componentName))\n as |DynamicComponent|\n }}\n <DynamicComponent\n @replaceNode={{optional @replaceNode}}\n @node={{CompNode}}\n />\n {{/let}}\n {{/if}}\n {{/in-element}}\n {{/each}}\n {{/if}}\n </template>\n}\n"],"names":["EuiMarkdownEditorToolbarComponent","Component","parsingPluginList","args","defaultParsingPlugins","processingPluginList","defaultProcessingPlugins","processor","Compiler","tree","identityCompiler","unified","use","n","prototype","cached","shouldIncludeDefaultRootClasses","rootClasses","baseClasses","concat","textSizeClass","isArray","trim","split","textSize","textSizeMapping","result","processed","processSync","value","toDOM","e","console","warn","setComponentTemplate","precompileTemplate","strictMode","scope","EnsureSafeComponentHelper","optional"],"mappings":";;;;;;;;;;;;;;;AAwCe,MAAMA,0CAA0CC,SAAU,CAAA;EACvE,IAAIC,iBAAoBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,iBAAiB,IAAIE,qBAAA;AACxC;EAEA,IAAIC,oBAAuBA,GAAA;AACzB,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,oBAAoB,IAAIC,wBAAA;AAC3C;EAEA,IACIC,SAAYA,GAAA;IACd,MAAMC,QAAA,GAAYC,IAAS,IAAA;AACzB,MAAA,OAAOA,IAAA;KACT;IAEA,SAASC,gBAAAA,GAAgC;AACvC;MACA,IAAI,CAACF,QAAQ,GAAGA,QAAA;AAClB;IAEA,OAAOG,OACJ,EAAA,CAAAC,GAAG,CAAC,IAAI,CAACV,iBAAiB,CAAA,CAC1BU,GAAG,CAAC,IAAI,CAACP,oBAAoB,CAAA,CAC7BO,GAAG,CAACF,gBAAA,CAAA;AACT;AAAA,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAfCC,MAAA,CAAA,CAAA;AAAA;EAiBD,IAAIC,+BAAkCA,GAAA;AACpC,IAAA,OAAO,IAAI,CAACb,IAAI,CAACa,+BAA+B,IAAI,IAAA;AACtD;EAEA,IAAIC,WAAAA,GAAwB;AAC1B,IAAA,IAAIC,WAAc,GAAA,CAAC,mBAAA,CAAoB;IAEvC,IAAI,IAAI,CAACF,+BAA+B,EAAE;AACxCE,MAAAA,WAAc,GAAAA,WAAA,CAAYC,MAAM,CAAC,CAAC,SAAA,EAAW,IAAI,CAACC,aAAa,CAAC,CAAA;AAClE;AAEA,IAAA,IAAI,IAAI,CAACjB,IAAI,CAACc,WAAW,EAAE;AACzB,MAAA,IAAIA,WAAA,GAAcI,OAAQ,CAAA,IAAI,CAAClB,IAAI,CAACc,WAAW,CAC3C,GAAA,IAAI,CAACd,IAAI,CAACc,WAAW,GACpB,IAAI,CAACd,IAAI,CAACc,WAAW,EAAaK,IAAA,EAAA,EAAQC,KAAM,CAAA,GAAA,CAAA,IAAQ,EAAE;AAE/DL,MAAAA,WAAc,GAAAA,WAAA,CAAYC,MAAM,CAACF,WAAA,CAAA;AACnC;AAEA,IAAA,OAAOC,WAAA;AACT;EAEA,IAAIM,QAAWA,GAAA;AACb,IAAA,OAAO,IAAI,CAACrB,IAAI,CAACqB,QAAQ,IAAI,GAAA;AAC/B;EAEA,IAAIJ,aAAgBA,GAAA;AAClB,IAAA,OAAOK,WAAe,CAAC,IAAI,CAACD,QAAQ,CAAC;AACvC;EAEA,IACIE,MAASA,GAAA;IACX,IAAI;AACF,MAAA,MAAMC,SAAA,GAAY,IAAI,CAACpB,SAAS,CAACqB,WAAW,CAAC,IAAI,CAACzB,IAAI,CAAC0B,KAAK,CAAA;AAE5D,MAAA,OAAOC,KAAM,CAAAH,SAAS,CAAC,QAAA,CAAS,EAAgB;QAC9CV,WAAa,EAAA,IAAI,CAACA;AACpB,OAAA,CAAA;AACA;KACF,CAAE,OAAOc,CAAG,EAAA;AACVC,MAAAA,OAAA,CAAQC,IAAI,CAACF,CAAA,CAAA;AACf;AAEA,IAAA,OAAO,IAAA;AACT;AAAA,EAAA;IAAAlB,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAdCC,MAAA,CAAA,CAAA;AAAA;AAgBD,EAAA;IAAAmB,oBAAA,CAAAC,kBAAA,CAoBA,wnBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,yBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-range.js","sources":["../../src/components/eui-range.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { later } from '@ember/runloop';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport argOrDefault, {\n argOrDefaultDecorator\n} from '../helpers/arg-or-default.ts';\nimport castTo from '../helpers/cast-to.ts';\nimport classNames from '../helpers/class-names.ts';\nimport { isWithinRange } from '../utils/number/index.ts';\nimport EuiInputPopover from './eui-input-popover.gts';\nimport EuiRangeHighlight from './eui-range-highlight.gts';\nimport EuiRangeInput from './eui-range-input.gts';\nimport EuiRangeLabel from './eui-range-label.gts';\nimport EuiRangeSlider from './eui-range-slider.gts';\nimport EuiRangeTooltip from './eui-range-tooltip.gts';\nimport EuiRangeTrack from './eui-range-track.gts';\nimport EuiRangeWrapper from './eui-range-wrapper.gts';\n\nimport type { EuiRangeLevel } from './eui-range-levels';\nimport type { EuiRangeTick } from './eui-range-ticks';\n\nexport interface EuiRangeArgs {\n compressed?: boolean;\n readOnly?: boolean;\n fullWidth?: boolean;\n id: string;\n /**\n * Create colored indicators for certain intervals\n */\n levels?: EuiRangeLevel[];\n step?: number;\n /**\n * Pass `true` to displays an extra input control for direct manipulation.\n * Pass `'inputWithPopover'` to only show the input but show the range in a dropdown.\n */\n showInput?: boolean | 'inputWithPopover';\n /**\n * Shows static min/max labels on the sides of the range slider\n */\n showLabels?: boolean;\n /**\n * Shows a thick line from min to value\n */\n showRange?: boolean;\n /**\n * Shows clickable tick marks and labels at the given interval (`step`/`tickInterval`)\n */\n showTicks?: boolean;\n\n min?: number;\n max?: number;\n /**\n * Shows a tooltip styled value\n */\n showValue?: boolean;\n /**\n * Specified ticks at specified values\n */\n ticks: EuiRangeTick[];\n /**\n * Modifies the number of tick marks and at what interval\n */\n tickInterval?: number;\n /**\n * Appends to the tooltip\n */\n valueAppend?: any;\n /**\n * Prepends to the tooltip\n */\n valuePrepend?: any;\n\n onChange?: (event: Event, isValid: boolean) => void;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n\n value?: number;\n\n disabled?: boolean;\n\n isPrependProvided?: boolean;\n isAppendProvided?: boolean;\n isFakeMaxBlock?: boolean;\n isFakeMinBlock?: boolean;\n isFakeValueBlock?: boolean;\n isFakeValueAppendBlock?: boolean;\n isFakeValuePrependBlock?: boolean;\n isInvalid?: boolean;\n name?: string;\n isLoading?: boolean;\n}\n\nexport interface EuiRangeSignature {\n Element: HTMLInputElement;\n Args: EuiRangeArgs;\n Blocks: {\n min: [min: number];\n max: [max: number];\n value: [];\n valueAppend: [];\n valuePrepend: [];\n prepend: [classes: string];\n append: [classes: string];\n input: [];\n content: [];\n };\n}\n\nexport default class EuiRangeComponent extends Component<EuiRangeSignature> {\n // Defaults\n @argOrDefaultDecorator(0) min!: number;\n @argOrDefaultDecorator(100) max!: number;\n @argOrDefaultDecorator(1) step!: number;\n @argOrDefaultDecorator(false) fullWidth!: boolean;\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator(false) isLoading!: boolean;\n @argOrDefaultDecorator(false) showLabels!: boolean;\n @argOrDefaultDecorator(false) showInput!: boolean | string;\n @argOrDefaultDecorator(false) showRange!: boolean;\n @argOrDefaultDecorator(false) showTicks!: boolean;\n @argOrDefaultDecorator(false) showValue!: boolean;\n @argOrDefaultDecorator([]) levels!: EuiRangeLevel[];\n\n preventPopoverClose = false;\n\n //State\n @tracked id: string = this.args.id || guidFor({});\n @tracked isPopoverOpen = false;\n ///\n\n @action\n handleOnChange(e: Event): void {\n const isValid = isWithinRange(\n this.min,\n this.max,\n (e.currentTarget as HTMLInputElement).value\n );\n\n if (this.args.onChange) {\n this.args.onChange(e, isValid);\n }\n }\n\n get isValid(): boolean {\n return isWithinRange(this.min, this.max, this.args.value || '');\n }\n\n get digitTolerance(): number {\n return Math.max(String(this.min).length, String(this.max).length);\n }\n\n get showInputOnly(): boolean {\n return this.showInput === 'inputWithPopover';\n }\n\n get canShowDropdown(): boolean {\n return this.showInputOnly && !this.args.readOnly && !this.args.disabled;\n }\n\n get showRangeTooltip(): boolean {\n return (\n this.showValue &&\n !!String(this.args.value).length &&\n this.args.value !== undefined\n );\n }\n\n @action\n onInputFocus(e: Event): void {\n if (this.args.onFocus) {\n this.args.onFocus(e);\n }\n\n this.isPopoverOpen = true;\n }\n\n @action\n onInputBlur(e: Event): void {\n later(\n this,\n () => {\n // Safari does not recognize any focus-related eventing for input[type=range]\n // making it impossible to capture its state using active/focus/relatedTarget\n // Instead, a prevention flag is set on mousedown, with a waiting period here.\n // Mousedown is viable because in the popover case, it is inaccessible via keyboard (intentionally)\n if (this.preventPopoverClose) {\n this.preventPopoverClose = false;\n\n return;\n }\n\n if (this.args.onBlur) {\n this.args.onBlur(e);\n }\n\n this.closePopover();\n },\n 200\n );\n }\n\n @action\n setPreventPopover(val: boolean): void {\n this.preventPopoverClose = val;\n }\n\n @action\n closePopover(): void {\n this.preventPopoverClose = false;\n this.isPopoverOpen = false;\n }\n\n @action\n setPreventPopoverClose(bool: boolean): void {\n this.preventPopoverClose = bool;\n }\n\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (and (not (argOrDefault @isFakeMaxBlock false)) (has-block \"max\"))\n (and (not (argOrDefault @isFakeMinBlock false)) (has-block \"min\"))\n (and (not (argOrDefault @isFakeValueBlock false)) (has-block \"value\"))\n (and\n (not (argOrDefault @isFakeValueAppendBlock false))\n (has-block \"valueAppend\")\n )\n (and\n (not (argOrDefault @isFakeValuePrependBlock false))\n (has-block \"valuePrepend\")\n )\n as |hasPrepend hasAppend hasMaxBlock hasMinBlock hasValueBlock hasValueAppendBlock hasValuePrependBlock|\n }}\n {{#if this.showInputOnly}}\n <EuiInputPopover\n class=\"euiRange__popover\"\n @fullWidth={{@fullWidth}}\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{this.closePopover}}\n @disableFocusTrap={{true}}\n >\n <:input>\n <EuiRangeInput\n id={{this.id}}\n @min={{this.min}}\n @max={{this.max}}\n @digitTolerance={{this.digitTolerance}}\n @readOnly={{@readOnly}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @name={{@name}}\n @fullWidth={{and this.showInputOnly this.fullWidth}}\n @isLoading={{and this.showInputOnly @isLoading}}\n @isInvalid={{@isInvalid}}\n @autoSize={{not this.showInputOnly}}\n @isPrependProvided={{hasPrepend}}\n @isAppendProvided={{hasAppend}}\n ...attributes\n {{on\n \"focus\"\n (if this.canShowDropdown this.onInputFocus (optional @onFocus))\n }}\n {{on\n \"blur\"\n (if this.canShowDropdown this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n </:input>\n <:content>\n <EuiRangeWrapper\n class={{classNames\n \"euiRange\"\n (if this.showInput \"euiRange--hasInput\")\n }}\n @fullWidth={{@fullWidth}}\n @compressed={{@compressed}}\n >\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{eq this.showInput true}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleOnChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo @value to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n aria-hidden={{if (eq this.showInput true) true false}}\n tabindex={{if (eq this.showInput true) \"-1\"}}\n @id={{if this.showInput undefined this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n @showRange={{this.showRange}}\n ...attributes\n {{on\n \"mousedown\"\n (if\n this.showInputOnly\n (fn this.setPreventPopoverClose true)\n (optional)\n )\n }}\n {{on\n \"focus\"\n (if (eq this.showInput true) (optional) (optional @onFocus))\n }}\n {{on\n \"blur\"\n (if this.showInputOnly this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n />\n {{#if this.showRangeTooltip}}\n <EuiRangeTooltip\n @compressed={{@compressed}}\n @value={{@value}}\n @max={{this.max}}\n @min={{this.min}}\n @name={{@name}}\n @showTicks={{this.showTicks}}\n >\n <:valuePrepend>\n {{#if hasValuePrependBlock}}\n {{yield to=\"valuePrepend\"}}\n {{else}}\n {{@valuePrepend}}\n {{/if}}\n </:valuePrepend>\n <:value>\n {{#if hasValueBlock}}\n {{yield to=\"value\"}}\n {{else}}\n {{@value}}\n {{/if}}\n </:value>\n <:valueAppend>\n {{#if hasValueAppendBlock}}\n {{yield to=\"valueAppend\"}}\n {{else}}\n {{@valueAppend}}\n {{/if}}\n </:valueAppend>\n </EuiRangeTooltip>\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"max\" @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n {{#if (and this.showInput (not this.showInputOnly))}}\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{#if this.showInput}}\n <EuiRangeInput\n id={{this.id}}\n @min={{this.min}}\n @max={{this.max}}\n @digitTolerance={{this.digitTolerance}}\n @readOnly={{@readOnly}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @name={{@name}}\n @fullWidth={{and this.showInputOnly this.fullWidth}}\n @isLoading={{and this.showInputOnly @isLoading}}\n @isInvalid={{@isInvalid}}\n @autoSize={{not this.showInputOnly}}\n @isPrependProvided={{hasPrepend}}\n @isAppendProvided={{hasAppend}}\n ...attributes\n {{on\n \"focus\"\n (if\n this.canShowDropdown\n this.onInputFocus\n (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if\n this.canShowDropdown this.onInputBlur (optional @onBlur)\n )\n }}\n {{on \"input\" this.handleOnChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n {{/if}}\n {{/if}}\n </EuiRangeWrapper>\n </:content>\n </EuiInputPopover>\n {{else}}\n <EuiRangeWrapper\n class={{classNames\n \"euiRange\"\n (if this.showInput \"euiRange--hasInput\")\n }}\n @fullWidth={{@fullWidth}}\n @compressed={{@compressed}}\n >\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{eq this.showInput true}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleOnChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo @value to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n aria-hidden={{if (eq this.showInput true) true false}}\n tabindex={{if (eq this.showInput true) \"-1\"}}\n @id={{if this.showInput undefined this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n @showRange={{this.showRange}}\n ...attributes\n {{on\n \"mousedown\"\n (if\n this.showInputOnly (fn this.setPreventPopover true) (optional)\n )\n }}\n {{on\n \"focus\"\n (if (eq this.showInput true) (optional) (optional @onFocus))\n }}\n {{on\n \"blur\"\n (if this.showInputOnly this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n />\n {{#if this.showRangeTooltip}}\n <EuiRangeTooltip\n @compressed={{@compressed}}\n @value={{@value}}\n @max={{this.max}}\n @min={{this.min}}\n @name={{@name}}\n @showTicks={{this.showTicks}}\n >\n <:valuePrepend>\n {{#if hasValuePrependBlock}}\n {{yield to=\"valuePrepend\"}}\n {{else}}\n {{@valuePrepend}}\n {{/if}}\n </:valuePrepend>\n <:value>\n {{#if hasValueBlock}}\n {{yield to=\"value\"}}\n {{else}}\n {{@value}}\n {{/if}}\n </:value>\n <:valueAppend>\n {{#if hasValueAppendBlock}}\n {{yield to=\"valueAppend\"}}\n {{else}}\n {{@valueAppend}}\n {{/if}}\n </:valueAppend>\n </EuiRangeTooltip>\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"max\" @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n {{#if (and this.showInput (not this.showInputOnly))}}\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{#if this.showInput}}\n <EuiRangeInput\n id={{this.id}}\n @min={{this.min}}\n @max={{this.max}}\n @digitTolerance={{this.digitTolerance}}\n @readOnly={{@readOnly}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @name={{@name}}\n @fullWidth={{and this.showInputOnly this.fullWidth}}\n @isLoading={{and this.showInputOnly @isLoading}}\n @isInvalid={{@isInvalid}}\n @autoSize={{not this.showInputOnly}}\n @isPrependProvided={{hasPrepend}}\n @isAppendProvided={{hasAppend}}\n ...attributes\n {{on\n \"focus\"\n (if\n this.canShowDropdown this.onInputFocus (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if this.canShowDropdown this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n {{/if}}\n {{/if}}\n </EuiRangeWrapper>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiRangeComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","preventPopoverClose","tracked","args","id","guidFor","handleOnChange","e","isValid","isWithinRange","min","max","currentTarget","value","onChange","n","action","digitTolerance","Math","String","length","showInputOnly","showInput","canShowDropdown","readOnly","disabled","showRangeTooltip","showValue","undefined","onInputFocus","onFocus","isPopoverOpen","onInputBlur","later","onBlur","closePopover","setPreventPopover","val","setPreventPopoverClose","bool","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","not","EuiInputPopover","EuiRangeInput","on","optional","EuiRangeWrapper","classNames","EuiRangeLabel","EuiRangeTrack","eq","EuiRangeHighlight","castTo","EuiRangeSlider","fn","EuiRangeTooltip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-range.js","sources":["../../src/components/eui-range.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { later } from '@ember/runloop';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport argOrDefault, {\n argOrDefaultDecorator\n} from '../helpers/arg-or-default.ts';\nimport castTo from '../helpers/cast-to.ts';\nimport classNames from '../helpers/class-names.ts';\nimport { isWithinRange } from '../utils/number/index.ts';\nimport EuiInputPopover from './eui-input-popover.gts';\nimport EuiRangeHighlight from './eui-range-highlight.gts';\nimport EuiRangeInput from './eui-range-input.gts';\nimport EuiRangeLabel from './eui-range-label.gts';\nimport EuiRangeSlider from './eui-range-slider.gts';\nimport EuiRangeTooltip from './eui-range-tooltip.gts';\nimport EuiRangeTrack from './eui-range-track.gts';\nimport EuiRangeWrapper from './eui-range-wrapper.gts';\n\nimport type { EuiRangeLevel } from './eui-range-levels';\nimport type { EuiRangeTick } from './eui-range-ticks';\n\nexport interface EuiRangeArgs {\n compressed?: boolean;\n readOnly?: boolean;\n fullWidth?: boolean;\n id?: string;\n /**\n * Create colored indicators for certain intervals\n */\n levels?: EuiRangeLevel[];\n step?: number;\n /**\n * Pass `true` to displays an extra input control for direct manipulation.\n * Pass `'inputWithPopover'` to only show the input but show the range in a dropdown.\n */\n showInput?: boolean | 'inputWithPopover';\n /**\n * Shows static min/max labels on the sides of the range slider\n */\n showLabels?: boolean;\n /**\n * Shows a thick line from min to value\n */\n showRange?: boolean;\n /**\n * Shows clickable tick marks and labels at the given interval (`step`/`tickInterval`)\n */\n showTicks?: boolean;\n\n min?: number;\n max?: number;\n /**\n * Shows a tooltip styled value\n */\n showValue?: boolean;\n /**\n * Specified ticks at specified values\n */\n ticks?: EuiRangeTick[];\n /**\n * Modifies the number of tick marks and at what interval\n */\n tickInterval?: number;\n /**\n * Appends to the tooltip\n */\n valueAppend?: any;\n /**\n * Prepends to the tooltip\n */\n valuePrepend?: any;\n\n onChange?: (event: Event, isValid: boolean) => void;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n\n value?: number;\n\n disabled?: boolean;\n\n isPrependProvided?: boolean;\n isAppendProvided?: boolean;\n isFakeMaxBlock?: boolean;\n isFakeMinBlock?: boolean;\n isFakeValueBlock?: boolean;\n isFakeValueAppendBlock?: boolean;\n isFakeValuePrependBlock?: boolean;\n isInvalid?: boolean;\n name?: string;\n isLoading?: boolean;\n}\n\nexport interface EuiRangeSignature {\n Element: HTMLInputElement;\n Args: EuiRangeArgs;\n Blocks: {\n min: [min: number];\n max: [max: number];\n value: [];\n valueAppend: [];\n valuePrepend: [];\n prepend: [classes: string];\n append: [classes: string];\n input: [];\n content: [];\n };\n}\n\nexport default class EuiRangeComponent extends Component<EuiRangeSignature> {\n // Defaults\n @argOrDefaultDecorator(0) min!: number;\n @argOrDefaultDecorator(100) max!: number;\n @argOrDefaultDecorator(1) step!: number;\n @argOrDefaultDecorator(false) fullWidth!: boolean;\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator(false) isLoading!: boolean;\n @argOrDefaultDecorator(false) showLabels!: boolean;\n @argOrDefaultDecorator(false) showInput!: boolean | string;\n @argOrDefaultDecorator(false) showRange!: boolean;\n @argOrDefaultDecorator(false) showTicks!: boolean;\n @argOrDefaultDecorator(false) showValue!: boolean;\n @argOrDefaultDecorator([]) levels!: EuiRangeLevel[];\n\n preventPopoverClose = false;\n\n //State\n @tracked id: string = this.args.id || guidFor({});\n @tracked isPopoverOpen = false;\n ///\n\n @action\n handleOnChange(e: Event): void {\n const isValid = isWithinRange(\n this.min,\n this.max,\n (e.currentTarget as HTMLInputElement).value\n );\n\n if (this.args.onChange) {\n this.args.onChange(e, isValid);\n }\n }\n\n get isValid(): boolean {\n return isWithinRange(this.min, this.max, this.args.value || '');\n }\n\n get digitTolerance(): number {\n return Math.max(String(this.min).length, String(this.max).length);\n }\n\n get showInputOnly(): boolean {\n return this.showInput === 'inputWithPopover';\n }\n\n get canShowDropdown(): boolean {\n return this.showInputOnly && !this.args.readOnly && !this.args.disabled;\n }\n\n get showRangeTooltip(): boolean {\n return (\n this.showValue &&\n !!String(this.args.value).length &&\n this.args.value !== undefined\n );\n }\n\n @action\n onInputFocus(e: Event): void {\n if (this.args.onFocus) {\n this.args.onFocus(e);\n }\n\n this.isPopoverOpen = true;\n }\n\n @action\n onInputBlur(e: Event): void {\n later(\n this,\n () => {\n // Safari does not recognize any focus-related eventing for input[type=range]\n // making it impossible to capture its state using active/focus/relatedTarget\n // Instead, a prevention flag is set on mousedown, with a waiting period here.\n // Mousedown is viable because in the popover case, it is inaccessible via keyboard (intentionally)\n if (this.preventPopoverClose) {\n this.preventPopoverClose = false;\n\n return;\n }\n\n if (this.args.onBlur) {\n this.args.onBlur(e);\n }\n\n this.closePopover();\n },\n 200\n );\n }\n\n @action\n setPreventPopover(val: boolean): void {\n this.preventPopoverClose = val;\n }\n\n @action\n closePopover(): void {\n this.preventPopoverClose = false;\n this.isPopoverOpen = false;\n }\n\n @action\n setPreventPopoverClose(bool: boolean): void {\n this.preventPopoverClose = bool;\n }\n\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (and (not (argOrDefault @isFakeMaxBlock false)) (has-block \"max\"))\n (and (not (argOrDefault @isFakeMinBlock false)) (has-block \"min\"))\n (and (not (argOrDefault @isFakeValueBlock false)) (has-block \"value\"))\n (and\n (not (argOrDefault @isFakeValueAppendBlock false))\n (has-block \"valueAppend\")\n )\n (and\n (not (argOrDefault @isFakeValuePrependBlock false))\n (has-block \"valuePrepend\")\n )\n as |hasPrepend hasAppend hasMaxBlock hasMinBlock hasValueBlock hasValueAppendBlock hasValuePrependBlock|\n }}\n {{#if this.showInputOnly}}\n <EuiInputPopover\n class=\"euiRange__popover\"\n @fullWidth={{@fullWidth}}\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{this.closePopover}}\n @disableFocusTrap={{true}}\n >\n <:input>\n <EuiRangeInput\n id={{this.id}}\n @min={{this.min}}\n @max={{this.max}}\n @digitTolerance={{this.digitTolerance}}\n @readOnly={{@readOnly}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @name={{@name}}\n @fullWidth={{and this.showInputOnly this.fullWidth}}\n @isLoading={{and this.showInputOnly @isLoading}}\n @isInvalid={{@isInvalid}}\n @autoSize={{not this.showInputOnly}}\n @isPrependProvided={{hasPrepend}}\n @isAppendProvided={{hasAppend}}\n ...attributes\n {{on\n \"focus\"\n (if this.canShowDropdown this.onInputFocus (optional @onFocus))\n }}\n {{on\n \"blur\"\n (if this.canShowDropdown this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n </:input>\n <:content>\n <EuiRangeWrapper\n class={{classNames\n \"euiRange\"\n (if this.showInput \"euiRange--hasInput\")\n }}\n @fullWidth={{@fullWidth}}\n @compressed={{@compressed}}\n >\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{eq this.showInput true}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleOnChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo @value to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n aria-hidden={{if (eq this.showInput true) true false}}\n tabindex={{if (eq this.showInput true) \"-1\"}}\n @id={{if this.showInput undefined this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n @showRange={{this.showRange}}\n ...attributes\n {{on\n \"mousedown\"\n (if\n this.showInputOnly\n (fn this.setPreventPopoverClose true)\n (optional)\n )\n }}\n {{on\n \"focus\"\n (if (eq this.showInput true) (optional) (optional @onFocus))\n }}\n {{on\n \"blur\"\n (if this.showInputOnly this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n />\n {{#if this.showRangeTooltip}}\n <EuiRangeTooltip\n @compressed={{@compressed}}\n @value={{@value}}\n @max={{this.max}}\n @min={{this.min}}\n @name={{@name}}\n @showTicks={{this.showTicks}}\n >\n <:valuePrepend>\n {{#if hasValuePrependBlock}}\n {{yield to=\"valuePrepend\"}}\n {{else}}\n {{@valuePrepend}}\n {{/if}}\n </:valuePrepend>\n <:value>\n {{#if hasValueBlock}}\n {{yield to=\"value\"}}\n {{else}}\n {{@value}}\n {{/if}}\n </:value>\n <:valueAppend>\n {{#if hasValueAppendBlock}}\n {{yield to=\"valueAppend\"}}\n {{else}}\n {{@valueAppend}}\n {{/if}}\n </:valueAppend>\n </EuiRangeTooltip>\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"max\" @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n {{#if (and this.showInput (not this.showInputOnly))}}\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{#if this.showInput}}\n <EuiRangeInput\n id={{this.id}}\n @min={{this.min}}\n @max={{this.max}}\n @digitTolerance={{this.digitTolerance}}\n @readOnly={{@readOnly}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @name={{@name}}\n @fullWidth={{and this.showInputOnly this.fullWidth}}\n @isLoading={{and this.showInputOnly @isLoading}}\n @isInvalid={{@isInvalid}}\n @autoSize={{not this.showInputOnly}}\n @isPrependProvided={{hasPrepend}}\n @isAppendProvided={{hasAppend}}\n ...attributes\n {{on\n \"focus\"\n (if\n this.canShowDropdown\n this.onInputFocus\n (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if\n this.canShowDropdown this.onInputBlur (optional @onBlur)\n )\n }}\n {{on \"input\" this.handleOnChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n {{/if}}\n {{/if}}\n </EuiRangeWrapper>\n </:content>\n </EuiInputPopover>\n {{else}}\n <EuiRangeWrapper\n class={{classNames\n \"euiRange\"\n (if this.showInput \"euiRange--hasInput\")\n }}\n @fullWidth={{@fullWidth}}\n @compressed={{@compressed}}\n >\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{eq this.showInput true}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleOnChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo @value to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n aria-hidden={{if (eq this.showInput true) true false}}\n tabindex={{if (eq this.showInput true) \"-1\"}}\n @id={{if this.showInput undefined this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @showTicks={{this.showTicks}}\n @showRange={{this.showRange}}\n ...attributes\n {{on\n \"mousedown\"\n (if\n this.showInputOnly (fn this.setPreventPopover true) (optional)\n )\n }}\n {{on\n \"focus\"\n (if (eq this.showInput true) (optional) (optional @onFocus))\n }}\n {{on\n \"blur\"\n (if this.showInputOnly this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n />\n {{#if this.showRangeTooltip}}\n <EuiRangeTooltip\n @compressed={{@compressed}}\n @value={{@value}}\n @max={{this.max}}\n @min={{this.min}}\n @name={{@name}}\n @showTicks={{this.showTicks}}\n >\n <:valuePrepend>\n {{#if hasValuePrependBlock}}\n {{yield to=\"valuePrepend\"}}\n {{else}}\n {{@valuePrepend}}\n {{/if}}\n </:valuePrepend>\n <:value>\n {{#if hasValueBlock}}\n {{yield to=\"value\"}}\n {{else}}\n {{@value}}\n {{/if}}\n </:value>\n <:valueAppend>\n {{#if hasValueAppendBlock}}\n {{yield to=\"valueAppend\"}}\n {{else}}\n {{@valueAppend}}\n {{/if}}\n </:valueAppend>\n </EuiRangeTooltip>\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"max\" @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n {{#if (and this.showInput (not this.showInputOnly))}}\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{#if this.showInput}}\n <EuiRangeInput\n id={{this.id}}\n @min={{this.min}}\n @max={{this.max}}\n @digitTolerance={{this.digitTolerance}}\n @readOnly={{@readOnly}}\n @step={{this.step}}\n @value={{@value}}\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @name={{@name}}\n @fullWidth={{and this.showInputOnly this.fullWidth}}\n @isLoading={{and this.showInputOnly @isLoading}}\n @isInvalid={{@isInvalid}}\n @autoSize={{not this.showInputOnly}}\n @isPrependProvided={{hasPrepend}}\n @isAppendProvided={{hasAppend}}\n ...attributes\n {{on\n \"focus\"\n (if\n this.canShowDropdown this.onInputFocus (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if this.canShowDropdown this.onInputBlur (optional @onBlur))\n }}\n {{on \"input\" this.handleOnChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n {{/if}}\n {{/if}}\n </EuiRangeWrapper>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiRangeComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","preventPopoverClose","tracked","args","id","guidFor","handleOnChange","e","isValid","isWithinRange","min","max","currentTarget","value","onChange","n","action","digitTolerance","Math","String","length","showInputOnly","showInput","canShowDropdown","readOnly","disabled","showRangeTooltip","showValue","undefined","onInputFocus","onFocus","isPopoverOpen","onInputBlur","later","onBlur","closePopover","setPreventPopover","val","setPreventPopoverClose","bool","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","not","EuiInputPopover","EuiRangeInput","on","optional","EuiRangeWrapper","classNames","EuiRangeLabel","EuiRangeTrack","eq","EuiRangeHighlight","castTo","EuiRangeSlider","fn","EuiRangeTooltip"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-text.js","sources":["../../../src/utils/css-mappings/eui-text.ts"],"sourcesContent":["export const baseClass = 'euiText';\n\nexport const sizeMapping = {\n xs: `${baseClass}--extraSmall`,\n s: `${baseClass}--small`,\n m: `${baseClass}--medium`\n};\n\nconst mapping: ComponentMapping = {\n base: baseClass,\n properties: {\n size: sizeMapping\n }\n};\n\nexport default mapping;\n"],"names":["baseClass","sizeMapping","xs","s","m","mapping","base","properties","size"],"mappings":"AAAO,MAAMA,SAAS,GAAG;AAElB,MAAMC,WAAW,GAAG;EACzBC,EAAE,EAAE,CAAGF,EAAAA,SAAS,CAAc,YAAA,CAAA;EAC9BG,CAAC,EAAE,CAAGH,EAAAA,SAAS,CAAS,OAAA,CAAA;EACxBI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"eui-text.js","sources":["../../../src/utils/css-mappings/eui-text.ts"],"sourcesContent":["export const baseClass = 'euiText';\n\nexport const sizeMapping = {\n xs: `${baseClass}--extraSmall`,\n s: `${baseClass}--small`,\n m: `${baseClass}--medium`,\n relative: `${baseClass}--relative`\n};\n\nconst mapping: ComponentMapping = {\n base: baseClass,\n properties: {\n size: sizeMapping\n }\n};\n\nexport default mapping;\n"],"names":["baseClass","sizeMapping","xs","s","m","relative","mapping","base","properties","size"],"mappings":"AAAO,MAAMA,SAAS,GAAG;AAElB,MAAMC,WAAW,GAAG;EACzBC,EAAE,EAAE,CAAGF,EAAAA,SAAS,CAAc,YAAA,CAAA;EAC9BG,CAAC,EAAE,CAAGH,EAAAA,SAAS,CAAS,OAAA,CAAA;EACxBI,CAAC,EAAE,CAAGJ,EAAAA,SAAS,CAAU,QAAA,CAAA;EACzBK,QAAQ,EAAE,GAAGL,SAAS,CAAA,UAAA;AACxB;AAEA,MAAMM,OAAyB,GAAG;AAChCC,EAAAA,IAAI,EAAEP,SAAS;AACfQ,EAAAA,UAAU,EAAE;AACVC,IAAAA,IAAI,EAAER;AACR;AACF;;;;"}
|