@ember-eui/core 13.0.3 → 13.0.5
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-call-out.d.ts +1 -0
- package/declarations/components/eui-call-out.d.ts.map +1 -1
- package/declarations/components/eui-combo-box/create-option.d.ts +18 -1
- package/declarations/components/eui-combo-box/create-option.d.ts.map +1 -1
- package/declarations/components/eui-combo-box/options.d.ts.map +1 -1
- package/declarations/components/eui-combo-box.d.ts +2 -0
- package/declarations/components/eui-combo-box.d.ts.map +1 -1
- package/declarations/components/eui-file-picker.d.ts.map +1 -1
- package/declarations/components/eui-stat.d.ts +2 -2
- package/declarations/components/eui-stat.d.ts.map +1 -1
- package/declarations/modifiers/resize-observer.d.ts.map +1 -1
- package/dist/components/eui-call-out.js +1 -1
- package/dist/components/eui-call-out.js.map +1 -1
- package/dist/components/eui-combo-box/create-option.js +39 -9
- package/dist/components/eui-combo-box/create-option.js.map +1 -1
- package/dist/components/eui-combo-box/options.js +4 -2
- package/dist/components/eui-combo-box/options.js.map +1 -1
- package/dist/components/eui-combo-box.js +6 -3
- package/dist/components/eui-combo-box.js.map +1 -1
- package/dist/components/eui-file-picker.js +3 -1
- package/dist/components/eui-file-picker.js.map +1 -1
- package/dist/components/eui-page-header-content.js +1 -1
- package/dist/components/eui-page-header-content.js.map +1 -1
- package/dist/components/eui-stat.js.map +1 -1
- package/dist/modifiers/resize-observer.js +1 -1
- package/dist/modifiers/resize-observer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-call-out.d.ts","sourceRoot":"","sources":["../../src/components/eui-call-out.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAChD,QAAQ,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,MAAM,OAAO,WAAW,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;QAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9C,QAAQ,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;KAC7C,CAAC;IACF,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-call-out.d.ts","sourceRoot":"","sources":["../../src/components/eui-call-out.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAChD,QAAQ,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,MAAM,OAAO,WAAW,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;QAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9C,QAAQ,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;KAC7C,CAAC;IACF,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,EAAE,CAAC;QACV,OAAO,CAAC,EAAE,EAAE,CAAC;KACd,CAAC;CACH;AAED,QAAA,MAAM,UAAU,EAAE,qBAAqB,CAAC,mBAAmB,CAqEzD,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -8,11 +8,28 @@ export interface EuiComboBoxCreateOptionSignature {
|
|
|
8
8
|
searchText: string;
|
|
9
9
|
};
|
|
10
10
|
onCreateOption: () => void;
|
|
11
|
+
alwaysShow?: boolean;
|
|
11
12
|
};
|
|
12
13
|
}
|
|
13
|
-
export default class
|
|
14
|
+
export default class EuiComboBoxCreateOptionComponent extends Component<EuiComboBoxCreateOptionSignature> {
|
|
14
15
|
euiI18n: EuiI18n;
|
|
15
16
|
_regex: RegExp;
|
|
17
|
+
get createLabel(): string;
|
|
16
18
|
get formattedString(): ReturnType<typeof htmlSafe>;
|
|
19
|
+
get extraStyling(): {
|
|
20
|
+
container: {
|
|
21
|
+
padding: string;
|
|
22
|
+
cursor: string;
|
|
23
|
+
};
|
|
24
|
+
content: {
|
|
25
|
+
padding: string;
|
|
26
|
+
};
|
|
27
|
+
} | {
|
|
28
|
+
container: {
|
|
29
|
+
cursor: string;
|
|
30
|
+
padding?: undefined;
|
|
31
|
+
};
|
|
32
|
+
content?: undefined;
|
|
33
|
+
};
|
|
17
34
|
}
|
|
18
35
|
//# sourceMappingURL=create-option.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-option.d.ts","sourceRoot":"","sources":["../../../src/components/eui-combo-box/create-option.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,EAAE,QAAQ,EAAc,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-option.d.ts","sourceRoot":"","sources":["../../../src/components/eui-combo-box/create-option.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,EAAE,QAAQ,EAAc,MAAM,iBAAiB,CAAC;AAOvD,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AAUnD,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE;QACJ,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/B,cAAc,EAAE,MAAM,IAAI,CAAC;QAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,gCAAiC,SAAQ,SAAS,CAAC,gCAAgC,CAAC;IACtF,OAAO,EAAE,OAAO,CAAC;IAElC,MAAM,SAAsB;IAE5B,IAAI,WAAW,WAEd;IAED,IAAI,eAAe,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CA6BjD;IAED,IAAI,YAAY;;;;;;;;;;;;;;MAkBf;CAkDF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/components/eui-combo-box/options.ts"],"names":[],"mappings":"AAQA,OAAO,uBAAuB,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/components/eui-combo-box/options.ts"],"names":[],"mappings":"AAQA,OAAO,uBAAuB,MAAM,oDAAoD,CAAC;AAczF,OAAO,KAAK,gBAAgB,MAAM,2BAA2B,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,uBAAuB;IAC7D,SAAS,EAAE,gBAAgB,CAAC;IAC7C,aAAa,EAAE,GAAG,EAAE,CAAM;IAE1B,IAAI,cAAc,QAgBjB;IAED,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAW9B,IAAI,eAAe,WAIlB;IAED,IAAI,SAAS,QAGZ;IAED,IAAI,eAAe,yCAElB;CAqHF"}
|
|
@@ -17,6 +17,7 @@ export interface EuiComboBoxSignature {
|
|
|
17
17
|
asPlainText?: boolean;
|
|
18
18
|
};
|
|
19
19
|
onCreateOption?: (search: string) => boolean | undefined;
|
|
20
|
+
alwaysShowCreateOption?: boolean;
|
|
20
21
|
options: any[];
|
|
21
22
|
search?: (term: string, select: Select) => any[] | PromiseProxy<any[]>;
|
|
22
23
|
searchField?: string;
|
|
@@ -80,6 +81,7 @@ export default class EuiComboBoxComponent extends Component<EuiComboBoxSignature
|
|
|
80
81
|
get loadingMessage(): any;
|
|
81
82
|
get noMatchesMessage(): string;
|
|
82
83
|
get searchMessage(): string;
|
|
84
|
+
get alwaysShowCreateOption(): boolean | undefined;
|
|
83
85
|
get opts(): any;
|
|
84
86
|
get options(): any[];
|
|
85
87
|
get results(): any[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-combo-box.d.ts","sourceRoot":"","sources":["../../src/components/eui-combo-box.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-combo-box.d.ts","sourceRoot":"","sources":["../../src/components/eui-combo-box.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-file-picker.d.ts","sourceRoot":"","sources":["../../src/components/eui-file-picker.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-file-picker.d.ts","sourceRoot":"","sources":["../../src/components/eui-file-picker.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAmB3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,cAAc,CAAC;AAE/D;;GAEG;AACH,KAAK,aAAa,GAAG;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,iBAAiB,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,sBAAsB,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,SAAS,CAAC,sBAAsB,CAAC;IAC1E,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC1C,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAQ;IAC7C,cAAc,UAAS;IAEyB,iBAAiB,EACtE,SAAS,GACT,MAAM,GACN,IAAI,CAAC;IAEqB,UAAU,EAAG,OAAO,CAAC;IACxB,OAAO,EAAG,MAAM,CAAC;IAG5C,QAAQ,IAAI,IAAI;IAOhB,QAAQ,IAAI,IAAI;IAKhB,YAAY,IAAI,IAAI;IAyBpB,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAajC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAKhD,WAAW,IAAI,IAAI;CA0IpB"}
|
|
@@ -7,8 +7,8 @@ export interface EuiStatSignature {
|
|
|
7
7
|
Element: HTMLDivElement;
|
|
8
8
|
Args: {
|
|
9
9
|
textAlign?: keyof typeof textAlignMapping;
|
|
10
|
-
title
|
|
11
|
-
description
|
|
10
|
+
title?: string;
|
|
11
|
+
description?: string;
|
|
12
12
|
titleColor?: keyof typeof colorMapping;
|
|
13
13
|
titleSize?: EuiStatTitleSignature['Args']['titleSize'];
|
|
14
14
|
isLoading?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-stat.d.ts","sourceRoot":"","sources":["../../src/components/eui-stat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAIjE,OAAO,KAAK,EAAC,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,OAAO,gBAAgB,CAAC;QAC1C,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"eui-stat.d.ts","sourceRoot":"","sources":["../../src/components/eui-stat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAIjE,OAAO,KAAK,EAAC,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,OAAO,gBAAgB,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;QACvC,SAAS,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QACvD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,kBAAkB,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;KAChF,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,CAAC;QACV,WAAW,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAcD,QAAA,MAAM,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CA+FnD,CAAC;AAEH,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resize-observer.d.ts","sourceRoot":"","sources":["../../src/modifiers/resize-observer.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;CACvE;AAUD,UAAU,uBAAuB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QACtC,KAAK,EAAE;YACL,QAAQ,EAAE,CAAC,UAAU,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE,KAAK,IAAI,CAAC;SACnE,CAAC;KACH,CAAC;CACH;AAiCD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ,CAAC,uBAAuB,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAK;IACnB,KAAK,EAAE,MAAM,CAAK;IAClB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEjC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC/B,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAQ;IAC9D,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAQ;IAGxE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"resize-observer.d.ts","sourceRoot":"","sources":["../../src/modifiers/resize-observer.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;CACvE;AAUD,UAAU,uBAAuB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QACtC,KAAK,EAAE;YACL,QAAQ,EAAE,CAAC,UAAU,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE,KAAK,IAAI,CAAC;SACnE,CAAC;KACH,CAAC;CACH;AAiCD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ,CAAC,uBAAuB,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAK;IACnB,KAAK,EAAE,MAAM,CAAK;IAClB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEjC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC/B,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAQ;IAC9D,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAQ;IAGxE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAgB5D,MAAM,CACJ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,YAAK,EAC9D,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IASjD,MAAM;IAiCN,SAAS;CAOV"}
|
|
@@ -8,7 +8,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
9
9
|
import templateOnly from '@ember/component/template-only';
|
|
10
10
|
|
|
11
|
-
const EuiCallOut = setComponentTemplate(precompileTemplate("\n <div class={{classNames componentName=\"EuiCallOut\" size=(argOrDefault @size \"m\") color=(argOrDefault @color \"primary\")}} ...attributes>\n {{#if (or @title (has-block \"title\"))}}\n <div class=\"euiCallOutHeader\">\n {{#if @iconType}}\n <EuiIcon @iconClasses=\"euiCallOutHeader__icon\" @type={{@iconType}} @size={{argOrDefault @iconSize \"m\"}} aria-hidden=\"true\" @color=\"inherit\" />\n {{/if}}\n {{#if @heading}}\n <TextBlock @tagName={{@heading}} class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </TextBlock>\n {{else}}\n <span class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n {{#if (has-block \"body\")}}\n <EuiText @size={{if (eq @size \"s\") \"xs\" \"s\"}} @color={{@textColor}}>\n {{yield to=\"body\"}}\n </EuiText>\n {{/if}}\n </div>\n", {
|
|
11
|
+
const EuiCallOut = setComponentTemplate(precompileTemplate("\n <div class={{classNames componentName=\"EuiCallOut\" size=(argOrDefault @size \"m\") color=(argOrDefault @color \"primary\")}} ...attributes>\n {{#if (or @title (has-block \"title\"))}}\n <div class=\"euiCallOutHeader\">\n {{#if @iconType}}\n <EuiIcon @iconClasses=\"euiCallOutHeader__icon\" @type={{@iconType}} @size={{argOrDefault @iconSize \"m\"}} aria-hidden=\"true\" @color=\"inherit\" />\n {{/if}}\n {{#if @heading}}\n <TextBlock @tagName={{@heading}} class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </TextBlock>\n {{else}}\n <span class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n {{#if (or (has-block \"body\") (has-block))}}\n <EuiText @size={{if (eq @size \"s\") \"xs\" \"s\"}} @color={{@textColor}}>\n {{#if (has-block \"body\")}}\n {{yield to=\"body\"}}\n {{else}}\n {{yield}}\n {{/if}}\n </EuiText>\n {{/if}}\n </div>\n", {
|
|
12
12
|
strictMode: true,
|
|
13
13
|
scope: () => ({
|
|
14
14
|
classNames,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-call-out.js","sources":["../../src/components/eui-call-out.gts"],"sourcesContent":["import { eq, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiText from './eui-text.gts';\nimport TextBlock from './text-block.gts';\n\nimport type {\n colorMapping,\n sizeMapping\n} from '../utils/css-mappings/eui-call-out.ts';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { EuiTextSignature } from './eui-text';\nimport type { TextBlockSignature } from './text-block';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiCallOutSignature {\n Element: HTMLDivElement;\n Args: {\n title?: string;\n heading?: TextBlockSignature['Args']['tagName'];\n iconType?: EuiIconSignature['Args']['type'];\n size?: keyof typeof sizeMapping;\n color?: keyof typeof colorMapping;\n textColor?: EuiTextSignature['Args']['color'];\n iconSize?: EuiIconSignature['Args']['size'];\n };\n Blocks: {\n title?: [];\n body?: [];\n };\n}\n\nconst EuiCallOut: TemplateOnlyComponent<EuiCallOutSignature> = <template>\n <div\n class={{classNames\n componentName=\"EuiCallOut\"\n size=(argOrDefault @size \"m\")\n color=(argOrDefault @color \"primary\")\n }}\n ...attributes\n >\n {{#if (or @title (has-block \"title\"))}}\n <div class=\"euiCallOutHeader\">\n {{#if @iconType}}\n <EuiIcon\n @iconClasses=\"euiCallOutHeader__icon\"\n @type={{@iconType}}\n @size={{argOrDefault @iconSize \"m\"}}\n aria-hidden=\"true\"\n @color=\"inherit\"\n />\n {{/if}}\n {{#if @heading}}\n <TextBlock @tagName={{@heading}} class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </TextBlock>\n {{else}}\n <span class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n {{#if (has-block \"body\")}}\n <EuiText @size={{if (eq @size \"s\") \"xs\" \"s\"}} @color={{@textColor}}>\n {{yield to=\"body\"}}\n </EuiText>\n {{/if}}\n </div>\n</template>;\n\nexport default EuiCallOut;\n"],"names":["EuiCallOut","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","or","EuiIcon","TextBlock","EuiText","eq","templateOnly"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"eui-call-out.js","sources":["../../src/components/eui-call-out.gts"],"sourcesContent":["import { eq, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiText from './eui-text.gts';\nimport TextBlock from './text-block.gts';\n\nimport type {\n colorMapping,\n sizeMapping\n} from '../utils/css-mappings/eui-call-out.ts';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { EuiTextSignature } from './eui-text';\nimport type { TextBlockSignature } from './text-block';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiCallOutSignature {\n Element: HTMLDivElement;\n Args: {\n title?: string;\n heading?: TextBlockSignature['Args']['tagName'];\n iconType?: EuiIconSignature['Args']['type'];\n size?: keyof typeof sizeMapping;\n color?: keyof typeof colorMapping;\n textColor?: EuiTextSignature['Args']['color'];\n iconSize?: EuiIconSignature['Args']['size'];\n };\n Blocks: {\n title?: [];\n body?: [];\n default?: [];\n };\n}\n\nconst EuiCallOut: TemplateOnlyComponent<EuiCallOutSignature> = <template>\n <div\n class={{classNames\n componentName=\"EuiCallOut\"\n size=(argOrDefault @size \"m\")\n color=(argOrDefault @color \"primary\")\n }}\n ...attributes\n >\n {{#if (or @title (has-block \"title\"))}}\n <div class=\"euiCallOutHeader\">\n {{#if @iconType}}\n <EuiIcon\n @iconClasses=\"euiCallOutHeader__icon\"\n @type={{@iconType}}\n @size={{argOrDefault @iconSize \"m\"}}\n aria-hidden=\"true\"\n @color=\"inherit\"\n />\n {{/if}}\n {{#if @heading}}\n <TextBlock @tagName={{@heading}} class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </TextBlock>\n {{else}}\n <span class=\"euiCallOutHeader__title\">\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n {{#if (or (has-block \"body\") (has-block))}}\n <EuiText @size={{if (eq @size \"s\") \"xs\" \"s\"}} @color={{@textColor}}>\n {{#if (has-block \"body\")}}\n {{yield to=\"body\"}}\n {{else}}\n {{yield}}\n {{/if}}\n </EuiText>\n {{/if}}\n </div>\n</template>;\n\nexport default EuiCallOut;\n"],"names":["EuiCallOut","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","or","EuiIcon","TextBlock","EuiText","eq","templateOnly"],"mappings":";;;;;;;;;;AAmCA,MAAMA,UAAyD,GAAAC,oBAAA,CAAAC,kBAAA,CAiD/D,yxCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,YAAA;IAAAC,EAAA;IAAAC,OAAA;IAAAC,SAAA;aAAAC,gBAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -3,6 +3,7 @@ import { on } from '@ember/modifier';
|
|
|
3
3
|
import { get } from '@ember/object';
|
|
4
4
|
import { inject } from '@ember/service';
|
|
5
5
|
import { htmlSafe, isHTMLSafe } from '@ember/template';
|
|
6
|
+
import style from 'ember-style-modifier/modifiers/style';
|
|
6
7
|
import EuiBadge from '../eui-badge.js';
|
|
7
8
|
import EuiTextComponent from '../eui-text.js';
|
|
8
9
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -15,25 +16,54 @@ function unwrap(input) {
|
|
|
15
16
|
}
|
|
16
17
|
return input;
|
|
17
18
|
}
|
|
18
|
-
class
|
|
19
|
+
class EuiComboBoxCreateOptionComponent extends Component {
|
|
19
20
|
static {
|
|
20
21
|
g(this.prototype, "euiI18n", [inject]);
|
|
21
22
|
}
|
|
22
23
|
#euiI18n = (i(this, "euiI18n"), void 0);
|
|
23
24
|
_regex = /\{\s*(.*?)\s*\}/g;
|
|
25
|
+
get createLabel() {
|
|
26
|
+
return this.euiI18n.lookupToken('euiComboBox.createLabel', 'Create');
|
|
27
|
+
}
|
|
24
28
|
get formattedString() {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
if (this.args.customOptionText && typeof this.args.customOptionText === 'string') {
|
|
30
|
+
let str = unwrap(this.args.customOptionText);
|
|
31
|
+
let context = {
|
|
32
|
+
searchText: this.args.select.searchText
|
|
33
|
+
};
|
|
34
|
+
return htmlSafe(str.replace(this._regex, (_s, p1, p2) => {
|
|
35
|
+
return get(context, p1 || p2);
|
|
36
|
+
}));
|
|
37
|
+
} else {
|
|
38
|
+
let str = unwrap(this.euiI18n.lookupToken('euiComboBox.customOptionText', 'Add <strong>{searchText}</strong> as custom option', {
|
|
39
|
+
searchText: this.args.select.searchText
|
|
40
|
+
}));
|
|
41
|
+
return htmlSafe(str);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
get extraStyling() {
|
|
45
|
+
if (this.args.alwaysShow) {
|
|
46
|
+
return {
|
|
47
|
+
container: {
|
|
48
|
+
padding: '4px 12px',
|
|
49
|
+
cursor: 'pointer'
|
|
50
|
+
},
|
|
51
|
+
content: {
|
|
52
|
+
padding: '0px'
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
container: {
|
|
58
|
+
cursor: 'pointer'
|
|
59
|
+
}
|
|
28
60
|
};
|
|
29
|
-
return htmlSafe(str.replace(this._regex, (_s, p1, p2) => {
|
|
30
|
-
return get(context, p1 || p2);
|
|
31
|
-
}));
|
|
32
61
|
}
|
|
33
62
|
static {
|
|
34
|
-
setComponentTemplate(precompileTemplate("\n <div
|
|
63
|
+
setComponentTemplate(precompileTemplate("\n <div class=\"euiComboBoxOptionsList__rowWrap\" {{style this.extraStyling.container}} {{!--template-lint-disable no-invalid-interactive--}} {{on \"pointerup\" @onCreateOption}}>\n <EuiText class=\"euiComboBoxOptionsList__empty\" @size=\"xs\" {{style this.extraStyling.content}}>\n <div class=\"euiComboBoxOption__contentWrapper\">\n <p class=\"euiComboBoxOption__emptyStateText\">\n {{this.formattedString}}\n </p>\n\n <EuiBadge class=\"euiComboBoxOption__enterBadge\" @color=\"hollow\" @iconType={{unless @alwaysShow \"returnKey\"}}>\n {{#if @alwaysShow}}\n {{this.createLabel}}\n {{/if}}\n </EuiBadge>\n </div>\n </EuiText>\n </div>\n ", {
|
|
35
64
|
strictMode: true,
|
|
36
65
|
scope: () => ({
|
|
66
|
+
style,
|
|
37
67
|
on,
|
|
38
68
|
EuiText: EuiTextComponent,
|
|
39
69
|
EuiBadge
|
|
@@ -42,5 +72,5 @@ class EuiAccordionAccordionComponent extends Component {
|
|
|
42
72
|
}
|
|
43
73
|
}
|
|
44
74
|
|
|
45
|
-
export {
|
|
75
|
+
export { EuiComboBoxCreateOptionComponent as default };
|
|
46
76
|
//# sourceMappingURL=create-option.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-option.js","sources":["../../../src/components/eui-combo-box/create-option.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { get } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe, isHTMLSafe } from '@ember/template';\n\nimport EuiBadge from '../eui-badge.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiI18n from '../../services/eui-i18n';\n\nfunction unwrap(input: string) {\n if (isHTMLSafe(input)) {\n return input.toString();\n }\n\n return input;\n}\n\nexport interface EuiComboBoxCreateOptionSignature {\n Args: {\n customOptionText?: string;\n select: { searchText: string };\n onCreateOption: () => void;\n };\n}\n\nexport default class
|
|
1
|
+
{"version":3,"file":"create-option.js","sources":["../../../src/components/eui-combo-box/create-option.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { get } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe, isHTMLSafe } from '@ember/template';\n\nimport style from 'ember-style-modifier/modifiers/style';\n\nimport EuiBadge from '../eui-badge.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiI18n from '../../services/eui-i18n';\n\nfunction unwrap(input: string) {\n if (isHTMLSafe(input)) {\n return input.toString();\n }\n\n return input;\n}\n\nexport interface EuiComboBoxCreateOptionSignature {\n Args: {\n customOptionText?: string;\n select: { searchText: string };\n onCreateOption: () => void;\n alwaysShow?: boolean;\n };\n}\n\nexport default class EuiComboBoxCreateOptionComponent extends Component<EuiComboBoxCreateOptionSignature> {\n @service declare euiI18n: EuiI18n;\n\n _regex = /\\{\\s*(.*?)\\s*\\}/g;\n\n get createLabel() {\n return this.euiI18n.lookupToken('euiComboBox.createLabel', 'Create');\n }\n\n get formattedString(): ReturnType<typeof htmlSafe> {\n if (\n this.args.customOptionText &&\n typeof this.args.customOptionText === 'string'\n ) {\n let str = unwrap(this.args.customOptionText);\n\n let context = {\n searchText: this.args.select.searchText\n };\n\n return htmlSafe(\n str.replace(this._regex, (_s, p1, p2) => {\n return get(context, p1 || p2);\n })\n );\n } else {\n let str = unwrap(\n this.euiI18n.lookupToken(\n 'euiComboBox.customOptionText',\n 'Add <strong>{searchText}</strong> as custom option',\n {\n searchText: this.args.select.searchText\n }\n )\n );\n\n return htmlSafe(str);\n }\n }\n\n get extraStyling() {\n if (this.args.alwaysShow) {\n return {\n container: {\n padding: '4px 12px',\n cursor: 'pointer'\n },\n content: {\n padding: '0px'\n }\n };\n }\n\n return {\n container: {\n cursor: 'pointer'\n }\n };\n }\n\n <template>\n <div\n class=\"euiComboBoxOptionsList__rowWrap\"\n {{style this.extraStyling.container}}\n {{!template-lint-disable no-invalid-interactive}}\n {{on \"pointerup\" @onCreateOption}}\n >\n <EuiText\n class=\"euiComboBoxOptionsList__empty\"\n @size=\"xs\"\n {{style this.extraStyling.content}}\n >\n <div class=\"euiComboBoxOption__contentWrapper\">\n <p class=\"euiComboBoxOption__emptyStateText\">\n {{this.formattedString}}\n </p>\n\n <EuiBadge\n class=\"euiComboBoxOption__enterBadge\"\n @color=\"hollow\"\n @iconType={{unless @alwaysShow \"returnKey\"}}\n >\n {{#if @alwaysShow}}\n {{this.createLabel}}\n {{/if}}\n </EuiBadge>\n </div>\n </EuiText>\n </div>\n </template>\n}\n"],"names":["unwrap","input","isHTMLSafe","toString","EuiComboBoxCreateOptionComponent","Component","g","prototype","service","i","void 0","_regex","createLabel","euiI18n","lookupToken","formattedString","args","customOptionText","str","context","searchText","select","htmlSafe","replace","_s","p1","p2","get","extraStyling","alwaysShow","container","padding","cursor","content","setComponentTemplate","precompileTemplate","strictMode","scope","style","on","EuiText","EuiBadge"],"mappings":";;;;;;;;;;;;AAaA,SAASA,MAAAA,CAAOC,KAAa,EAAA;AAC3B,EAAA,IAAIC,WAAWD,KAAQ,CAAA,EAAA;AACrB,IAAA,OAAOA,MAAME,QAAQ,EAAA;AACvB;AAEA,EAAA,OAAOF,KAAA;AACT;AAWe,MAAMG,yCAAyCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACrEC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;AAEDC,EAAAA,MAAA,GAAS,kBAAmB;EAE5B,IAAIC,WAAcA,GAAA;IAChB,OAAO,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,yBAA2B,EAAA,QAAA,CAAA;AAC7D;EAEA,IAAIC,eAAAA,GAA+C;AACjD,IAAA,IACE,IAAI,CAACC,IAAI,CAACC,gBAAgB,IAC1B,OAAO,IAAI,CAACD,IAAI,CAACC,gBAAgB,KAAK,QACtC,EAAA;MACA,IAAIC,MAAMlB,MAAO,CAAA,IAAI,CAACgB,IAAI,CAACC,gBAAgB,CAAA;AAE3C,MAAA,IAAIE,OAAU,GAAA;AACZC,QAAAA,UAAA,EAAY,IAAI,CAACJ,IAAI,CAACK,MAAM,CAACD;OAC/B;AAEA,MAAA,OAAOE,QAAA,CACLJ,GAAI,CAAAK,OAAO,CAAC,IAAI,CAACZ,MAAM,EAAE,CAACa,EAAA,EAAIC,EAAI,EAAAC,EAAA,KAAA;AAChC,QAAA,OAAOC,GAAA,CAAIR,SAASM,EAAM,IAAAC,EAAA,CAAA;AAC5B,OAAA,CAAA,CAAA;AAEJ,KAAO,MAAA;AACL,MAAA,IAAIR,GAAA,GAAMlB,OACR,IAAI,CAACa,OAAO,CAACC,WAAW,CACtB,8BAAA,EACA,8DACA,EAAA;AACEM,QAAAA,UAAA,EAAY,IAAI,CAACJ,IAAI,CAACK,MAAM,CAACD;AAC/B,OAAA,CAAA,CAAA;MAIJ,OAAOE,QAAS,CAAAJ,GAAA,CAAA;AAClB;AACF;EAEA,IAAIU,YAAeA,GAAA;AACjB,IAAA,IAAI,IAAI,CAACZ,IAAI,CAACa,UAAU,EAAE;MACxB,OAAO;AACLC,QAAAA,SAAW,EAAA;AACTC,UAAAA,OAAS,EAAA,UAAA;AACTC,UAAAA,MAAQ,EAAA;SACV;AACAC,QAAAA,OAAS,EAAA;AACPF,UAAAA,OAAS,EAAA;AACX;OACF;AACF;IAEA,OAAO;AACLD,MAAAA,SAAW,EAAA;AACTE,QAAAA,MAAQ,EAAA;AACV;KACF;AACF;AAEA,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CA6BA,kvBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,KAAA;QAAAC,EAAA;iBAAAC,gBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -5,14 +5,15 @@ import { htmlSafe } from '@ember/template';
|
|
|
5
5
|
import { EnsureSafeComponentHelper } from '@embroider/util';
|
|
6
6
|
import VerticalCollection from '@html-next/vertical-collection/components/vertical-collection/component';
|
|
7
7
|
import EmberPowerSelectOptions from 'ember-power-select/components/power-select/options';
|
|
8
|
+
import emberPowerSelectIsEqual from 'ember-power-select/helpers/ember-power-select-is-equal';
|
|
8
9
|
import emberPowerSelectIsGroupHelper, { emberPowerSelectIsGroup } from 'ember-power-select/helpers/ember-power-select-is-group';
|
|
9
10
|
import { not, and, eq } from 'ember-truth-helpers';
|
|
11
|
+
import classNames from '../../helpers/class-names.js';
|
|
10
12
|
import EuiBadge from '../eui-badge.js';
|
|
11
13
|
import EuiFlexGroup from '../eui-flex-group.js';
|
|
12
14
|
import EuiFlexItem from '../eui-flex-item.js';
|
|
13
15
|
import EuiLoadingSpinner from '../eui-loading-spinner.js';
|
|
14
16
|
import EuiTextComponent from '../eui-text.js';
|
|
15
|
-
import emberPowerSelectIsEqual from 'ember-power-select/helpers/ember-power-select-is-equal';
|
|
16
17
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
17
18
|
import { setComponentTemplate } from '@ember/component';
|
|
18
19
|
import { g, i } from 'decorator-transforms/runtime';
|
|
@@ -56,7 +57,7 @@ class EuiComboBoxOptionsComponent extends EmberPowerSelectOptions {
|
|
|
56
57
|
return htmlSafe(`height:${this.rowHeight}px;`);
|
|
57
58
|
}
|
|
58
59
|
static {
|
|
59
|
-
setComponentTemplate(precompileTemplate("\n {{!-- @glint-nocheck: not typesafe yet --}}\n {{#let (component (EnsureSafeComponentHelper @groupComponent)) as |Group|}}\n {{#if @select.loading}}\n <EuiText @size=\"xs\" class=\"euiComboBoxOptionsList__empty\">\n <EuiFlexGroup @gutterSize=\"s\" @justifyContent=\"center\" @responsive={{false}}>\n <EuiFlexItem @grow={{false}}>\n <EuiLoadingSpinner @size=\"m\" />\n </EuiFlexItem>\n <EuiFlexItem @grow={{false}}>\n {{@loadingMessage}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </EuiText>\n {{else}}\n {{!-- template-lint-disable --}}\n <VerticalCollection @items={{this.flattedOptions}} @tagName=\"div\" @estimateHeight={{this.rowHeight}} @staticHeight={{true}} @bufferSize={{3}} style=\"
|
|
60
|
+
setComponentTemplate(precompileTemplate("\n {{!-- @glint-nocheck: not typesafe yet --}}\n {{#let (component (EnsureSafeComponentHelper @groupComponent)) as |Group|}}\n {{#if @select.loading}}\n <EuiText @size=\"xs\" class=\"euiComboBoxOptionsList__empty\">\n <EuiFlexGroup @gutterSize=\"s\" @justifyContent=\"center\" @responsive={{false}}>\n <EuiFlexItem @grow={{false}}>\n <EuiLoadingSpinner @size=\"m\" />\n </EuiFlexItem>\n <EuiFlexItem @grow={{false}}>\n {{@loadingMessage}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </EuiText>\n {{else}}\n {{!-- template-lint-disable --}}\n <VerticalCollection @items={{this.flattedOptions}} @tagName=\"div\" @estimateHeight={{this.rowHeight}} @staticHeight={{true}} @bufferSize={{3}} style=\"overflow-y: auto;\" role=\"listbox\" aria-controls=\"ember-power-select-trigger-{{@select.uniqueId}}\" class={{classNames \"euiComboBoxOptionsList__rowWrap\" @class}} {{didInsert this.addHandlers}} {{willDestroy this.removeHandlers}} ...attributes as |opt index|>\n {{!-- template-lint-enable --}}\n {{#if (emberPowerSelectIsGroupHelper opt)}}\n <Group @group={{opt}} @select={{@select}} @extra={{@extra}} style={{this.rowHeightString}} data-option-index=\"{{index}}\" />\n {{else}}\n <button type=\"button\" style={{this.rowHeightString}} class=\"euiFilterSelectItem\n {{if (eq opt @select.highlighted) \" euiFilterSelectItem-isFocused\"}}\" aria-selected=\"{{emberPowerSelectIsEqual opt @select.selected}}\" aria-disabled={{if opt.disabled \"true\"}} aria-current=\"{{eq opt @select.highlighted}}\" data-option-index=\"{{index}}\" role=\"option\" tabindex={{if opt.disabled \"-1\" \"0\"}}>\n <span class=\"euiComboBoxOption__contentWrapper\">\n <span class=\"euiComboBoxOption__content\">\n {{yield opt index @select}}\n </span>\n {{#if (and (eq opt @select.highlighted) (not opt.disabled))}}\n {{!--template-lint-disable require-presentational-children--}}\n <EuiBadge class=\"euiComboBoxOption__enterBadge\" @color=\"hollow\" @iconType=\"returnKey\" aria-hidden=\"true\" />\n {{/if}}\n </span>\n </button>\n {{/if}}\n </VerticalCollection>\n {{/if}}\n {{/let}}\n ", {
|
|
60
61
|
strictMode: true,
|
|
61
62
|
scope: () => ({
|
|
62
63
|
EnsureSafeComponentHelper,
|
|
@@ -65,6 +66,7 @@ class EuiComboBoxOptionsComponent extends EmberPowerSelectOptions {
|
|
|
65
66
|
EuiFlexItem,
|
|
66
67
|
EuiLoadingSpinner,
|
|
67
68
|
VerticalCollection,
|
|
69
|
+
classNames,
|
|
68
70
|
didInsert,
|
|
69
71
|
willDestroy,
|
|
70
72
|
emberPowerSelectIsGroupHelper,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sources":["../../../src/components/eui-combo-box/options.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\n//@ts-expect-error\nimport VerticalCollection from '@html-next/vertical-collection/components/vertical-collection/component';\nimport EmberPowerSelectOptions from 'ember-power-select/components/power-select/options';\nimport emberPowerSelectIsGroupHelper, {\n emberPowerSelectIsGroup\n} from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport EuiBadge from '../eui-badge.gts';\nimport EuiFlexGroup from '../eui-flex-group.gts';\nimport EuiFlexItem from '../eui-flex-item.gts';\nimport EuiLoadingSpinner from '../eui-loading-spinner.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiConfigService from '../../services/eui-config';\
|
|
1
|
+
{"version":3,"file":"options.js","sources":["../../../src/components/eui-combo-box/options.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\n//@ts-expect-error\nimport VerticalCollection from '@html-next/vertical-collection/components/vertical-collection/component';\nimport EmberPowerSelectOptions from 'ember-power-select/components/power-select/options';\nimport emberPowerSelectIsEqual from 'ember-power-select/helpers/ember-power-select-is-equal';\nimport emberPowerSelectIsGroupHelper, {\n emberPowerSelectIsGroup\n} from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport classNames from '../../helpers/class-names.ts';\nimport EuiBadge from '../eui-badge.gts';\nimport EuiFlexGroup from '../eui-flex-group.gts';\nimport EuiFlexItem from '../eui-flex-item.gts';\nimport EuiLoadingSpinner from '../eui-loading-spinner.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiConfigService from '../../services/eui-config';\n\nexport default class EuiComboBoxOptionsComponent extends EmberPowerSelectOptions {\n @service declare euiConfig: EuiConfigService;\n _optionsCache: any[] = [];\n\n get flattedOptions() {\n if (this._optionsCache !== this.args.options) {\n this._optionsCache = this.args.options;\n\n return this.args.options?.reduce((acc, curr) => {\n if (emberPowerSelectIsGroup([curr])) {\n acc.push(curr, ...curr.options);\n } else {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n return this._optionsCache;\n }\n\n _optionFromIndex(index: string) {\n let parts = index.split('.');\n let option = this.flattedOptions.at?.(parseInt(parts[0]!, 10));\n\n for (let i = 1; i < parts.length; i++) {\n option = option.options[parseInt(parts[i]!, 10)];\n }\n\n return option;\n }\n\n get configRowHeight() {\n return (\n (this.euiConfig.getConfig('euiComboBoxOptionsHeight') as number) || 29\n );\n }\n\n get rowHeight() {\n //@ts-expect-error\n return this.args.rowHeight ?? this.configRowHeight;\n }\n\n get rowHeightString() {\n return htmlSafe(`height:${this.rowHeight}px;`);\n }\n\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n {{#let (component (EnsureSafeComponentHelper @groupComponent)) as |Group|}}\n {{#if @select.loading}}\n <EuiText @size=\"xs\" class=\"euiComboBoxOptionsList__empty\">\n <EuiFlexGroup\n @gutterSize=\"s\"\n @justifyContent=\"center\"\n @responsive={{false}}\n >\n <EuiFlexItem @grow={{false}}>\n <EuiLoadingSpinner @size=\"m\" />\n </EuiFlexItem>\n <EuiFlexItem @grow={{false}}>\n {{@loadingMessage}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </EuiText>\n {{else}}\n {{! template-lint-disable }}\n <VerticalCollection\n @items={{this.flattedOptions}}\n @tagName=\"div\"\n @estimateHeight={{this.rowHeight}}\n @staticHeight={{true}}\n @bufferSize={{3}}\n style=\"overflow-y: auto;\"\n role=\"listbox\"\n aria-controls=\"ember-power-select-trigger-{{@select.uniqueId}}\"\n class={{classNames \"euiComboBoxOptionsList__rowWrap\" @class}}\n {{didInsert this.addHandlers}}\n {{willDestroy this.removeHandlers}}\n ...attributes\n as |opt index|\n >\n {{! template-lint-enable }}\n {{#if (emberPowerSelectIsGroupHelper opt)}}\n <Group\n @group={{opt}}\n @select={{@select}}\n @extra={{@extra}}\n style={{this.rowHeightString}}\n data-option-index=\"{{index}}\"\n />\n {{else}}\n <button\n type=\"button\"\n style={{this.rowHeightString}}\n class=\"euiFilterSelectItem\n {{if\n (eq opt @select.highlighted)\n ' euiFilterSelectItem-isFocused'\n }}\"\n aria-selected=\"{{emberPowerSelectIsEqual opt @select.selected}}\"\n aria-disabled={{if opt.disabled \"true\"}}\n aria-current=\"{{eq opt @select.highlighted}}\"\n data-option-index=\"{{index}}\"\n role=\"option\"\n tabindex={{if opt.disabled \"-1\" \"0\"}}\n >\n <span class=\"euiComboBoxOption__contentWrapper\">\n <span class=\"euiComboBoxOption__content\">\n {{yield opt index @select}}\n </span>\n {{#if (and (eq opt @select.highlighted) (not opt.disabled))}}\n {{!template-lint-disable require-presentational-children}}\n <EuiBadge\n class=\"euiComboBoxOption__enterBadge\"\n @color=\"hollow\"\n @iconType=\"returnKey\"\n aria-hidden=\"true\"\n />\n {{/if}}\n </span>\n </button>\n {{/if}}\n </VerticalCollection>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiComboBoxOptionsComponent","EmberPowerSelectOptions","g","prototype","service","i","void 0","_optionsCache","flattedOptions","args","options","reduce","acc","curr","emberPowerSelectIsGroup","push","_optionFromIndex","index","parts","split","option","at","parseInt","length","configRowHeight","euiConfig","getConfig","rowHeight","rowHeightString","htmlSafe","setComponentTemplate","precompileTemplate","strictMode","scope","EnsureSafeComponentHelper","EuiText","EuiFlexGroup","EuiFlexItem","EuiLoadingSpinner","VerticalCollection","classNames","didInsert","willDestroy","emberPowerSelectIsGroupHelper","eq","emberPowerSelectIsEqual","and","not","EuiBadge"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwBe,MAAMA,2BAAoC,SAAAC,uBAAA,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACtDC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA;AACDC,EAAAA,aAAe,GAAQ,EAAE;EAEzB,IAAIC,cAAiBA,GAAA;IACnB,IAAI,IAAI,CAACD,aAAa,KAAK,IAAI,CAACE,IAAI,CAACC,OAAO,EAAE;AAC5C,MAAA,IAAI,CAACH,aAAa,GAAG,IAAI,CAACE,IAAI,CAACC,OAAO;AAEtC,MAAA,OAAO,IAAI,CAACD,IAAI,CAACC,OAAO,EAAEC,MAAA,CAAO,CAACC,GAAK,EAAAC,IAAA,KAAA;AACrC,QAAA,IAAIC,uBAAwB,CAAA,CAACD,IAAA,CAAK,CAAG,EAAA;UACnCD,GAAA,CAAIG,IAAI,CAACF,IAAS,EAAA,GAAAA,IAAA,CAAKH,OAAO,CAAA;AAChC,SAAO,MAAA;AACLE,UAAAA,GAAA,CAAIG,IAAI,CAACF,IAAA,CAAA;AACX;AAEA,QAAA,OAAOD,GAAA;OACT,EAAG,EAAE,CAAA;AACP;IAEA,OAAO,IAAI,CAACL,aAAa;AAC3B;EAEAS,gBAAiBA,CAAAC,KAAa,EAAE;AAC9B,IAAA,IAAIC,KAAA,GAAQD,KAAM,CAAAE,KAAK,CAAC,GAAA,CAAA;AACxB,IAAA,IAAIC,MAAA,GAAS,IAAI,CAACZ,cAAc,CAACa,EAAE,GAAGC,QAAS,CAAAJ,KAAK,CAAC,CAAA,CAAE,EAAG,EAAA,CAAA,CAAA;AAE1D,IAAA,KAAK,IAAIb,CAAI,GAAA,CAAA,EAAGA,IAAIa,KAAM,CAAAK,MAAM,EAAElB,CAAK,EAAA,EAAA;AACrCe,MAAAA,MAAS,GAAAA,MAAA,CAAOV,OAAO,CAACY,QAAA,CAASJ,KAAK,CAACb,CAAA,CAAE,EAAG,EAAI,CAAA,CAAA;AAClD;AAEA,IAAA,OAAOe,MAAA;AACT;EAEA,IAAII,eAAkBA,GAAA;IACpB,OACG,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,0BAAA,CAAA,IAA0C,EACtE;AACF;EAEA,IAAIC,SAAYA,GAAA;AACd;IACA,OAAO,IAAI,CAAClB,IAAI,CAACkB,SAAS,IAAI,IAAI,CAACH,eAAe;AACpD;EAEA,IAAII,eAAkBA,GAAA;AACpB,IAAA,OAAOC,QAAA,CAAS,CAAA,OAAA,EAAU,IAAI,CAACF,SAAS,KAAK,CAAA;AAC/C;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CA+EA,y3EAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,yBAAA;iBAAAC,gBAAA;QAAAC,YAAA;QAAAC,WAAA;QAAAC,iBAAA;QAAAC,kBAAA;QAAAC,UAAA;QAAAC,SAAA;QAAAC,WAAA;QAAAC,6BAAA;QAAAC,EAAA;QAAAC,uBAAA;QAAAC,GAAA;QAAAC,GAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -12,7 +12,7 @@ import { emberPowerSelectIsGroup } from 'ember-power-select/helpers/ember-power-
|
|
|
12
12
|
import { not, and } from 'ember-truth-helpers';
|
|
13
13
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
14
14
|
import classNames from '../helpers/class-names.js';
|
|
15
|
-
import
|
|
15
|
+
import EuiComboBoxCreateOptionComponent from './eui-combo-box/create-option.js';
|
|
16
16
|
import EuiComboBoxGroup from './eui-combo-box/group.js';
|
|
17
17
|
import NoMatchesMessageComponent from './eui-combo-box/no-matches-message.js';
|
|
18
18
|
import EuiComboBoxOptionsComponent from './eui-combo-box/options.js';
|
|
@@ -71,8 +71,11 @@ class EuiComboBoxComponent extends Component {
|
|
|
71
71
|
get searchMessage() {
|
|
72
72
|
return this.args.searchMessage || this.euiI18n.lookupToken('euiComboBox.searchMessage', 'Type to search');
|
|
73
73
|
}
|
|
74
|
+
get alwaysShowCreateOption() {
|
|
75
|
+
return this.args.onCreateOption && this.args.alwaysShowCreateOption;
|
|
76
|
+
}
|
|
74
77
|
static {
|
|
75
|
-
setComponentTemplate(precompileTemplate("\n {{!-- @glint-nocheck: not typesafe yet --}}\n <PowerSelectMultiple ...attributes @onChange={{this.onChange}} @onFocus={{@onFocus}} @onBlur={{@onBlur}} @onOpen={{@onOpen}} @onClose={{@onClose}} @placeholderComponent={{@placeholderComponent}} @searchMessage={{this.searchMessage}} @searchMessageComponent={{if @searchMessageComponent @searchMessageComponent EuiComboBoxSearchMessage}} @noMatchesMessage={{this.noMatchesMessage}} @matchTriggerWidth={{@matchTriggerWidth}} @options={{this.options}} @selected={{@selectedOptions}} @closeOnSelect={{@closeOnSelect}} @defaultHighlighted={{@defaultHighlighted}} @searchField={{@searchField}} @searchEnabled={{argOrDefault @searchEnabled true}} @tabindex={{@tabindex}} @initiallyOpened={{and (not @isDisabled) @autoFocus}} @triggerComponent={{component EuiComboBoxTrigger fullWidth=@fullWidth compressed=@compressed isInvalid=@isInvalid singleSelection=@singleSelection onClose=@removeTag onCreateOption=(if @onCreateOption this.onCreateOption) isLoading=@isLoading autoFocus=(and (not @isDisabled) @autoFocus) icon=@triggerIcon}} @matcher={{@matcher}} @initiallyOpen={{@initiallyOpen}} @typeAheadOptionMatcher={{@typeAheadOptionMatcher}} @buildSelection={{this.buildSelection}} @search={{@search}} @onInput={{@onInput}} @onKeydown={{@onKeydown}} @scrollTo={{this.scrollTo}} @registerAPI={{queue this.registerAPI (optional @registerApi)}} @horizontalPosition={{@horizontalPosition}} @destination={{@destination}} @preventScroll={{@preventScroll}} @renderInPlace={{@renderInPlace}} @verticalPosition={{@verticalPosition}} @disabled={{@isDisabled}} @calculatePosition={{@calculatePosition}} @eventType={{@eventType}} @ariaLabel={{@ariaLabel}} @ariaLabelledBy={{@ariaLabelledBy}} @required={{@required}} @triggerRole={{@triggerRole}} @title={{@title}} @triggerId={{@triggerId}} @allowClear={{and (argOrDefault @isClearable true) (not @isDisabled)}} @loadingMessage={{this.loadingMessage}} @selectedItemComponent={{@selectedItemComponent}} @beforeOptionsComponent={{@beforeOptionsComponent}} @afterOptionsComponent={{@afterOptionsComponent}} @placeholder={{@placeholder}} @searchPlaceholder={{@searchPlaceholder}} @optionsComponent={{component EuiComboBoxOptions rowHeight=@rowHeight class=@optionsClass}} @extra={{@extra}} @groupComponent={{component EuiComboBoxGroup}} @triggerClass={{classNames \"euiComboBox\" (if @compressed \"euiComboBox--compressed\") (if @fullWidth \"euiComboBox--fullWidth\") (if @isDisabled \"euiComboBox-isDisabled\") (if @isInvalid \"euiComboBox-isInvalid\") (if this.select.isOpen \"euiComboBox-isOpen\")}} @noMatchesMessageComponent={{if @onCreateOption (component EuiComboBoxCreateOption customOptionText=@customOptionText onCreateOption=this.onCreateOption select=this.select) (component EuiComboBoxNoMatchesMessage)}} @dropdownClass=\"euiComboBoxOptionsList euiPanel euiPanel--borderRadiusMedium euiPanel--noShadow euiPanel--plain euiPopover__panel-isAttached euiPopover__panel euiPopover__panel-noArrow euiPopover__panel--bottom euiPopover__panel-isOpen
|
|
78
|
+
setComponentTemplate(precompileTemplate("\n {{!-- @glint-nocheck: not typesafe yet --}}\n\n <PowerSelectMultiple ...attributes @onChange={{this.onChange}} @onFocus={{@onFocus}} @onBlur={{@onBlur}} @onOpen={{@onOpen}} @onClose={{@onClose}} @placeholderComponent={{@placeholderComponent}} @searchMessage={{this.searchMessage}} @searchMessageComponent={{if @searchMessageComponent @searchMessageComponent EuiComboBoxSearchMessage}} @noMatchesMessage={{this.noMatchesMessage}} @matchTriggerWidth={{@matchTriggerWidth}} @options={{this.options}} @selected={{@selectedOptions}} @closeOnSelect={{@closeOnSelect}} @defaultHighlighted={{@defaultHighlighted}} @searchField={{@searchField}} @searchEnabled={{argOrDefault @searchEnabled true}} @tabindex={{@tabindex}} @initiallyOpened={{and (not @isDisabled) @autoFocus}} @triggerComponent={{component EuiComboBoxTrigger fullWidth=@fullWidth compressed=@compressed isInvalid=@isInvalid singleSelection=@singleSelection onClose=@removeTag onCreateOption=(if @onCreateOption this.onCreateOption) isLoading=@isLoading autoFocus=(and (not @isDisabled) @autoFocus) icon=@triggerIcon}} @matcher={{@matcher}} @initiallyOpen={{@initiallyOpen}} @typeAheadOptionMatcher={{@typeAheadOptionMatcher}} @buildSelection={{this.buildSelection}} @search={{@search}} @onInput={{@onInput}} @onKeydown={{@onKeydown}} @scrollTo={{this.scrollTo}} @registerAPI={{queue this.registerAPI (optional @registerApi)}} @horizontalPosition={{@horizontalPosition}} @destination={{@destination}} @preventScroll={{@preventScroll}} @renderInPlace={{@renderInPlace}} @verticalPosition={{@verticalPosition}} @disabled={{@isDisabled}} @calculatePosition={{@calculatePosition}} @eventType={{@eventType}} @ariaLabel={{@ariaLabel}} @ariaLabelledBy={{@ariaLabelledBy}} @required={{@required}} @triggerRole={{@triggerRole}} @title={{@title}} @triggerId={{@triggerId}} @allowClear={{and (argOrDefault @isClearable true) (not @isDisabled)}} @loadingMessage={{this.loadingMessage}} @selectedItemComponent={{@selectedItemComponent}} @beforeOptionsComponent={{@beforeOptionsComponent}} @afterOptionsComponent={{if @afterOptionsComponent @afterOptionsComponent (if (and @onCreateOption (not this.select.loading) this.select.searchText this.alwaysShowCreateOption) (component EuiComboBoxCreateOption customOptionText=@customOptionText onCreateOption=this.onCreateOption select=this.select alwaysShow=true))}} @placeholder={{@placeholder}} @searchPlaceholder={{@searchPlaceholder}} @optionsComponent={{component EuiComboBoxOptions rowHeight=@rowHeight class=@optionsClass}} @extra={{@extra}} @groupComponent={{component EuiComboBoxGroup}} @triggerClass={{classNames \"euiComboBox\" (if @compressed \"euiComboBox--compressed\") (if @fullWidth \"euiComboBox--fullWidth\") (if @isDisabled \"euiComboBox-isDisabled\") (if @isInvalid \"euiComboBox-isInvalid\") (if this.select.isOpen \"euiComboBox-isOpen\")}} @noMatchesMessageComponent={{if (and @onCreateOption (not this.alwaysShowCreateOption)) (component EuiComboBoxCreateOption customOptionText=@customOptionText onCreateOption=this.onCreateOption select=this.select alwaysShow=false) (component EuiComboBoxNoMatchesMessage)}} @dropdownClass=\"euiComboBoxOptionsList euiPanel euiPanel--borderRadiusMedium euiPanel--noShadow euiPanel--plain euiPopover__panel-isAttached euiPopover__panel euiPopover__panel-noArrow euiPopover__panel--bottom euiPopover__panel-isOpen {{@dropdownClass}}\" as |option i|>\n {{yield option i}}\n </PowerSelectMultiple>\n ", {
|
|
76
79
|
strictMode: true,
|
|
77
80
|
scope: () => ({
|
|
78
81
|
PowerSelectMultiple,
|
|
@@ -83,10 +86,10 @@ class EuiComboBoxComponent extends Component {
|
|
|
83
86
|
EuiComboBoxTrigger: EuiComboBoxTriggerComponent,
|
|
84
87
|
queue,
|
|
85
88
|
optional,
|
|
89
|
+
EuiComboBoxCreateOption: EuiComboBoxCreateOptionComponent,
|
|
86
90
|
EuiComboBoxOptions: EuiComboBoxOptionsComponent,
|
|
87
91
|
EuiComboBoxGroup,
|
|
88
92
|
classNames,
|
|
89
|
-
EuiComboBoxCreateOption: EuiAccordionAccordionComponent,
|
|
90
93
|
EuiComboBoxNoMatchesMessage: NoMatchesMessageComponent
|
|
91
94
|
})
|
|
92
95
|
}), this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-combo-box.js","sources":["../../src/components/eui-combo-box.gts"],"sourcesContent":["import 'ember-basic-dropdown/styles';\n\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { isEqual } from '@ember/utils';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';\nimport PowerSelectMultiple from 'ember-power-select/components/power-select-multiple';\nimport { emberPowerSelectIsGroup } from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, not } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiComboBoxCreateOption from './eui-combo-box/create-option.gts';\nimport EuiComboBoxGroup from './eui-combo-box/group.gts';\nimport EuiComboBoxNoMatchesMessage from './eui-combo-box/no-matches-message.gts';\nimport EuiComboBoxOptions from './eui-combo-box/options.gts';\nimport EuiComboBoxSearchMessage from './eui-combo-box/search-message.gts';\nimport EuiComboBoxTrigger from './eui-combo-box/trigger.gts';\n\nimport type EuiI18n from '../services/eui-i18n';\n\ninterface PromiseProxy<T> extends Promise<T> {\n content: any;\n}\n\ninterface Select {\n selected: any;\n actions: {\n search: (str: string) => void;\n };\n}\n\nexport interface EuiComboBoxSignature {\n Element: HTMLDivElement;\n Args: {\n singleSelection?:\n | boolean\n | {\n asPlainText?: boolean;\n };\n onCreateOption?: (search: string) => boolean | undefined;\n options: any[];\n search?: (term: string, select: Select) => any[] | PromiseProxy<any[]>;\n searchField?: string;\n isInvalid?: boolean;\n fullWidth?: boolean;\n searchMessage?: string;\n searchEnabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n readOnly?: boolean;\n searchMessageComponent?: any;\n compressed?: boolean;\n onFocus?: (e: FocusEvent) => void;\n onBlur?: (e: FocusEvent) => void;\n onClose?: (e: Event) => void;\n onOpen?: (e: Event) => void;\n renderInPlace?: boolean;\n customOptionText?: string;\n loadingMessage?: any;\n selectedItemComponent?: any;\n beforeOptionsComponent?: any;\n placeholderComponent?: any;\n afterOptionsComponent?: any;\n searchPlaceholder?: any;\n dropdownClass?: string;\n selectedOptions?: any[];\n onChange: (selected: any[]) => void;\n placeholder?: string;\n extra?: any;\n closeOnSelect?: boolean;\n autoFocus?: boolean;\n defaultHighlighted?: any;\n matchTriggerWidth?: boolean;\n tabindex?: number;\n initiallyOpen?: boolean;\n horizontalPosition?: string;\n verticalPosition?: string;\n destination?: string;\n preventScroll?: boolean;\n noMatchesMessage?: string;\n noMatchesMessageComponent?: any;\n optionsClass?: string;\n rowHeight?: number;\n };\n Blocks: {\n default: [any, number, Select];\n };\n}\n\ninterface Sliceable<T> {\n slice(): T[];\n}\n\nconst isSliceable = <T,>(coll: any): coll is Sliceable<T> => {\n return isArray(coll);\n};\n\nexport const toPlainArray = <T,>(collection: T[] | Sliceable<T>): T[] => {\n if (isSliceable<T>(collection)) {\n return collection.slice();\n } else {\n return collection;\n }\n};\n\nexport default class EuiComboBoxComponent extends Component<EuiComboBoxSignature> {\n @service declare euiI18n: EuiI18n;\n\n @tracked select: any = null;\n @tracked private _resolvedOptions?: any[];\n @tracked searchText = '';\n @tracked private _searchResult?: any[];\n\n private _filterResultsCache: {\n results: any[];\n options: any[];\n searchText: string;\n } = { results: [], options: [], searchText: this.searchText };\n\n get loadingMessage() {\n return (\n this.args.loadingMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.loadingMessage',\n 'Loading options...'\n )\n );\n }\n\n get noMatchesMessage() {\n return (\n this.args.noMatchesMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.noMatchesMessage',\n 'No results found'\n )\n );\n }\n\n get searchMessage() {\n return (\n this.args.searchMessage ||\n this.euiI18n.lookupToken('euiComboBox.searchMessage', 'Type to search')\n );\n }\n\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n <PowerSelectMultiple\n ...attributes\n @onChange={{this.onChange}}\n @onFocus={{@onFocus}}\n @onBlur={{@onBlur}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n @placeholderComponent={{@placeholderComponent}}\n @searchMessage={{this.searchMessage}}\n @searchMessageComponent={{if\n @searchMessageComponent\n @searchMessageComponent\n EuiComboBoxSearchMessage\n }}\n @noMatchesMessage={{this.noMatchesMessage}}\n @matchTriggerWidth={{@matchTriggerWidth}}\n @options={{this.options}}\n @selected={{@selectedOptions}}\n @closeOnSelect={{@closeOnSelect}}\n @defaultHighlighted={{@defaultHighlighted}}\n @searchField={{@searchField}}\n @searchEnabled={{argOrDefault @searchEnabled true}}\n @tabindex={{@tabindex}}\n @initiallyOpened={{and (not @isDisabled) @autoFocus}}\n @triggerComponent={{component\n EuiComboBoxTrigger\n fullWidth=@fullWidth\n compressed=@compressed\n isInvalid=@isInvalid\n singleSelection=@singleSelection\n onClose=@removeTag\n onCreateOption=(if @onCreateOption this.onCreateOption)\n isLoading=@isLoading\n autoFocus=(and (not @isDisabled) @autoFocus)\n icon=@triggerIcon\n }}\n @matcher={{@matcher}}\n @initiallyOpen={{@initiallyOpen}}\n @typeAheadOptionMatcher={{@typeAheadOptionMatcher}}\n @buildSelection={{this.buildSelection}}\n @search={{@search}}\n @onInput={{@onInput}}\n @onKeydown={{@onKeydown}}\n @scrollTo={{this.scrollTo}}\n @registerAPI={{queue this.registerAPI (optional @registerApi)}}\n @horizontalPosition={{@horizontalPosition}}\n @destination={{@destination}}\n @preventScroll={{@preventScroll}}\n @renderInPlace={{@renderInPlace}}\n @verticalPosition={{@verticalPosition}}\n @disabled={{@isDisabled}}\n @calculatePosition={{@calculatePosition}}\n @eventType={{@eventType}}\n @ariaLabel={{@ariaLabel}}\n @ariaLabelledBy={{@ariaLabelledBy}}\n @required={{@required}}\n @triggerRole={{@triggerRole}}\n @title={{@title}}\n @triggerId={{@triggerId}}\n @allowClear={{and (argOrDefault @isClearable true) (not @isDisabled)}}\n @loadingMessage={{this.loadingMessage}}\n @selectedItemComponent={{@selectedItemComponent}}\n @beforeOptionsComponent={{@beforeOptionsComponent}}\n @afterOptionsComponent={{@afterOptionsComponent}}\n @placeholder={{@placeholder}}\n @searchPlaceholder={{@searchPlaceholder}}\n @optionsComponent={{component\n EuiComboBoxOptions\n rowHeight=@rowHeight\n class=@optionsClass\n }}\n @extra={{@extra}}\n @groupComponent={{component EuiComboBoxGroup}}\n @triggerClass={{classNames\n \"euiComboBox\"\n (if @compressed \"euiComboBox--compressed\")\n (if @fullWidth \"euiComboBox--fullWidth\")\n (if @isDisabled \"euiComboBox-isDisabled\")\n (if @isInvalid \"euiComboBox-isInvalid\")\n (if this.select.isOpen \"euiComboBox-isOpen\")\n }}\n @noMatchesMessageComponent={{if\n @onCreateOption\n (component\n EuiComboBoxCreateOption\n customOptionText=@customOptionText\n onCreateOption=this.onCreateOption\n select=this.select\n )\n (component EuiComboBoxNoMatchesMessage)\n }}\n @dropdownClass=\"euiComboBoxOptionsList euiPanel euiPanel--borderRadiusMedium euiPanel--noShadow euiPanel--plain euiPopover__panel-isAttached euiPopover__panel euiPopover__panel-noArrow euiPopover__panel--bottom euiPopover__panel-isOpen euiComboBoxOptionsList__rowWrap {{@dropdownClass}}\"\n as |option i|\n >\n {{yield option i}}\n </PowerSelectMultiple>\n </template>\n\n //This is to allow scrolling between virtualized groups\n @cached\n get opts() {\n return this.results.reduce((acc, curr) => {\n if (emberPowerSelectIsGroup([curr])) {\n acc.push(curr, ...curr.options);\n } else {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n @cached\n get options(): any[] {\n if (this._resolvedOptions) return toPlainArray(this._resolvedOptions);\n\n if (this.args.options) {\n return toPlainArray(this.args.options);\n } else {\n return [];\n }\n }\n\n @cached\n get results(): any[] {\n if (this.searchText.length > 0) {\n if (this.args.search) {\n return toPlainArray(this._searchResult || this.options);\n } else {\n if (\n this._filterResultsCache.options === this.options &&\n this._filterResultsCache.searchText === this.searchText\n ) {\n // This is an optimization to avoid filtering several times, which may be a bit expensive\n // if there are many options, if neither the options nor the searchtext have changed\n return this._filterResultsCache.results;\n }\n\n //@ts-ignore\n let results = this._filter(this.options, this.searchText);\n //eslint-disable-next-line\n this._filterResultsCache = {\n results,\n options: this.options,\n searchText: this.searchText\n };\n\n return results;\n }\n } else {\n return this.options;\n }\n }\n\n @action\n scrollTo(option: any, select: { results: []; uniqueId: string }): void {\n let optionsList = document.querySelector(\n `[aria-controls=\"ember-power-select-trigger-${select.uniqueId}\"]`\n ) as HTMLElement;\n\n if (!optionsList) {\n return;\n }\n\n let index = this.opts.indexOf(option);\n\n if (index === -1) {\n return;\n }\n\n let optionElement = optionsList.querySelector(\n `[data-option-index=\"${index}\"]`\n ) as HTMLElement;\n\n if (!optionElement) {\n return;\n }\n\n let optionTopScroll = optionElement.offsetTop;\n let optionBottomScroll = optionTopScroll + optionElement.offsetHeight;\n\n if (optionBottomScroll > optionsList.offsetHeight + optionsList.scrollTop) {\n optionsList.scrollTop = optionBottomScroll - optionsList.offsetHeight;\n } else if (optionTopScroll < optionsList.scrollTop) {\n optionsList.scrollTop = optionTopScroll;\n }\n }\n\n @action\n registerAPI(select: Select) {\n this.select = select;\n }\n\n @action\n onChange(selected: any[]) {\n if (this.args.singleSelection) {\n return selected.length > 0 ? [selected[selected.length - 1]] : [];\n }\n\n this.args.onChange(selected);\n }\n\n @action\n onCreateOption() {\n let option;\n\n if (\n this.args.onCreateOption &&\n typeof this.args.onCreateOption === 'function'\n ) {\n // The `onCreateOption` function can be used to sanitize the input or explicitly return `false` to reject the input\n option = this.args.onCreateOption(this.select.searchText);\n\n if (option === false) {\n return;\n }\n }\n\n let search = option || this.select.searchText;\n\n this.select.actions.search('');\n this.select.actions.close();\n\n return search;\n }\n\n @action\n buildSelection(option: any, select: Select) {\n let newSelection = (select.selected || []).slice(0);\n let idx = -1;\n\n for (let i = 0; i < newSelection.length; i++) {\n if (isEqual(newSelection[i], option)) {\n idx = i;\n\n break;\n }\n }\n\n if (idx > -1) {\n newSelection.splice(idx, 1);\n } else {\n newSelection.push(option);\n }\n\n if (this.args.singleSelection && newSelection.length === 0) {\n select.actions.search('');\n }\n\n if (select?.selected?.length < newSelection.length) {\n select.actions.search('');\n }\n\n return newSelection;\n }\n}\n"],"names":["isSliceable","coll","isArray","toPlainArray","collection","slice","EuiComboBoxComponent","Component","g","prototype","service","i","void 0","tracked","_filterResultsCache","results","options","searchText","loadingMessage","args","euiI18n","lookupToken","noMatchesMessage","searchMessage","setComponentTemplate","precompileTemplate","strictMode","scope","PowerSelectMultiple","EuiComboBoxSearchMessage","argOrDefault","and","not","EuiComboBoxTrigger","queue","optional","EuiComboBoxOptions","EuiComboBoxGroup","classNames","EuiComboBoxCreateOption","EuiComboBoxNoMatchesMessage","opts","reduce","acc","curr","emberPowerSelectIsGroup","push","n","cached","_resolvedOptions","length","search","_searchResult","_filter","scrollTo","option","select","optionsList","document","querySelector","uniqueId","index","indexOf","optionElement","optionTopScroll","offsetTop","optionBottomScroll","offsetHeight","scrollTop","action","registerAPI","onChange","selected","singleSelection","onCreateOption","actions","close","buildSelection","newSelection","idx","isEqual","splice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-combo-box.js","sources":["../../src/components/eui-combo-box.gts"],"sourcesContent":["import 'ember-basic-dropdown/styles';\n\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { isEqual } from '@ember/utils';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';\nimport PowerSelectMultiple from 'ember-power-select/components/power-select-multiple';\nimport { emberPowerSelectIsGroup } from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, not } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiComboBoxCreateOption from './eui-combo-box/create-option.gts';\nimport EuiComboBoxGroup from './eui-combo-box/group.gts';\nimport EuiComboBoxNoMatchesMessage from './eui-combo-box/no-matches-message.gts';\nimport EuiComboBoxOptions from './eui-combo-box/options.gts';\nimport EuiComboBoxSearchMessage from './eui-combo-box/search-message.gts';\nimport EuiComboBoxTrigger from './eui-combo-box/trigger.gts';\n\nimport type EuiI18n from '../services/eui-i18n';\n\ninterface PromiseProxy<T> extends Promise<T> {\n content: any;\n}\n\ninterface Select {\n selected: any;\n actions: {\n search: (str: string) => void;\n };\n}\n\nexport interface EuiComboBoxSignature {\n Element: HTMLDivElement;\n Args: {\n singleSelection?:\n | boolean\n | {\n asPlainText?: boolean;\n };\n onCreateOption?: (search: string) => boolean | undefined;\n alwaysShowCreateOption?: boolean;\n options: any[];\n search?: (term: string, select: Select) => any[] | PromiseProxy<any[]>;\n searchField?: string;\n isInvalid?: boolean;\n fullWidth?: boolean;\n searchMessage?: string;\n searchEnabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n readOnly?: boolean;\n searchMessageComponent?: any;\n compressed?: boolean;\n onFocus?: (e: FocusEvent) => void;\n onBlur?: (e: FocusEvent) => void;\n onClose?: (e: Event) => void;\n onOpen?: (e: Event) => void;\n renderInPlace?: boolean;\n customOptionText?: string;\n loadingMessage?: any;\n selectedItemComponent?: any;\n beforeOptionsComponent?: any;\n placeholderComponent?: any;\n afterOptionsComponent?: any;\n searchPlaceholder?: any;\n dropdownClass?: string;\n selectedOptions?: any[];\n onChange: (selected: any[]) => void;\n placeholder?: string;\n extra?: any;\n closeOnSelect?: boolean;\n autoFocus?: boolean;\n defaultHighlighted?: any;\n matchTriggerWidth?: boolean;\n tabindex?: number;\n initiallyOpen?: boolean;\n horizontalPosition?: string;\n verticalPosition?: string;\n destination?: string;\n preventScroll?: boolean;\n noMatchesMessage?: string;\n noMatchesMessageComponent?: any;\n optionsClass?: string;\n rowHeight?: number;\n };\n Blocks: {\n default: [any, number, Select];\n };\n}\n\ninterface Sliceable<T> {\n slice(): T[];\n}\n\nconst isSliceable = <T,>(coll: any): coll is Sliceable<T> => {\n return isArray(coll);\n};\n\nexport const toPlainArray = <T,>(collection: T[] | Sliceable<T>): T[] => {\n if (isSliceable<T>(collection)) {\n return collection.slice();\n } else {\n return collection;\n }\n};\n\nexport default class EuiComboBoxComponent extends Component<EuiComboBoxSignature> {\n @service declare euiI18n: EuiI18n;\n\n @tracked select: any = null;\n @tracked private _resolvedOptions?: any[];\n @tracked searchText = '';\n @tracked private _searchResult?: any[];\n\n private _filterResultsCache: {\n results: any[];\n options: any[];\n searchText: string;\n } = { results: [], options: [], searchText: this.searchText };\n\n get loadingMessage() {\n return (\n this.args.loadingMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.loadingMessage',\n 'Loading options...'\n )\n );\n }\n\n get noMatchesMessage() {\n return (\n this.args.noMatchesMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.noMatchesMessage',\n 'No results found'\n )\n );\n }\n\n get searchMessage() {\n return (\n this.args.searchMessage ||\n this.euiI18n.lookupToken('euiComboBox.searchMessage', 'Type to search')\n );\n }\n\n get alwaysShowCreateOption() {\n return this.args.onCreateOption && this.args.alwaysShowCreateOption;\n }\n\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n\n <PowerSelectMultiple\n ...attributes\n @onChange={{this.onChange}}\n @onFocus={{@onFocus}}\n @onBlur={{@onBlur}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n @placeholderComponent={{@placeholderComponent}}\n @searchMessage={{this.searchMessage}}\n @searchMessageComponent={{if\n @searchMessageComponent\n @searchMessageComponent\n EuiComboBoxSearchMessage\n }}\n @noMatchesMessage={{this.noMatchesMessage}}\n @matchTriggerWidth={{@matchTriggerWidth}}\n @options={{this.options}}\n @selected={{@selectedOptions}}\n @closeOnSelect={{@closeOnSelect}}\n @defaultHighlighted={{@defaultHighlighted}}\n @searchField={{@searchField}}\n @searchEnabled={{argOrDefault @searchEnabled true}}\n @tabindex={{@tabindex}}\n @initiallyOpened={{and (not @isDisabled) @autoFocus}}\n @triggerComponent={{component\n EuiComboBoxTrigger\n fullWidth=@fullWidth\n compressed=@compressed\n isInvalid=@isInvalid\n singleSelection=@singleSelection\n onClose=@removeTag\n onCreateOption=(if @onCreateOption this.onCreateOption)\n isLoading=@isLoading\n autoFocus=(and (not @isDisabled) @autoFocus)\n icon=@triggerIcon\n }}\n @matcher={{@matcher}}\n @initiallyOpen={{@initiallyOpen}}\n @typeAheadOptionMatcher={{@typeAheadOptionMatcher}}\n @buildSelection={{this.buildSelection}}\n @search={{@search}}\n @onInput={{@onInput}}\n @onKeydown={{@onKeydown}}\n @scrollTo={{this.scrollTo}}\n @registerAPI={{queue this.registerAPI (optional @registerApi)}}\n @horizontalPosition={{@horizontalPosition}}\n @destination={{@destination}}\n @preventScroll={{@preventScroll}}\n @renderInPlace={{@renderInPlace}}\n @verticalPosition={{@verticalPosition}}\n @disabled={{@isDisabled}}\n @calculatePosition={{@calculatePosition}}\n @eventType={{@eventType}}\n @ariaLabel={{@ariaLabel}}\n @ariaLabelledBy={{@ariaLabelledBy}}\n @required={{@required}}\n @triggerRole={{@triggerRole}}\n @title={{@title}}\n @triggerId={{@triggerId}}\n @allowClear={{and (argOrDefault @isClearable true) (not @isDisabled)}}\n @loadingMessage={{this.loadingMessage}}\n @selectedItemComponent={{@selectedItemComponent}}\n @beforeOptionsComponent={{@beforeOptionsComponent}}\n @afterOptionsComponent={{if\n @afterOptionsComponent\n @afterOptionsComponent\n (if\n (and\n @onCreateOption\n (not this.select.loading)\n this.select.searchText\n this.alwaysShowCreateOption\n )\n (component\n EuiComboBoxCreateOption\n customOptionText=@customOptionText\n onCreateOption=this.onCreateOption\n select=this.select\n alwaysShow=true\n )\n )\n }}\n @placeholder={{@placeholder}}\n @searchPlaceholder={{@searchPlaceholder}}\n @optionsComponent={{component\n EuiComboBoxOptions\n rowHeight=@rowHeight\n class=@optionsClass\n }}\n @extra={{@extra}}\n @groupComponent={{component EuiComboBoxGroup}}\n @triggerClass={{classNames\n \"euiComboBox\"\n (if @compressed \"euiComboBox--compressed\")\n (if @fullWidth \"euiComboBox--fullWidth\")\n (if @isDisabled \"euiComboBox-isDisabled\")\n (if @isInvalid \"euiComboBox-isInvalid\")\n (if this.select.isOpen \"euiComboBox-isOpen\")\n }}\n @noMatchesMessageComponent={{if\n (and @onCreateOption (not this.alwaysShowCreateOption))\n (component\n EuiComboBoxCreateOption\n customOptionText=@customOptionText\n onCreateOption=this.onCreateOption\n select=this.select\n alwaysShow=false\n )\n (component EuiComboBoxNoMatchesMessage)\n }}\n @dropdownClass=\"euiComboBoxOptionsList euiPanel euiPanel--borderRadiusMedium euiPanel--noShadow euiPanel--plain euiPopover__panel-isAttached euiPopover__panel euiPopover__panel-noArrow euiPopover__panel--bottom euiPopover__panel-isOpen {{@dropdownClass}}\"\n as |option i|\n >\n {{yield option i}}\n </PowerSelectMultiple>\n </template>\n\n //This is to allow scrolling between virtualized groups\n @cached\n get opts() {\n return this.results.reduce((acc, curr) => {\n if (emberPowerSelectIsGroup([curr])) {\n acc.push(curr, ...curr.options);\n } else {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n @cached\n get options(): any[] {\n if (this._resolvedOptions) return toPlainArray(this._resolvedOptions);\n\n if (this.args.options) {\n return toPlainArray(this.args.options);\n } else {\n return [];\n }\n }\n\n @cached\n get results(): any[] {\n if (this.searchText.length > 0) {\n if (this.args.search) {\n return toPlainArray(this._searchResult || this.options);\n } else {\n if (\n this._filterResultsCache.options === this.options &&\n this._filterResultsCache.searchText === this.searchText\n ) {\n // This is an optimization to avoid filtering several times, which may be a bit expensive\n // if there are many options, if neither the options nor the searchtext have changed\n return this._filterResultsCache.results;\n }\n\n //@ts-ignore\n let results = this._filter(this.options, this.searchText);\n //eslint-disable-next-line\n this._filterResultsCache = {\n results,\n options: this.options,\n searchText: this.searchText\n };\n\n return results;\n }\n } else {\n return this.options;\n }\n }\n\n @action\n scrollTo(option: any, select: { results: []; uniqueId: string }): void {\n let optionsList = document.querySelector(\n `[aria-controls=\"ember-power-select-trigger-${select.uniqueId}\"]`\n ) as HTMLElement;\n\n if (!optionsList) {\n return;\n }\n\n let index = this.opts.indexOf(option);\n\n if (index === -1) {\n return;\n }\n\n let optionElement = optionsList.querySelector(\n `[data-option-index=\"${index}\"]`\n ) as HTMLElement;\n\n if (!optionElement) {\n return;\n }\n\n let optionTopScroll = optionElement.offsetTop;\n let optionBottomScroll = optionTopScroll + optionElement.offsetHeight;\n\n if (optionBottomScroll > optionsList.offsetHeight + optionsList.scrollTop) {\n optionsList.scrollTop = optionBottomScroll - optionsList.offsetHeight;\n } else if (optionTopScroll < optionsList.scrollTop) {\n optionsList.scrollTop = optionTopScroll;\n }\n }\n\n @action\n registerAPI(select: Select) {\n this.select = select;\n }\n\n @action\n onChange(selected: any[]) {\n if (this.args.singleSelection) {\n return selected.length > 0 ? [selected[selected.length - 1]] : [];\n }\n\n this.args.onChange(selected);\n }\n\n @action\n onCreateOption() {\n let option;\n\n if (\n this.args.onCreateOption &&\n typeof this.args.onCreateOption === 'function'\n ) {\n // The `onCreateOption` function can be used to sanitize the input or explicitly return `false` to reject the input\n option = this.args.onCreateOption(this.select.searchText);\n\n if (option === false) {\n return;\n }\n }\n\n let search = option || this.select.searchText;\n\n this.select.actions.search('');\n this.select.actions.close();\n\n return search;\n }\n\n @action\n buildSelection(option: any, select: Select) {\n let newSelection = (select.selected || []).slice(0);\n let idx = -1;\n\n for (let i = 0; i < newSelection.length; i++) {\n if (isEqual(newSelection[i], option)) {\n idx = i;\n\n break;\n }\n }\n\n if (idx > -1) {\n newSelection.splice(idx, 1);\n } else {\n newSelection.push(option);\n }\n\n if (this.args.singleSelection && newSelection.length === 0) {\n select.actions.search('');\n }\n\n if (select?.selected?.length < newSelection.length) {\n select.actions.search('');\n }\n\n return newSelection;\n }\n}\n"],"names":["isSliceable","coll","isArray","toPlainArray","collection","slice","EuiComboBoxComponent","Component","g","prototype","service","i","void 0","tracked","_filterResultsCache","results","options","searchText","loadingMessage","args","euiI18n","lookupToken","noMatchesMessage","searchMessage","alwaysShowCreateOption","onCreateOption","setComponentTemplate","precompileTemplate","strictMode","scope","PowerSelectMultiple","EuiComboBoxSearchMessage","argOrDefault","and","not","EuiComboBoxTrigger","queue","optional","EuiComboBoxCreateOption","EuiComboBoxOptions","EuiComboBoxGroup","classNames","EuiComboBoxNoMatchesMessage","opts","reduce","acc","curr","emberPowerSelectIsGroup","push","n","cached","_resolvedOptions","length","search","_searchResult","_filter","scrollTo","option","select","optionsList","document","querySelector","uniqueId","index","indexOf","optionElement","optionTopScroll","offsetTop","optionBottomScroll","offsetHeight","scrollTop","action","registerAPI","onChange","selected","singleSelection","actions","close","buildSelection","newSelection","idx","isEqual","splice"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.j
|
|
|
10
10
|
import classNames from '../helpers/class-names.js';
|
|
11
11
|
import validatableControl from '../modifiers/validatable-control.js';
|
|
12
12
|
import EuiButtonEmpty from './eui-button-empty.js';
|
|
13
|
+
import EuiI18nComponent from './eui-i18n.js';
|
|
13
14
|
import EuiIcon from './eui-icon.js';
|
|
14
15
|
import EuiLoadingSpinner from './eui-loading-spinner.js';
|
|
15
16
|
import EuiProgress from './eui-progress.js';
|
|
@@ -111,7 +112,7 @@ class EuiFilePickerComponent extends Component {
|
|
|
111
112
|
this.fileInput = null;
|
|
112
113
|
}
|
|
113
114
|
static {
|
|
114
|
-
setComponentTemplate(precompileTemplate("\n {{#let (classNames (if @compressed \"euiFilePicker--compressed\") (if @fullWidth \"euiFilePicker--fullWidth\") (if @isInvalid \"euiFilePicker--isInvalid\") (if @isLoading \"euiFilePicker--isLoading\") display=this.display componentName=\"EuiFilePicker\") (argOrDefault @id (randomId)) as |classes inputId|}}\n {{#let (if inputId (concat inputId \"-filePicker__prompt\") (randomId)) (notEq this.promptText null) (eq this.display \"default\") as |promptId isOverridingInitialPrompt normalFormControl|}}\n <div class
|
|
115
|
+
setComponentTemplate(precompileTemplate("\n {{#let (classNames (if @compressed \"euiFilePicker--compressed\") (if @fullWidth \"euiFilePicker--fullWidth\") (if @isInvalid \"euiFilePicker--isInvalid\") (if @isLoading \"euiFilePicker--isLoading\") display=this.display componentName=\"EuiFilePicker\") (argOrDefault @id (randomId)) as |classes inputId|}}\n {{#let (if inputId (concat inputId \"-filePicker__prompt\") (randomId)) (notEq this.promptText null) (eq this.display \"default\") as |promptId isOverridingInitialPrompt normalFormControl|}}\n <div class={{classNames classes (if this.isHoveringDrop \"euiFilePicker__showDrop\") (if isOverridingInitialPrompt \"euiFilePicker--hasFiles\")}}>\n <div class=\"euiFilePicker__wrap\">\n <input type=\"file\" id={{inputId}} name={{@name}} class=\"euiFilePicker__input\" disabled={{@disabled}} aria-describedby={{promptId}} multiple={{@multiple}} {{on \"dragover\" this.showDrop}} {{on \"dragleave\" this.hideDrop}} {{on \"drop\" this.hideDrop}} {{on \"change\" this.handleChange}} {{didInsert this.didInsertInput}} {{validatableControl @isInvalid}} ...attributes />\n <div class=\"euiFilePicker__prompt\" id={{promptId}}>\n <EuiIcon @iconClasses=\"euiFilePicker__icon\" @type=\"importAction\" @size={{if true \"m\" \"l\"}} aria-hidden=\"true\" />\n <div class=\"euiFilePicker__promptText\">\n {{if this.promptText this.promptText this.initialPromptText}}\n </div>\n {{#if (and @isLoading normalFormControl)}}\n <EuiLoadingSpinner class=\"euiFilePicker__loadingSpinner\" />\n {{else if isOverridingInitialPrompt}}\n {{#if normalFormControl}}\n <button type=\"button\" aria-label=\"Clear selected files\" class=\"euiFilePicker__clearButton\" {{on \"click\" this.removeFiles}}>\n <EuiIcon @iconClasses=\"euiFilePicker__clearIcon\" @type=\"cross\" />\n </button>\n {{else}}\n <EuiButtonEmpty aria-label=\"Clear selected files\" class=\"euiFilePicker__clearButton\" @size=\"xs\" {{on \"click\" this.removeFiles}}>\n <EuiI18n @token=\"euiFilePicker.removeFiles\" @default=\"Remove\" as |Token|>\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n {{/if}}\n {{/if}}\n {{#if (and (not normalFormControl) @isLoading)}}\n <EuiProgress @size=\"xs\" @color=\"accent\" position=\"absolute\" />\n {{/if}}\n </div>\n </div>\n </div>\n {{/let}}\n {{/let}}\n ", {
|
|
115
116
|
strictMode: true,
|
|
116
117
|
scope: () => ({
|
|
117
118
|
classNames,
|
|
@@ -127,6 +128,7 @@ class EuiFilePickerComponent extends Component {
|
|
|
127
128
|
and,
|
|
128
129
|
EuiLoadingSpinner,
|
|
129
130
|
EuiButtonEmpty,
|
|
131
|
+
EuiI18n: EuiI18nComponent,
|
|
130
132
|
not,
|
|
131
133
|
EuiProgress
|
|
132
134
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-file-picker.js","sources":["../../src/components/eui-file-picker.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport { and, eq, not, notEq, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiProgress from './eui-progress.gts';\n\nimport type { displayMapping } from '../utils/css-mappings/eui-file-picker.ts';\n\nexport type EuiFilePickerDisplay = keyof typeof displayMapping;\n\n/**\n * You can find more typing on the template\n */\ntype EuiFilePicker = {\n id?: string;\n name?: string;\n class?: string;\n /**\n * The content that appears in the dropzone if no file is attached\n */\n initialPromptText?: Component | string | null;\n /**\n * Use as a callback to access the HTML FileList API\n */\n onChange?: (files: FileList | null) => void;\n /**\n * Reduces the size to a typical (compressed) input\n */\n compressed?: boolean;\n /**\n * Size or type of display;\n * `default` for normal height, similar to other controls;\n * `large` for taller size\n */\n display?: EuiFilePickerDisplay;\n fullWidth?: boolean;\n isInvalid?: boolean;\n isLoading?: boolean;\n disabled?: boolean;\n multiple?: boolean;\n\n /**\n * Optionally pass a fn to get the instance of the component to access it programatically\n */\n ref?: (c: typeof EuiFilePickerComponent) => void;\n};\n\nexport interface EuiFilePickerSignature {\n Element: HTMLInputElement;\n Args: EuiFilePicker;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFilePickerComponent extends Component<EuiFilePickerSignature> {\n @tracked fileInput: HTMLInputElement | null = null;\n @tracked promptText: string | null | undefined = null;\n @tracked isHoveringDrop = false;\n\n @argOrDefaultDecorator('Select or drag and drop a file') initialPromptText!:\n | Component\n | string\n | null;\n\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator('') display!: string;\n\n @action\n showDrop(): void {\n if (!this.args.disabled) {\n this.isHoveringDrop = true;\n }\n }\n\n @action\n hideDrop(): void {\n this.isHoveringDrop = false;\n }\n\n @action\n handleChange(): void {\n if (!this.fileInput) return;\n\n if (this.fileInput.files && this.fileInput.files.length > 1) {\n this.promptText = `${this.fileInput.files.length} files selected`;\n // TODO: Change when EuiI18n is available\n // <EuiI18n\n // token=\"euiFilePicker.filesSelected\"\n // default=\"{fileCount} files selected\"\n // values={{ fileCount: this.fileInput.files.length }}\n // />\n } else if (this.fileInput.files && this.fileInput.files.length === 0) {\n this.promptText = null;\n } else {\n this.promptText = this.fileInput.value.split('\\\\').pop();\n }\n\n const { onChange } = this.args;\n\n if (onChange) {\n onChange(this.fileInput.files);\n }\n }\n\n @action\n removeFiles(e?: MouseEvent): void {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (!this.fileInput) return;\n\n this.fileInput.value = '';\n this.handleChange();\n }\n\n @action\n didInsertInput(inputRef: HTMLInputElement): void {\n this.fileInput = inputRef;\n this.args.ref?.(this as any as typeof EuiFilePickerComponent);\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n this.fileInput = null;\n }\n\n <template>\n {{#let\n (classNames\n (if @compressed \"euiFilePicker--compressed\")\n (if @fullWidth \"euiFilePicker--fullWidth\")\n (if @isInvalid \"euiFilePicker--isInvalid\")\n (if @isLoading \"euiFilePicker--isLoading\")\n display=this.display\n componentName=\"EuiFilePicker\"\n )\n (argOrDefault @id (randomId))\n as |classes inputId|\n }}\n {{#let\n (if inputId (concat inputId \"-filePicker__prompt\") (randomId))\n (notEq this.promptText null)\n (eq this.display \"default\")\n as |promptId isOverridingInitialPrompt normalFormControl|\n }}\n <div\n class=\"{{classes}}\n {{if this.isHoveringDrop 'euiFilePicker__showDrop'}}\n {{if isOverridingInitialPrompt 'euiFilePicker--hasFiles'}}\"\n >\n <div class=\"euiFilePicker__wrap\">\n <input\n type=\"file\"\n id={{inputId}}\n name={{@name}}\n class=\"euiFilePicker__input\"\n disabled={{@disabled}}\n aria-describedby={{promptId}}\n multiple={{@multiple}}\n {{on \"dragover\" this.showDrop}}\n {{on \"dragleave\" this.hideDrop}}\n {{on \"drop\" this.hideDrop}}\n {{on \"change\" this.handleChange}}\n {{didInsert this.didInsertInput}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n <div class=\"euiFilePicker__prompt\" id={{promptId}}>\n <EuiIcon\n @iconClasses=\"euiFilePicker__icon\"\n @type=\"importAction\"\n @size={{if true \"m\" \"l\"}}\n aria-hidden=\"true\"\n />\n <div class=\"euiFilePicker__promptText\">\n {{if this.promptText this.promptText this.initialPromptText}}\n </div>\n {{#if (and @isLoading normalFormControl)}}\n <EuiLoadingSpinner class=\"euiFilePicker__loadingSpinner\" />\n {{else if isOverridingInitialPrompt}}\n {{#if normalFormControl}}\n <button\n type=\"button\"\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n {{on \"click\" this.removeFiles}}\n >\n <EuiIcon\n @iconClasses=\"euiFilePicker__clearIcon\"\n @type=\"cross\"\n />\n </button>\n {{else}}\n <EuiButtonEmpty\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n @size=\"xs\"\n {{on \"click\" this.removeFiles}}\n >\n Remove\n </EuiButtonEmpty>\n {{/if}}\n {{/if}}\n {{#if (and (not normalFormControl) @isLoading)}}\n <EuiProgress @size=\"xs\" @color=\"accent\" position=\"absolute\" />\n {{/if}}\n </div>\n </div>\n </div>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["EuiFilePickerComponent","Component","g","prototype","tracked","i","void 0","argOrDefaultDecorator","showDrop","args","disabled","isHoveringDrop","n","action","hideDrop","handleChange","fileInput","files","length","promptText","value","split","pop","onChange","removeFiles","e","stopPropagation","preventDefault","didInsertInput","inputRef","ref","willDestroy","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","randomId","concat","notEq","eq","on","didInsert","validatableControl","EuiIcon","and","EuiLoadingSpinner","EuiButtonEmpty","not","EuiProgress"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-file-picker.js","sources":["../../src/components/eui-file-picker.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport { and, eq, not, notEq, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiI18n from './eui-i18n.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiProgress from './eui-progress.gts';\n\nimport type { displayMapping } from '../utils/css-mappings/eui-file-picker.ts';\n\nexport type EuiFilePickerDisplay = keyof typeof displayMapping;\n\n/**\n * You can find more typing on the template\n */\ntype EuiFilePicker = {\n id?: string;\n name?: string;\n class?: string;\n /**\n * The content that appears in the dropzone if no file is attached\n */\n initialPromptText?: Component | string | null;\n /**\n * Use as a callback to access the HTML FileList API\n */\n onChange?: (files: FileList | null) => void;\n /**\n * Reduces the size to a typical (compressed) input\n */\n compressed?: boolean;\n /**\n * Size or type of display;\n * `default` for normal height, similar to other controls;\n * `large` for taller size\n */\n display?: EuiFilePickerDisplay;\n fullWidth?: boolean;\n isInvalid?: boolean;\n isLoading?: boolean;\n disabled?: boolean;\n multiple?: boolean;\n\n /**\n * Optionally pass a fn to get the instance of the component to access it programatically\n */\n ref?: (c: typeof EuiFilePickerComponent) => void;\n};\n\nexport interface EuiFilePickerSignature {\n Element: HTMLInputElement;\n Args: EuiFilePicker;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFilePickerComponent extends Component<EuiFilePickerSignature> {\n @tracked fileInput: HTMLInputElement | null = null;\n @tracked promptText: string | null | undefined = null;\n @tracked isHoveringDrop = false;\n\n @argOrDefaultDecorator('Select or drag and drop a file') initialPromptText!:\n | Component\n | string\n | null;\n\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator('') display!: string;\n\n @action\n showDrop(): void {\n if (!this.args.disabled) {\n this.isHoveringDrop = true;\n }\n }\n\n @action\n hideDrop(): void {\n this.isHoveringDrop = false;\n }\n\n @action\n handleChange(): void {\n if (!this.fileInput) return;\n\n if (this.fileInput.files && this.fileInput.files.length > 1) {\n this.promptText = `${this.fileInput.files.length} files selected`;\n // TODO: Change when EuiI18n is available\n // <EuiI18n\n // token=\"euiFilePicker.filesSelected\"\n // default=\"{fileCount} files selected\"\n // values={{ fileCount: this.fileInput.files.length }}\n // />\n } else if (this.fileInput.files && this.fileInput.files.length === 0) {\n this.promptText = null;\n } else {\n this.promptText = this.fileInput.value.split('\\\\').pop();\n }\n\n const { onChange } = this.args;\n\n if (onChange) {\n onChange(this.fileInput.files);\n }\n }\n\n @action\n removeFiles(e?: MouseEvent): void {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (!this.fileInput) return;\n\n this.fileInput.value = '';\n this.handleChange();\n }\n\n @action\n didInsertInput(inputRef: HTMLInputElement): void {\n this.fileInput = inputRef;\n this.args.ref?.(this as any as typeof EuiFilePickerComponent);\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n this.fileInput = null;\n }\n\n <template>\n {{#let\n (classNames\n (if @compressed \"euiFilePicker--compressed\")\n (if @fullWidth \"euiFilePicker--fullWidth\")\n (if @isInvalid \"euiFilePicker--isInvalid\")\n (if @isLoading \"euiFilePicker--isLoading\")\n display=this.display\n componentName=\"EuiFilePicker\"\n )\n (argOrDefault @id (randomId))\n as |classes inputId|\n }}\n {{#let\n (if inputId (concat inputId \"-filePicker__prompt\") (randomId))\n (notEq this.promptText null)\n (eq this.display \"default\")\n as |promptId isOverridingInitialPrompt normalFormControl|\n }}\n <div\n class={{classNames\n classes\n (if this.isHoveringDrop \"euiFilePicker__showDrop\")\n (if isOverridingInitialPrompt \"euiFilePicker--hasFiles\")\n }}\n >\n <div class=\"euiFilePicker__wrap\">\n <input\n type=\"file\"\n id={{inputId}}\n name={{@name}}\n class=\"euiFilePicker__input\"\n disabled={{@disabled}}\n aria-describedby={{promptId}}\n multiple={{@multiple}}\n {{on \"dragover\" this.showDrop}}\n {{on \"dragleave\" this.hideDrop}}\n {{on \"drop\" this.hideDrop}}\n {{on \"change\" this.handleChange}}\n {{didInsert this.didInsertInput}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n <div class=\"euiFilePicker__prompt\" id={{promptId}}>\n <EuiIcon\n @iconClasses=\"euiFilePicker__icon\"\n @type=\"importAction\"\n @size={{if true \"m\" \"l\"}}\n aria-hidden=\"true\"\n />\n <div class=\"euiFilePicker__promptText\">\n {{if this.promptText this.promptText this.initialPromptText}}\n </div>\n {{#if (and @isLoading normalFormControl)}}\n <EuiLoadingSpinner class=\"euiFilePicker__loadingSpinner\" />\n {{else if isOverridingInitialPrompt}}\n {{#if normalFormControl}}\n <button\n type=\"button\"\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n {{on \"click\" this.removeFiles}}\n >\n <EuiIcon\n @iconClasses=\"euiFilePicker__clearIcon\"\n @type=\"cross\"\n />\n </button>\n {{else}}\n <EuiButtonEmpty\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n @size=\"xs\"\n {{on \"click\" this.removeFiles}}\n >\n <EuiI18n\n @token=\"euiFilePicker.removeFiles\"\n @default=\"Remove\"\n as |Token|\n >\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n {{/if}}\n {{/if}}\n {{#if (and (not normalFormControl) @isLoading)}}\n <EuiProgress @size=\"xs\" @color=\"accent\" position=\"absolute\" />\n {{/if}}\n </div>\n </div>\n </div>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["EuiFilePickerComponent","Component","g","prototype","tracked","i","void 0","argOrDefaultDecorator","showDrop","args","disabled","isHoveringDrop","n","action","hideDrop","handleChange","fileInput","files","length","promptText","value","split","pop","onChange","removeFiles","e","stopPropagation","preventDefault","didInsertInput","inputRef","ref","willDestroy","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","randomId","concat","notEq","eq","on","didInsert","validatableControl","EuiIcon","and","EuiLoadingSpinner","EuiButtonEmpty","EuiI18n","not","EuiProgress"],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ class EuiPageHeaderContent extends Component {
|
|
|
46
46
|
return this.template === 'default' || this.template === 'empty';
|
|
47
47
|
}
|
|
48
48
|
static {
|
|
49
|
-
setComponentTemplate(precompileTemplate("\n {{#let (argOrDefault @responsive true) (argOrDefault @alignItems \"top\") (useState false) (and (argOrDefault @hasDescriptionBlock true) (has-block \"description\")) (and (argOrDefault @hasRightSideItemsBlock true) (has-block \"rightSideItems\")) (or (and (argOrDefault @hasPageTitleBlock true) (has-block \"pageTitle\")) @pageTitle) (and (argOrDefault @hasDefaultBlock true) (has-block \"default\")) as |responsive alignItems isResponsiveBreakpoint hasDescriptionBlock hasRightSideItemsBlock hasPageTitleBlock hasDefaultBlock|}}\n <div class={{classNames \"euiPageHeaderContent\" (if @restrictWidth \"euiPanel--restrictWidth-custom\" \"\")}} {{style (inlineStyles width=@restrictWidth)}} {{useIsWithinBreakpoints sizes=(array \"xs\" \"s\") isActive=(not (not responsive)) setIsWithinBreakpointsValue=isResponsiveBreakpoint.setState}} ...attributes>\n {{#if @breadcrumbs}}\n <EuiBreadcrumbs @breadcrumbs={{@breadcrumbs}} class={{@breadcrumbProps.className}} />\n <EuiSpacer @size=\"s\" />\n {{/if}}\n {{#if (or (eq alignItems \"top\") isResponsiveBreakpoint.value)}}\n <EuiFlexGroup class=\"euiPageHeaderContent__top\" @responsive={{not (not responsive)}} @alignItems={{if hasPageTitleBlock \"flexStart\" \"baseline\"}} @gutterSize=\"l\">\n {{#if (and isResponsiveBreakpoint.value (eq responsive \"reverse\"))}}\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup @wrap={{true}} @responsive={{false}} class={{classNames \"euiPageHeaderContent__rightSideItems\" @rightSideGroupProps.className}}>\n {{yield (component EuiFlexItem grow=false) to=\"rightSideItems\"}}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs @size=\"xl\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle class={{@pageTitleProps.className}} @size=\"l\" @tagName=\"h1\">\n {{#if @iconType}}\n <EuiIcon @size=\"xl\" @type={{@iconType}} @iconClasses={{classNames \"euiPageHeaderContent__titleIcon\" @iconProps.className}} />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{else}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs @size=\"xl\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle class={{@pageTitleProps.className}} @size=\"l\" @tagName=\"h1\">\n {{#if @iconType}}\n <EuiIcon @size=\"xl\" @type={{@iconType}} @iconClasses={{classNames \"euiPageHeaderContent__titleIcon\" @iconProps.className}} />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup @wrap={{true}} @responsive={{false}} class={{classNames \"euiPageHeaderContent__rightSideItems\" @rightSideGroupProps.className}}>\n {{yield (component EuiFlexItem grow=false) to=\"rightSideItems\"}}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n {{/if}}\n </EuiFlexGroup>\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n {{else}}\n <EuiFlexGroup class=\"euiPageHeaderContent__top\" @responsive={{not (not responsive)}} {{!--@glint-expect-error--}} @alignItems={{if (eq alignItems \"bottom\") \"flexEnd\" alignItems}} @gutterSize=\"l\">\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs @size=\"xl\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle class={{@pageTitleProps.className}} @size=\"l\" @tagName=\"h1\">\n {{#if @iconType}}\n <EuiIcon @size=\"xl\" @type={{@iconType}} @iconClasses={{classNames \"euiPageHeaderContent__titleIcon\" @iconProps.className}} />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup @wrap={{true}} @responsive={{false}} class={{classNames \"euiPageHeaderContent__rightSideItems\" @rightSideGroupProps.className}}>\n {{yield (component EuiFlexItem grow=false) to=\"rightSideItems\"}}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n </EuiFlexGroup>\n {{/if}}\n </div>\n {{/let}}\n ", {
|
|
49
|
+
setComponentTemplate(precompileTemplate("\n {{#let (argOrDefault @responsive true) (argOrDefault @alignItems \"top\") (useState false) (and (argOrDefault @hasDescriptionBlock true) (has-block \"description\")) (and (argOrDefault @hasRightSideItemsBlock true) (has-block \"rightSideItems\")) (or (and (argOrDefault @hasPageTitleBlock true) (has-block \"pageTitle\")) @pageTitle) (and (argOrDefault @hasDefaultBlock true) (has-block \"default\")) as |responsive alignItems isResponsiveBreakpoint hasDescriptionBlock hasRightSideItemsBlock hasPageTitleBlock hasDefaultBlock|}}\n <div class={{classNames \"euiPageHeaderContent\" (if @restrictWidth \"euiPanel--restrictWidth-custom\" \"\")}} {{style (inlineStyles width=@restrictWidth)}} {{useIsWithinBreakpoints sizes=(array \"xs\" \"s\") isActive=(not (not responsive)) setIsWithinBreakpointsValue=isResponsiveBreakpoint.setState}} ...attributes>\n {{#if @breadcrumbs}}\n <EuiBreadcrumbs @breadcrumbs={{@breadcrumbs}} class={{@breadcrumbProps.className}} />\n <EuiSpacer @size=\"s\" />\n {{/if}}\n {{#if (or (eq alignItems \"top\") isResponsiveBreakpoint.value)}}\n <EuiFlexGroup class=\"euiPageHeaderContent__top\" @responsive={{not (not responsive)}} @alignItems={{if hasPageTitleBlock \"flexStart\" \"baseline\"}} @gutterSize=\"l\">\n {{#if (and isResponsiveBreakpoint.value (eq responsive \"reverse\"))}}\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup @wrap={{true}} @responsive={{false}} class={{classNames \"euiPageHeaderContent__rightSideItems\" @rightSideGroupProps.className}}>\n {{yield (component EuiFlexItem grow=false) to=\"rightSideItems\"}}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs @size=\"xl\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle class={{@pageTitleProps.className}} @size=\"l\" @tagName=\"h1\">\n {{#if @iconType}}\n <EuiIcon @size=\"xl\" @type={{@iconType}} @iconClasses={{classNames \"euiPageHeaderContent__titleIcon\" @iconProps.className}} />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{else}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs @size=\"xl\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle class={{@pageTitleProps.className}} @size=\"l\" @tagName=\"h1\">\n {{#if @iconType}}\n <EuiIcon @size=\"xl\" @type={{@iconType}} @iconClasses={{classNames \"euiPageHeaderContent__titleIcon\" @iconProps.className}} />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup @wrap={{true}} @responsive={{false}} class={{classNames \"euiPageHeaderContent__rightSideItems\" @rightSideGroupProps.className}}>\n {{yield (component EuiFlexItem grow=false) to=\"rightSideItems\"}}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n {{/if}}\n </EuiFlexGroup>\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n {{else}}\n <EuiFlexGroup class=\"euiPageHeaderContent__top\" @responsive={{not (not responsive)}} {{!--@glint-expect-error--}} @alignItems={{if (eq alignItems \"bottom\") \"flexEnd\" alignItems}} @gutterSize=\"l\">\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs @size=\"xl\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle class={{@pageTitleProps.className}} @size=\"l\" @tagName=\"h1\">\n {{#if @iconType}}\n <EuiIcon @size=\"xl\" @type={{@iconType}} @iconClasses={{classNames \"euiPageHeaderContent__titleIcon\" @iconProps.className}} />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab @id={{tab.id}} @disabled={{tab.disabled}} @isSelected={{tab.isSelected}} @href={{tab.href}} {{on \"click\" (optional tab.onClick)}}>\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup @wrap={{true}} @responsive={{false}} @gutterSize=\"m\" class={{classNames \"euiPageHeaderContent__rightSideItems\" @rightSideGroupProps.className}}>\n {{yield (component EuiFlexItem grow=false) to=\"rightSideItems\"}}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n </EuiFlexGroup>\n {{/if}}\n </div>\n {{/let}}\n ", {
|
|
50
50
|
strictMode: true,
|
|
51
51
|
scope: () => ({
|
|
52
52
|
argOrDefault,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-page-header-content.js","sources":["../../src/components/eui-page-header-content.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { array } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault, {\n argOrDefaultDecorator\n} from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useState from '../helpers/use-state.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBreadcrumbs from './eui-breadcrumbs.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiTab from './eui-tab.gts';\nimport EuiTabs from './eui-tabs.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-page-content-body.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiBreadcrumbsSignature } from './eui-breadcrumbs';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { IEuiTab } from './eui-tab';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\n\ntype Tab = IEuiTab & {\n label?: string;\n onClick?: () => void;\n};\n\nexport type EuiPageHeaderContentProps = {\n template?: (typeof TEMPLATES)[number];\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */\n bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */\n fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */\n minHeight?: number;\n\n /**\n * Restrict the width of the page content body\n */\n restrictWidth?: boolean | string;\n\n /**\n * Adds a bottom border to the page header\n */\n bottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyBottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n /**\n * Adds a bottom border to the page content body\n */\n contentProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n\n alignItems?: 'top' | 'bottom' | 'center' | 'stretch';\n\n responsive?: boolean | 'reverse';\n\n hasDescriptionBlock?: boolean;\n\n hasRightSideItemsBlock?: boolean;\n\n hasPageTitleBlock?: boolean;\n\n hasDefaultBlock?: boolean;\n\n pageTitle?: string;\n\n breadcrumbs?: EuiBreadcrumbsSignature['Args']['breadcrumbs'];\n\n breadcrumbProps?: {\n className?: string;\n };\n\n rightSideGroupProps?: {\n className?: string;\n };\n\n pageTitleProps?: {\n className?: string;\n };\n\n iconType?: EuiIconSignature['Args']['type'];\n\n description?: string;\n\n iconProps?: {\n className?: string;\n };\n\n tabs?: Tab[];\n};\n\nexport interface EuiPageHeaderContentSignature {\n Element: HTMLDivElement;\n Args: EuiPageHeaderContentProps;\n Blocks: {\n default: [];\n pageTitle: [];\n description: [];\n rightSideItems: [WithBoundArgs<typeof EuiFlexItem, 'grow'>?];\n };\n}\n\nexport default class EuiPageHeaderContent extends Component<EuiPageHeaderContentSignature> {\n // Defaults\n @argOrDefaultDecorator(460) minHeight!: number;\n @argOrDefaultDecorator(false) fullHeight!: boolean;\n @argOrDefaultDecorator('default') template!: (typeof TEMPLATES)[number];\n\n get classes() {\n return 'euiPageTemplate '.concat(this.fullHeightClass);\n }\n\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight\n ? 'eui-fullHeight eui-yScroll'\n : '';\n }\n\n get canFullHeight() {\n return this.template === 'default' || this.template === 'empty';\n }\n\n <template>\n {{#let\n (argOrDefault @responsive true)\n (argOrDefault @alignItems \"top\")\n (useState false)\n (and (argOrDefault @hasDescriptionBlock true) (has-block \"description\"))\n (and\n (argOrDefault @hasRightSideItemsBlock true) (has-block \"rightSideItems\")\n )\n (or\n (and (argOrDefault @hasPageTitleBlock true) (has-block \"pageTitle\"))\n @pageTitle\n )\n (and (argOrDefault @hasDefaultBlock true) (has-block \"default\"))\n as |responsive alignItems isResponsiveBreakpoint hasDescriptionBlock hasRightSideItemsBlock hasPageTitleBlock hasDefaultBlock|\n }}\n <div\n class={{classNames\n \"euiPageHeaderContent\"\n (if @restrictWidth \"euiPanel--restrictWidth-custom\" \"\")\n }}\n {{style (inlineStyles width=@restrictWidth)}}\n {{useIsWithinBreakpoints\n sizes=(array \"xs\" \"s\")\n isActive=(not (not responsive))\n setIsWithinBreakpointsValue=isResponsiveBreakpoint.setState\n }}\n ...attributes\n >\n {{#if @breadcrumbs}}\n <EuiBreadcrumbs\n @breadcrumbs={{@breadcrumbs}}\n class={{@breadcrumbProps.className}}\n />\n <EuiSpacer @size=\"s\" />\n {{/if}}\n {{#if (or (eq alignItems \"top\") isResponsiveBreakpoint.value)}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n @alignItems={{if hasPageTitleBlock \"flexStart\" \"baseline\"}}\n @gutterSize=\"l\"\n >\n {{#if (and isResponsiveBreakpoint.value (eq responsive \"reverse\"))}}\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{else}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n {{/if}}\n </EuiFlexGroup>\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n {{else}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n {{!@glint-expect-error}}\n @alignItems={{if (eq alignItems \"bottom\") \"flexEnd\" alignItems}}\n @gutterSize=\"l\"\n >\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs\n @size=\"l\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n </EuiFlexGroup>\n {{/if}}\n </div>\n {{/let}}\n </template>\n}\n"],"names":["TEMPLATES","EuiPageHeaderContent","Component","g","prototype","argOrDefaultDecorator","i","void 0","classes","concat","fullHeightClass","fullHeight","canFullHeight","template","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","useState","and","or","classNames","style","inlineStyles","useIsWithinBreakpoints","array","not","EuiBreadcrumbs","EuiSpacer","eq","EuiFlexGroup","EuiFlexItem","EuiTabs","EuiTab","on","optional","EuiTitle","EuiIcon","EuiText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAMA,SAAY,GAAA,CACvB,SAAA,EACA,cAAA,EACA,iBAAA,EACA,OAAA;AA6Ga,MAAMC,6BAA6BC,SAAU,CAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,MAAAC,SAAA,EAAA,WAAA,EAAA,CAEzDC,qBAAsB,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA,EADvB;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,YAAA,EAAA,CAECC,qBAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,UAAA,EAAA,CACtBC,qBAAsB,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,MAAA;EAEvB,IAAIC,OAAUA,GAAA;AACZ,IAAA,OAAO,kBAAmB,CAAAC,MAAM,CAAC,IAAI,CAACC,eAAe,CAAA;AACvD;EAEA,IAAIA,eAAkBA,GAAA;IACpB,OAAO,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,aAAa,GACxC,4BACA,GAAA,EAAA;AACN;EAEA,IAAIA,aAAgBA,GAAA;IAClB,OAAO,IAAI,CAACC,QAAQ,KAAK,aAAa,IAAI,CAACA,QAAQ,KAAK,OAAA;AAC1D;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAyTA,6kRAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,UAAA;QAAAC,KAAA;QAAAC,YAAA;QAAAC,sBAAA;QAAAC,KAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,YAAA;QAAAC,WAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,EAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,OAAA;AAAAC,iBAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-page-header-content.js","sources":["../../src/components/eui-page-header-content.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { array } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault, {\n argOrDefaultDecorator\n} from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useState from '../helpers/use-state.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBreadcrumbs from './eui-breadcrumbs.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiTab from './eui-tab.gts';\nimport EuiTabs from './eui-tabs.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-page-content-body.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiBreadcrumbsSignature } from './eui-breadcrumbs';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { IEuiTab } from './eui-tab';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\n\ntype Tab = IEuiTab & {\n label?: string;\n onClick?: () => void;\n};\n\nexport type EuiPageHeaderContentProps = {\n template?: (typeof TEMPLATES)[number];\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */\n bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */\n fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */\n minHeight?: number;\n\n /**\n * Restrict the width of the page content body\n */\n restrictWidth?: boolean | string;\n\n /**\n * Adds a bottom border to the page header\n */\n bottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyBottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n /**\n * Adds a bottom border to the page content body\n */\n contentProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n\n alignItems?: 'top' | 'bottom' | 'center' | 'stretch';\n\n responsive?: boolean | 'reverse';\n\n hasDescriptionBlock?: boolean;\n\n hasRightSideItemsBlock?: boolean;\n\n hasPageTitleBlock?: boolean;\n\n hasDefaultBlock?: boolean;\n\n pageTitle?: string;\n\n breadcrumbs?: EuiBreadcrumbsSignature['Args']['breadcrumbs'];\n\n breadcrumbProps?: {\n className?: string;\n };\n\n rightSideGroupProps?: {\n className?: string;\n };\n\n pageTitleProps?: {\n className?: string;\n };\n\n iconType?: EuiIconSignature['Args']['type'];\n\n description?: string;\n\n iconProps?: {\n className?: string;\n };\n\n tabs?: Tab[];\n};\n\nexport interface EuiPageHeaderContentSignature {\n Element: HTMLDivElement;\n Args: EuiPageHeaderContentProps;\n Blocks: {\n default: [];\n pageTitle: [];\n description: [];\n rightSideItems: [WithBoundArgs<typeof EuiFlexItem, 'grow'>?];\n };\n}\n\nexport default class EuiPageHeaderContent extends Component<EuiPageHeaderContentSignature> {\n // Defaults\n @argOrDefaultDecorator(460) minHeight!: number;\n @argOrDefaultDecorator(false) fullHeight!: boolean;\n @argOrDefaultDecorator('default') template!: (typeof TEMPLATES)[number];\n\n get classes() {\n return 'euiPageTemplate '.concat(this.fullHeightClass);\n }\n\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight\n ? 'eui-fullHeight eui-yScroll'\n : '';\n }\n\n get canFullHeight() {\n return this.template === 'default' || this.template === 'empty';\n }\n\n <template>\n {{#let\n (argOrDefault @responsive true)\n (argOrDefault @alignItems \"top\")\n (useState false)\n (and (argOrDefault @hasDescriptionBlock true) (has-block \"description\"))\n (and\n (argOrDefault @hasRightSideItemsBlock true) (has-block \"rightSideItems\")\n )\n (or\n (and (argOrDefault @hasPageTitleBlock true) (has-block \"pageTitle\"))\n @pageTitle\n )\n (and (argOrDefault @hasDefaultBlock true) (has-block \"default\"))\n as |responsive alignItems isResponsiveBreakpoint hasDescriptionBlock hasRightSideItemsBlock hasPageTitleBlock hasDefaultBlock|\n }}\n <div\n class={{classNames\n \"euiPageHeaderContent\"\n (if @restrictWidth \"euiPanel--restrictWidth-custom\" \"\")\n }}\n {{style (inlineStyles width=@restrictWidth)}}\n {{useIsWithinBreakpoints\n sizes=(array \"xs\" \"s\")\n isActive=(not (not responsive))\n setIsWithinBreakpointsValue=isResponsiveBreakpoint.setState\n }}\n ...attributes\n >\n {{#if @breadcrumbs}}\n <EuiBreadcrumbs\n @breadcrumbs={{@breadcrumbs}}\n class={{@breadcrumbProps.className}}\n />\n <EuiSpacer @size=\"s\" />\n {{/if}}\n {{#if (or (eq alignItems \"top\") isResponsiveBreakpoint.value)}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n @alignItems={{if hasPageTitleBlock \"flexStart\" \"baseline\"}}\n @gutterSize=\"l\"\n >\n {{#if (and isResponsiveBreakpoint.value (eq responsive \"reverse\"))}}\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{else}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n {{/if}}\n </EuiFlexGroup>\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n {{else}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n {{!@glint-expect-error}}\n @alignItems={{if (eq alignItems \"bottom\") \"flexEnd\" alignItems}}\n @gutterSize=\"l\"\n >\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs\n @size=\"l\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n @gutterSize=\"m\"\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n </EuiFlexGroup>\n {{/if}}\n </div>\n {{/let}}\n </template>\n}\n"],"names":["TEMPLATES","EuiPageHeaderContent","Component","g","prototype","argOrDefaultDecorator","i","void 0","classes","concat","fullHeightClass","fullHeight","canFullHeight","template","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","useState","and","or","classNames","style","inlineStyles","useIsWithinBreakpoints","array","not","EuiBreadcrumbs","EuiSpacer","eq","EuiFlexGroup","EuiFlexItem","EuiTabs","EuiTab","on","optional","EuiTitle","EuiIcon","EuiText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAMA,SAAY,GAAA,CACvB,SAAA,EACA,cAAA,EACA,iBAAA,EACA,OAAA;AA6Ga,MAAMC,6BAA6BC,SAAU,CAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,MAAAC,SAAA,EAAA,WAAA,EAAA,CAEzDC,qBAAsB,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA,EADvB;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,YAAA,EAAA,CAECC,qBAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,UAAA,EAAA,CACtBC,qBAAsB,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,MAAA;EAEvB,IAAIC,OAAUA,GAAA;AACZ,IAAA,OAAO,kBAAmB,CAAAC,MAAM,CAAC,IAAI,CAACC,eAAe,CAAA;AACvD;EAEA,IAAIA,eAAkBA,GAAA;IACpB,OAAO,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,aAAa,GACxC,4BACA,GAAA,EAAA;AACN;EAEA,IAAIA,aAAgBA,GAAA;IAClB,OAAO,IAAI,CAACC,QAAQ,KAAK,aAAa,IAAI,CAACA,QAAQ,KAAK,OAAA;AAC1D;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA0TA,+lRAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,UAAA;QAAAC,KAAA;QAAAC,YAAA;QAAAC,sBAAA;QAAAC,KAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,YAAA;QAAAC,WAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,EAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,OAAA;AAAAC,iBAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-stat.js","sources":["../../src/components/eui-stat.gts"],"sourcesContent":["import { helper } from '@ember/component/helper';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport { colorMapping } from '../utils/css-mappings/eui-stat.ts';\nimport EuiStatDescription from './eui-stat/description.gts';\nimport EuiStatTitle from './eui-stat/title.gts';\n\nimport type {textAlignMapping } from '../utils/css-mappings/eui-stat.ts';\nimport type { EuiStatDescriptionSignature } from './eui-stat/description';\nimport type { EuiStatTitleSignature } from './eui-stat/title';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiStatSignature {\n Element: HTMLDivElement;\n Args: {\n textAlign?: keyof typeof textAlignMapping;\n title
|
|
1
|
+
{"version":3,"file":"eui-stat.js","sources":["../../src/components/eui-stat.gts"],"sourcesContent":["import { helper } from '@ember/component/helper';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport { colorMapping } from '../utils/css-mappings/eui-stat.ts';\nimport EuiStatDescription from './eui-stat/description.gts';\nimport EuiStatTitle from './eui-stat/title.gts';\n\nimport type {textAlignMapping } from '../utils/css-mappings/eui-stat.ts';\nimport type { EuiStatDescriptionSignature } from './eui-stat/description';\nimport type { EuiStatTitleSignature } from './eui-stat/title';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiStatSignature {\n Element: HTMLDivElement;\n Args: {\n textAlign?: keyof typeof textAlignMapping;\n title?: string;\n description?: string;\n titleColor?: keyof typeof colorMapping;\n titleSize?: EuiStatTitleSignature['Args']['titleSize'];\n isLoading?: boolean;\n reverse?: boolean;\n screenReader?: boolean;\n titleElement?: string;\n descriptionElement?: EuiStatDescriptionSignature['Args']['descriptionElement'];\n };\n Blocks: {\n title: [];\n description: [];\n default: [];\n };\n}\n\nconst isColorClass = helper(([input]: [string | undefined]) => {\n if (!input) return false;\n\n return colorMapping.hasOwnProperty(input);\n});\n\nconst useScreenReader = helper(\n ([title, description]: [string | undefined, string | undefined]) => {\n return typeof title === 'string' && typeof description === 'string';\n }\n);\n\nconst EuiStat: TemplateOnlyComponent<EuiStatSignature> = <template>\n {{#let\n (classNames\n textAlign=(argOrDefault @textAlign \"left\") componentName=\"EuiStat\"\n )\n (classNames\n \"euiStat__title\"\n (if @isLoading \"euiStat__title-isLoading\")\n color=(argOrDefault @titleColor \"default\")\n addBase=false\n componentName=\"EuiStat\"\n )\n (argOrDefault @reverse false)\n (argOrDefault @titleSize \"l\")\n as |classes titleClasses reverse titleSize|\n }}\n <div class={{classes}} ...attributes>\n {{#if reverse}}\n <EuiStatTitle\n class={{titleClasses}}\n @titleElement={{@titleElement}}\n @titleSize={{titleSize}}\n @isColorClass={{isColorClass @titleColor}}\n >\n {{#if @isLoading}}\n --\n {{else}}\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n {{/if}}\n </EuiStatTitle>\n <EuiStatDescription @descriptionElement={{@descriptionElement}}>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else}}\n {{@description}}\n {{/if}}\n </EuiStatDescription>\n {{else}}\n <EuiStatDescription @descriptionElement={{@descriptionElement}}>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else}}\n {{@description}}\n {{/if}}\n </EuiStatDescription>\n <EuiStatTitle\n class={{titleClasses}}\n @titleElement={{@titleElement}}\n @titleSize={{titleSize}}\n @isColorClass={{isColorClass @titleColor}}\n >\n {{#if @isLoading}}\n --\n {{else}}\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n {{/if}}\n </EuiStatTitle>\n {{/if}}\n {{#if (useScreenReader @title @description)}}\n <p {{screenReaderOnly}}>\n {{#if reverse}}\n {{@title}}\n {{@description}}\n {{else}}\n {{@description}}\n {{@title}}\n {{/if}}\n </p>\n {{/if}}\n {{yield}}\n </div>\n {{/let}}\n</template>;\n\nexport default EuiStat;\n"],"names":["isColorClass","helper","input","colorMapping","hasOwnProperty","useScreenReader","title","description","EuiStat","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","EuiStatTitle","EuiStatDescription","screenReaderOnly","templateOnly"],"mappings":";;;;;;;;;;;AAmCA,MAAMA,YAAA,GAAeC,OAAO,CAAC,CAACC,MAA4B,KAAA;AACxD,EAAA,IAAI,CAACA,OAAO,OAAO,KAAA;AAEnB,EAAA,OAAOC,YAAA,CAAaC,cAAc,CAACF,KAAA,CAAA;AACrC,CAAA,CAAA;AAEA,MAAMG,eAAkB,GAAAJ,MAAA,CACtB,CAAC,CAACK,KAAO,EAAAC,WAAA,CAAsD,KAAA;EAC7D,OAAO,OAAOD,KAAA,KAAU,QAAY,IAAA,OAAOC,WAAgB,KAAA,QAAA;AAC7D,CAAA,CAAA;AAGF,MAAMC,OAAmD,GAAAC,oBAAA,CAAAC,kBAAA,CAgFzD,wlEAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,YAAA;IAAAC,YAAA;IAAAf,YAAA;IAAAgB,kBAAA;IAAAX,eAAA;AAAAY,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -48,7 +48,7 @@ class ResizeObserver extends Modifier {
|
|
|
48
48
|
width,
|
|
49
49
|
height
|
|
50
50
|
}) {
|
|
51
|
-
let [dimension] = this.positional;
|
|
51
|
+
let [dimension] = this.positional || [];
|
|
52
52
|
const doesWidthMatter = dimension !== 'height';
|
|
53
53
|
const doesHeightMatter = dimension !== 'width';
|
|
54
54
|
if (doesWidthMatter && width !== this.width || doesHeightMatter && height !== this.height) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resize-observer.js","sources":["../../src/modifiers/resize-observer.ts"],"sourcesContent":["import { registerDestructor } from '@ember/destroyable';\nimport { action } from '@ember/object';\n\nimport Modifier from 'ember-modifier';\n\n// IE11 and Safari don't support the `ResizeObserver` API at the time of writing\nconst hasResizeObserver =\n typeof window !== 'undefined' &&\n typeof (window as any).ResizeObserver !== 'undefined';\n\nexport interface Observer {\n disconnect: () => void;\n observe: (element: Element, options?: { [key: string]: any }) => void;\n}\n\nconst mutationObserverOptions = {\n // [MutationObserverInit](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserverInit)\n attributes: true, // Account for style changes from `className` or `style`\n characterData: true, // Account for text content size differences\n childList: true, // Account for adding/removing child nodes\n subtree: true // Account for deep child nodes\n};\n\ninterface ResizeObserverSignature {\n Element: Element;\n Args: {\n Positional: ['width' | 'height'] | [];\n Named: {\n onResize: (dimensions: { height: number; width: number }) => void;\n };\n };\n}\n\nconst makeCompatibleObserver = (node: Element, callback: () => void) => {\n const observer = new MutationObserver(callback);\n //eslint-disable-next-line\n observer.observe(node, mutationObserverOptions);\n\n window.addEventListener('resize', callback);\n\n const _disconnect = observer.disconnect.bind(observer);\n\n observer.disconnect = () => {\n _disconnect();\n window.removeEventListener('resize', callback);\n };\n\n return observer;\n};\n\nconst makeResizeObserver = (node: Element, callback: () => void) => {\n let observer: Observer | undefined;\n\n if (hasResizeObserver) {\n observer = new (window as any).ResizeObserver(callback);\n observer!.observe(node);\n } else {\n observer = makeCompatibleObserver(node, callback);\n requestAnimationFrame(callback); // Mimic ResizeObserver behavior of triggering a resize event on init\n }\n\n return observer;\n};\n\nexport default class ResizeObserver extends Modifier<ResizeObserverSignature> {\n height: number = 0;\n width: number = 0;\n observer: Observer | null = null;\n\n element: Element | null = null;\n named: ResizeObserverSignature['Args']['Named'] | null = null;\n positional: ResizeObserverSignature['Args']['Positional'] | null = null;\n\n @action\n setSize({ width, height }: { width: number; height: number }) {\n let [dimension] = this.positional
|
|
1
|
+
{"version":3,"file":"resize-observer.js","sources":["../../src/modifiers/resize-observer.ts"],"sourcesContent":["import { registerDestructor } from '@ember/destroyable';\nimport { action } from '@ember/object';\n\nimport Modifier from 'ember-modifier';\n\n// IE11 and Safari don't support the `ResizeObserver` API at the time of writing\nconst hasResizeObserver =\n typeof window !== 'undefined' &&\n typeof (window as any).ResizeObserver !== 'undefined';\n\nexport interface Observer {\n disconnect: () => void;\n observe: (element: Element, options?: { [key: string]: any }) => void;\n}\n\nconst mutationObserverOptions = {\n // [MutationObserverInit](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserverInit)\n attributes: true, // Account for style changes from `className` or `style`\n characterData: true, // Account for text content size differences\n childList: true, // Account for adding/removing child nodes\n subtree: true // Account for deep child nodes\n};\n\ninterface ResizeObserverSignature {\n Element: Element;\n Args: {\n Positional: ['width' | 'height'] | [];\n Named: {\n onResize: (dimensions: { height: number; width: number }) => void;\n };\n };\n}\n\nconst makeCompatibleObserver = (node: Element, callback: () => void) => {\n const observer = new MutationObserver(callback);\n //eslint-disable-next-line\n observer.observe(node, mutationObserverOptions);\n\n window.addEventListener('resize', callback);\n\n const _disconnect = observer.disconnect.bind(observer);\n\n observer.disconnect = () => {\n _disconnect();\n window.removeEventListener('resize', callback);\n };\n\n return observer;\n};\n\nconst makeResizeObserver = (node: Element, callback: () => void) => {\n let observer: Observer | undefined;\n\n if (hasResizeObserver) {\n observer = new (window as any).ResizeObserver(callback);\n observer!.observe(node);\n } else {\n observer = makeCompatibleObserver(node, callback);\n requestAnimationFrame(callback); // Mimic ResizeObserver behavior of triggering a resize event on init\n }\n\n return observer;\n};\n\nexport default class ResizeObserver extends Modifier<ResizeObserverSignature> {\n height: number = 0;\n width: number = 0;\n observer: Observer | null = null;\n\n element: Element | null = null;\n named: ResizeObserverSignature['Args']['Named'] | null = null;\n positional: ResizeObserverSignature['Args']['Positional'] | null = null;\n\n @action\n setSize({ width, height }: { width: number; height: number }) {\n let [dimension] = this.positional || [];\n\n const doesWidthMatter = dimension !== 'height';\n const doesHeightMatter = dimension !== 'width';\n\n if (\n (doesWidthMatter && width !== this.width) ||\n (doesHeightMatter && height !== this.height)\n ) {\n this.width = width;\n this.height = height;\n this.named?.onResize({ width, height });\n }\n }\n\n modify(\n element: Element,\n positional: ResizeObserverSignature['Args']['Positional'] = [],\n named: ResizeObserverSignature['Args']['Named']\n ) {\n this.element = element;\n this.named = named;\n this.positional = positional;\n this._setup();\n registerDestructor(this, () => this._teardown());\n }\n\n _setup() {\n let { setSize, element } = this;\n\n if (element != null) {\n // ResizeObserver's first call to the observation callback is scheduled in the future\n // so find the element's initial dimensions now\n const boundingRect = element.getBoundingClientRect();\n\n setSize({\n width: boundingRect.width,\n height: boundingRect.height\n });\n\n this.observer = makeResizeObserver(element, () => {\n if (!element) {\n return;\n }\n\n const boundingRect = element.getBoundingClientRect();\n\n setSize({\n width: boundingRect.width,\n height: boundingRect.height\n });\n })!;\n } else {\n setSize({\n width: 0,\n height: 0\n });\n }\n }\n\n _teardown() {\n this.observer?.disconnect();\n this.observer = null;\n this.element = null;\n this.named = null;\n this.positional = null;\n }\n}\n"],"names":["hasResizeObserver","window","ResizeObserver","mutationObserverOptions","attributes","characterData","childList","subtree","makeCompatibleObserver","node","callback","observer","MutationObserver","observe","addEventListener","_disconnect","disconnect","bind","removeEventListener","makeResizeObserver","requestAnimationFrame","Modifier","height","width","element","named","positional","setSize","dimension","doesWidthMatter","doesHeightMatter","onResize","n","prototype","action","modify","_setup","registerDestructor","_teardown","boundingRect","getBoundingClientRect"],"mappings":"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"}
|