@ember-eui/core 13.0.2 → 13.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import type { colorMapping, sizeMapping } from '../utils/css-mappings/eui-call-out.ts';
2
2
  import type { EuiIconSignature } from './eui-icon';
3
+ import type { EuiTextSignature } from './eui-text';
3
4
  import type { TextBlockSignature } from './text-block';
4
5
  import type { TemplateOnlyComponent } from '@ember/component/template-only';
5
6
  export interface EuiCallOutSignature {
@@ -10,6 +11,8 @@ export interface EuiCallOutSignature {
10
11
  iconType?: EuiIconSignature['Args']['type'];
11
12
  size?: keyof typeof sizeMapping;
12
13
  color?: keyof typeof colorMapping;
14
+ textColor?: EuiTextSignature['Args']['color'];
15
+ iconSize?: EuiIconSignature['Args']['size'];
13
16
  };
14
17
  Blocks: {
15
18
  title?: [];
@@ -1 +1 @@
1
- {"version":3,"file":"eui-call-out.d.ts","sourceRoot":"","sources":["../../src/components/eui-call-out.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAC,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACtF,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;KACnC,CAAC;IACF,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,EAAE,CAAC;KACX,CAAC;CACH;AAED,QAAA,MAAM,UAAU,EAAE,qBAAqB,CAAC,mBAAmB,CAiEzD,CAAC;AAEH,eAAe,UAAU,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;KACX,CAAC;CACH;AAED,QAAA,MAAM,UAAU,EAAE,qBAAqB,CAAC,mBAAmB,CAiEzD,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -1,5 +1,5 @@
1
- import Component from '@glimmer/component';
2
1
  import 'ember-basic-dropdown/styles';
2
+ import Component from '@glimmer/component';
3
3
  import type EuiI18n from '../services/eui-i18n';
4
4
  interface PromiseProxy<T> extends Promise<T> {
5
5
  content: any;
@@ -59,6 +59,8 @@ export interface EuiComboBoxSignature {
59
59
  preventScroll?: boolean;
60
60
  noMatchesMessage?: string;
61
61
  noMatchesMessageComponent?: any;
62
+ optionsClass?: string;
63
+ rowHeight?: number;
62
64
  };
63
65
  Blocks: {
64
66
  default: [any, number, Select];
@@ -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-field-number.d.ts","sourceRoot":"","sources":["../../src/components/eui-field-number.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7D;;;OAGG;IACH,MAAM,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE3D;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,KAAK,CAAC,EAAE,6BAA6B,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;KAClB,CAAC;CACH;AAED,QAAA,MAAM,cAAc,EAAE,qBAAqB,CAAC,uBAAuB,CAmEjE,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"eui-field-number.d.ts","sourceRoot":"","sources":["../../src/components/eui-field-number.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7D;;;OAGG;IACH,MAAM,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE3D;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,KAAK,CAAC,EAAE,6BAA6B,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;KAClB,CAAC;CACH;AAED,QAAA,MAAM,cAAc,EAAE,qBAAqB,CAAC,uBAAuB,CAqEjE,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"eui-field-text.d.ts","sourceRoot":"","sources":["../../src/components/eui-field-text.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,6BAA6B,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QACrD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;QACtD,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,EAAE,CAAC,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;KACxE,CAAC;CACH;AAED,QAAA,MAAM,YAAY,EAAE,qBAAqB,CAAC,qBAAqB,CA+D7D,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"eui-field-text.d.ts","sourceRoot":"","sources":["../../src/components/eui-field-text.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,6BAA6B,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QACrD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;QACtD,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,EAAE,CAAC,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;KACxE,CAAC;CACH;AAED,QAAA,MAAM,YAAY,EAAE,qBAAqB,CAAC,qBAAqB,CAgE7D,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -29,7 +29,7 @@ export type EuiPopoverArgs = {
29
29
  /**
30
30
  * Triggering element for which to align the popover to
31
31
  */
32
- button?: Component;
32
+ button?: HTMLElement;
33
33
  buttonRef?: (e: HTMLDivElement) => unknown;
34
34
  /**
35
35
  * Callback to handle hiding of the popover
@@ -187,9 +187,10 @@ export default class EuiPopoverComponent extends Component<EuiPopoverSignature>
187
187
  private closingTransitionAnimationFrame;
188
188
  private updateFocusAnimationFrame;
189
189
  private hasSetInitialFocus;
190
- button: HTMLElement | null;
190
+ _button: HTMLElement | null;
191
191
  panel: HTMLElement | null;
192
192
  constructor(owner: Owner, args: EuiPopoverArgs);
193
+ get button(): HTMLElement | null;
193
194
  get insert(): {
194
195
  sibling: HTMLElement;
195
196
  position: string;
@@ -1 +1 @@
1
- {"version":3,"file":"eui-popover.d.ts","sourceRoot":"","sources":["../../src/components/eui-popover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-popover.d.ts","sourceRoot":"","sources":["../../src/components/eui-popover.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface EuiSwitchSignature {
12
12
  */
13
13
  label?: string;
14
14
  checked: boolean;
15
- onChange: (event: MouseEvent) => void;
15
+ onChange?: (event: MouseEvent) => void;
16
16
  disabled?: boolean;
17
17
  compressed?: boolean;
18
18
  type?: 'submit' | 'reset' | 'button';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-switch.d.ts","sourceRoot":"","sources":["../../src/components/eui-switch.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAW3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;QAErC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;QACZ,KAAK,EAAE,EAAE,CAAC;KACX,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAElE,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;CA2F7B"}
1
+ {"version":3,"file":"eui-switch.d.ts","sourceRoot":"","sources":["../../src/components/eui-switch.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAW3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;QAErC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;QACZ,KAAK,EAAE,EAAE,CAAC;KACX,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAElE,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;CA2F7B"}
@@ -12,6 +12,7 @@ export interface EuiTextAreaSignature {
12
12
  inputRef?: (element: HTMLTextAreaElement | null) => void;
13
13
  rows?: number;
14
14
  resize?: keyof typeof resizeMapping;
15
+ readOnly?: boolean;
15
16
  };
16
17
  Blocks: {
17
18
  default: [];
@@ -1 +1 @@
1
- {"version":3,"file":"eui-text-area.d.ts","sourceRoot":"","sources":["../../src/components/eui-text-area.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,IAAI,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;QACzD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,OAAO,aAAa,CAAC;KACrC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAED,QAAA,MAAM,WAAW,EAAE,qBAAqB,CAAC,oBAAoB,CAuB3D,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"eui-text-area.d.ts","sourceRoot":"","sources":["../../src/components/eui-text-area.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,IAAI,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;QACzD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,OAAO,aAAa,CAAC;QACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAED,QAAA,MAAM,WAAW,EAAE,qBAAqB,CAAC,oBAAoB,CAwB3D,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -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=\"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\"}}>\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 (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", {
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 { colorMapping,sizeMapping } from '../utils/css-mappings/eui-call-out.ts';\nimport type { EuiIconSignature } from './eui-icon';\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 };\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=\"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\"}}>\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":";;;;;;;;;;AA4BA,MAAMA,UAAyD,GAAAC,oBAAA,CAAAC,kBAAA,CA6C/D,unCAAA,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;;;;"}
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":";;;;;;;;;;AAkCA,MAAMA,UAAyD,GAAAC,oBAAA,CAAAC,kBAAA,CA6C/D,wqCAAA,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;;;;"}
@@ -234,7 +234,7 @@ class EuiCodeBlockComponent extends Component {
234
234
  this.wrapperRef = undefined;
235
235
  }
236
236
  static {
237
- setComponentTemplate(precompileTemplate("\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{#if this.codeTarget}}\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let (classNames \"euiCodeBlock\" (if (or this.showCopyButton this.showFullScreenButton) \"euiCodeBlock--hasControl\") (if (and this.showCopyButton this.showFullScreenButton) \"euiCodeBlock--hasBothControls\") (if this.lineNumbersConfig.show \"euiCodeBlock--hasLineNumbers\")) (classNames \"euiCodeBlock__pre\" (if (or (eq this.whiteSpace \"pre\") this.isVirtualized) \"euiCodeBlock__pre--whiteSpacePre\") (if (and (eq this.whiteSpace \"pre-wrap\") (not this.isVirtualized)) \"euiCodeBlock__pre--whiteSpacePreWrap\") (if this.isVirtualized \"euiCodeBlock__pre--isVirtualized\")) as |wrapperClasses preClasses|}}\n <div class={{classNames wrapperClasses (if this.transparentBackground \"euiCodeBlock--transparentBackground\") componentName=\"EuiCodeBlock\" fontSize=this.fontSize paddingSize=this.paddingSize}} {{style this.optionalStyles}} {{highlightTargetModifier element=this.codeTarget language=this.language lineNumbersConfig=this.lineNumbersConfig onChange=this.updateCode}}>\n {{#if this.isVirtualized}}\n {{!--virtualized--}}\n <VirtualizedCodeBlock class={{preClasses}} tabindex=\"0\" {{onKey \"Escape\" this.closeFullScreen}} @language={{this.language}} @data={{this.data.data}} @rowHeight={{this.rowHeight}} />\n {{else}}\n {{!--template-lint-disable--}}\n <pre class={{preClasses}} {{style this.optionalStyles}} tabindex={{this.tabIndex}} {{didInsert (set this \"wrapperRef\")}} {{resizeObserver onResize=this.doesOverflow}} {{mutationObserver onMutation=this.doesOverflow observerOptions=(hash subtree=true childList=true)}} {{didInsert setInnerTextRef}}><code class=\"euiCodeBlock__code\" data-code-language={{this.language}} {{didInsert (set this \"code\")}} ...attributes></code></pre>\n\n {{/if}}\n\n <Controls @isFullScreen={{this.isFullScreen}} @showFullScreenButton={{this.showFullScreenButton}} @toggleFullScreen={{this.toggleFullScreen}} @showCopyButton={{this.showCopyButton}} @textToCopy={{textToCopyHelper isVirtualized=this.isVirtualized innerText=(cleanTextHelper innerText) element=this.data.element}} />\n\n {{#if this.isFullScreen}}\n <FullScreenDisplay class={{wrapperClasses}}>\n {{#if this.isVirtualized}}\n <VirtualizedCodeBlock class={{preClasses}} tabindex=\"0\" {{onKey \"Escape\" this.closeFullScreen}} @language={{this.language}} @data={{this.data.data}} @rowHeight={{fontSizeToRowHeightMap.l}} />\n {{else}}\n <pre class={{preClasses}} tabindex=\"0\" {{onKey \"Escape\" this.closeFullScreen}}><code class=\"euiCodeBlock__code\" data-code-language={{this.language}} {{didInsert (set this \"codeFullScreen\")}}></code></pre>\n {{/if}}\n <Controls @isFullScreen={{this.isFullScreen}} @showFullScreenButton={{this.showFullScreenButton}} @showCopyButton={{this.showCopyButton}} @toggleFullScreen={{this.toggleFullScreen}} @textToCopy={{textToCopyHelper isVirtualized=this.isVirtualized innerText=(cleanTextHelper innerText) element=this.data.element}} />\n </FullScreenDisplay>\n {{/if}}\n </div>\n {{/let}}\n </EuiInnerText>\n ", {
237
+ setComponentTemplate(precompileTemplate("\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{!-- DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY --}}\n {{#if this.codeTarget}}\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let (classNames \"euiCodeBlock\" (if (or this.showCopyButton this.showFullScreenButton) \"euiCodeBlock--hasControl\") (if (and this.showCopyButton this.showFullScreenButton) \"euiCodeBlock--hasBothControls\") (if this.lineNumbersConfig.show \"euiCodeBlock--hasLineNumbers\") @className) (classNames \"euiCodeBlock__pre\" (if (or (eq this.whiteSpace \"pre\") this.isVirtualized) \"euiCodeBlock__pre--whiteSpacePre\") (if (and (eq this.whiteSpace \"pre-wrap\") (not this.isVirtualized)) \"euiCodeBlock__pre--whiteSpacePreWrap\") (if this.isVirtualized \"euiCodeBlock__pre--isVirtualized\")) as |wrapperClasses preClasses|}}\n <div class={{classNames wrapperClasses (if this.transparentBackground \"euiCodeBlock--transparentBackground\") componentName=\"EuiCodeBlock\" fontSize=this.fontSize paddingSize=this.paddingSize}} {{style this.optionalStyles}} {{highlightTargetModifier element=this.codeTarget language=this.language lineNumbersConfig=this.lineNumbersConfig onChange=this.updateCode}}>\n {{#if this.isVirtualized}}\n {{!--virtualized--}}\n <VirtualizedCodeBlock class={{preClasses}} tabindex=\"0\" {{onKey \"Escape\" this.closeFullScreen}} @language={{this.language}} @data={{this.data.data}} @rowHeight={{this.rowHeight}} />\n {{else}}\n {{!--template-lint-disable--}}\n <pre class={{preClasses}} {{style this.optionalStyles}} tabindex={{this.tabIndex}} {{didInsert (set this \"wrapperRef\")}} {{resizeObserver onResize=this.doesOverflow}} {{mutationObserver onMutation=this.doesOverflow observerOptions=(hash subtree=true childList=true)}} {{didInsert setInnerTextRef}}><code class=\"euiCodeBlock__code\" data-code-language={{this.language}} {{didInsert (set this \"code\")}} ...attributes></code></pre>\n\n {{/if}}\n\n <Controls @isFullScreen={{this.isFullScreen}} @showFullScreenButton={{this.showFullScreenButton}} @toggleFullScreen={{this.toggleFullScreen}} @showCopyButton={{this.showCopyButton}} @textToCopy={{textToCopyHelper isVirtualized=this.isVirtualized innerText=(cleanTextHelper innerText) element=this.data.element}} />\n\n {{#if this.isFullScreen}}\n <FullScreenDisplay class={{wrapperClasses}}>\n {{#if this.isVirtualized}}\n <VirtualizedCodeBlock class={{preClasses}} tabindex=\"0\" {{onKey \"Escape\" this.closeFullScreen}} @language={{this.language}} @data={{this.data.data}} @rowHeight={{fontSizeToRowHeightMap.l}} />\n {{else}}\n <pre class={{preClasses}} tabindex=\"0\" {{onKey \"Escape\" this.closeFullScreen}}><code class=\"euiCodeBlock__code\" data-code-language={{this.language}} {{didInsert (set this \"codeFullScreen\")}}></code></pre>\n {{/if}}\n <Controls @isFullScreen={{this.isFullScreen}} @showFullScreenButton={{this.showFullScreenButton}} @showCopyButton={{this.showCopyButton}} @toggleFullScreen={{this.toggleFullScreen}} @textToCopy={{textToCopyHelper isVirtualized=this.isVirtualized innerText=(cleanTextHelper innerText) element=this.data.element}} />\n </FullScreenDisplay>\n {{/if}}\n </div>\n {{/let}}\n </EuiInnerText>\n ", {
238
238
  strictMode: true,
239
239
  scope: () => ({
240
240
  EuiInnerText: EuiImage,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-code-block.js","sources":["../../src/components/eui-code-block.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { hash } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not,or } from 'ember-truth-helpers';\n\nimport Controls from '../components/eui-code-block/controls.gts';\nimport FullScreenDisplay from '../components/eui-code-block/full-screen-display.gts';\nimport VirtualizedCodeBlock from '../components/eui-code-block/virtualized.gts';\nimport EuiInnerText from '../components/eui-inner-text.gts';\nimport classNames from '../helpers/class-names.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport {\n checkSupportedLanguage,\n getHtmlContent,\n highlightByLine\n} from '../utils/code/utils.ts';\n\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\n\ninterface LineNumbersConfig {\n start?: number;\n highlight?: string;\n show?: boolean;\n}\n\nexport type PaddingSize = 'none' | 's' | 'm' | 'l';\nexport type FontSize = 's' | 'm' | 'l';\n\nconst fontSizeToRowHeightMap = {\n s: 18,\n m: 21,\n l: 24\n};\n\nexport type EuiCodeBlockArgs = EuiCodeSharedProps & {\n paddingSize?: PaddingSize;\n fontSize?: FontSize;\n\n /**\n * Specify how `white-space` inside the element is handled.\n * `pre` respects line breaks/white space but doesn't force them to wrap the line\n * `pre-wrap` respects line breaks/white space but does force them to wrap the line when necessary.\n */\n whiteSpace?: 'pre' | 'pre-wrap';\n\n /**\n * Displays an icon button to copy the code snippet to the clipboard.\n */\n isCopyable?: boolean;\n\n /**\n * Displays line numbers.\n * Optionally accepts a configuration object for setting the starting number and visual highlighting ranges:\n * `{ start: 100, highlight: '1, 5-10, 20-30, 40' }`\n */\n lineNumbers?: boolean | LineNumbersConfig;\n\n /**\n * Sets the maximum container height.\n * Accepts a pixel value (`300`) or a percentage (`'100%'`)\n * Ensure the container has calcuable height when using a percentage\n */\n overflowHeight?: number | string;\n\n /**\n * Renders code block lines virtually.\n * Useful for improving load times of large code blocks.\n *\n * When using this configuration, `overflowHeight` is required and\n * `whiteSpace` can only be `pre`.\n */\n isVirtualized?: boolean;\n};\n\nexport interface EuiCodeBlockSignature {\n Element: HTMLElement;\n Args: EuiCodeBlockArgs;\n Blocks: {\n default: [];\n };\n}\n\ninterface LineNumbersFinal {\n start: number;\n show: boolean;\n highlight?: string;\n}\n\nconst highlightTargetModifier = modifier(\n (\n _e,\n _pos: unknown[],\n {\n element: targetEle,\n language = 'text',\n lineNumbersConfig = { start: 1, show: false },\n onChange\n }: {\n element: Element | undefined;\n language: EuiCodeSharedProps['language'];\n lineNumbersConfig: LineNumbersFinal;\n onChange: ({\n data,\n element\n }: {\n data: RefractorNode[];\n element: HTMLElement;\n }) => void;\n }\n ) => {\n let observer: undefined | MutationObserver;\n\n const getHighlighedHtml = () => {\n const html = (targetEle?.textContent ? targetEle.textContent : '').trim();\n\n let data: RefractorNode[];\n\n if (typeof html !== 'string') {\n data = [];\n } else {\n data = highlightByLine(html, language, lineNumbersConfig);\n }\n\n return {\n data,\n element: getHtmlContent(data).element\n };\n };\n\n const setupObserver = () => {\n const newObserver = new MutationObserver((mutationsList) => {\n if (mutationsList.length) {\n onChange(getHighlighedHtml());\n }\n });\n\n if (targetEle) {\n onChange(getHighlighedHtml());\n newObserver.observe(targetEle, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n\n return newObserver;\n };\n\n if (targetEle) {\n observer = setupObserver();\n }\n\n return () => {\n observer?.disconnect();\n };\n }\n);\n\nconst cleanTextHelper = helper(function ([text]: [string]) {\n return text?.replace(/[\\r\\n?]{2}|\\n\\n/g, '\\n') || '';\n});\n\nconst textToCopyHelper = helper(function (\n _pos,\n {\n isVirtualized,\n element,\n innerText\n }: {\n isVirtualized: boolean;\n element: HTMLElement | undefined;\n innerText: string;\n }\n) {\n if (element) {\n return isVirtualized\n ? element.textContent\n ? element.textContent\n : ''\n : innerText;\n }\n\n return '';\n});\n\nexport default class EuiCodeBlockComponent extends Component<EuiCodeBlockSignature> {\n //fake element where yield writes to, so we can observe and clone a highlighted version to code and codeFullSceen\n @tracked codeTarget?: HTMLElement;\n //<code> Element for non fullscreen\n @tracked code?: HTMLElement;\n //<code> Element for fullscreen modal\n @tracked codeFullScreen?: HTMLElement;\n @tracked wrapperRef?: HTMLElement;\n @tracked tabIndex = 1;\n @tracked isFullScreen = false;\n @tracked data?: { data: RefractorNode[]; element: HTMLElement };\n\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n\n get transparentBackground() {\n return this.args.transparentBackground ?? false;\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get fontSize() {\n return this.args.fontSize ?? 's';\n }\n\n get isCopyable() {\n return this.args.isCopyable ?? false;\n }\n\n get whiteSpace() {\n return this.args.whiteSpace ?? 'pre-wrap';\n }\n\n get isVirtualized() {\n return !!(this.args.isVirtualized && Array.isArray(this.data?.data));\n }\n\n get lineNumbers() {\n return this.args.lineNumbers ?? false;\n }\n\n get lineNumbersConfig() {\n const { lineNumbers } = this;\n const config = typeof lineNumbers === 'object' ? lineNumbers : {};\n\n return lineNumbers\n ? { start: 1, show: true, ...config }\n : { start: 1, show: false };\n }\n\n get optionalStyles() {\n const overflowHeight = this.args.overflowHeight;\n\n if (overflowHeight) {\n const property =\n typeof overflowHeight === 'string' ? 'height' : 'maxHeight';\n\n return {\n [property]:\n typeof overflowHeight === 'string'\n ? overflowHeight\n : `${overflowHeight}px`\n };\n }\n\n return {};\n }\n\n get showCopyButton() {\n return this.isCopyable && true;\n }\n\n get rowHeight() {\n return fontSizeToRowHeightMap[this.fontSize];\n }\n\n get showFullScreenButton() {\n return !!this.args.overflowHeight;\n }\n\n constructor(owner: Owner, args: EuiCodeBlockArgs) {\n super(owner, args);\n this.codeTarget = document.createElement('div');\n }\n\n @action\n toggleFullScreen() {\n this.isFullScreen = !this.isFullScreen;\n }\n\n @action\n closeFullScreen(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.isFullScreen = false;\n }\n\n @action\n doesOverflow() {\n if (!this.wrapperRef) return;\n\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } =\n this.wrapperRef;\n const doesOverflow =\n scrollHeight > clientHeight || scrollWidth > clientWidth;\n\n this.tabIndex = doesOverflow ? 0 : -1;\n }\n\n @action\n updateCode(resp: { data: RefractorNode[]; element: HTMLElement }) {\n const render = () => {\n const code = this.code;\n const codeFullScreen = this.codeFullScreen;\n\n if (code && !this.isFullScreen) {\n this.data = resp;\n code.innerHTML = resp.element.innerHTML;\n }\n\n if (codeFullScreen && this.isFullScreen) {\n this.data = resp;\n codeFullScreen.innerHTML = resp.element.innerHTML;\n }\n };\n\n scheduleOnce('afterRender', this, render);\n }\n\n willDestroy() {\n super.willDestroy();\n\n this.codeTarget = undefined;\n this.code = undefined;\n this.codeFullScreen = undefined;\n this.wrapperRef = undefined;\n }\n\n <template>\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{#if this.codeTarget}}\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let\n (classNames\n \"euiCodeBlock\"\n (if\n (or this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasControl\"\n )\n (if\n (and this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasBothControls\"\n )\n (if this.lineNumbersConfig.show \"euiCodeBlock--hasLineNumbers\")\n )\n (classNames\n \"euiCodeBlock__pre\"\n (if\n (or (eq this.whiteSpace \"pre\") this.isVirtualized)\n \"euiCodeBlock__pre--whiteSpacePre\"\n )\n (if\n (and (eq this.whiteSpace \"pre-wrap\") (not this.isVirtualized))\n \"euiCodeBlock__pre--whiteSpacePreWrap\"\n )\n (if this.isVirtualized \"euiCodeBlock__pre--isVirtualized\")\n )\n as |wrapperClasses preClasses|\n }}\n <div\n class={{classNames\n wrapperClasses\n (if\n this.transparentBackground \"euiCodeBlock--transparentBackground\"\n )\n componentName=\"EuiCodeBlock\"\n fontSize=this.fontSize\n paddingSize=this.paddingSize\n }}\n {{style this.optionalStyles}}\n {{highlightTargetModifier\n element=this.codeTarget\n language=this.language\n lineNumbersConfig=this.lineNumbersConfig\n onChange=this.updateCode\n }}\n >\n {{#if this.isVirtualized}}\n {{!virtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{this.rowHeight}}\n />\n {{else}}\n {{!template-lint-disable}}\n <pre\n class={{preClasses}}\n {{style this.optionalStyles}}\n tabindex={{this.tabIndex}}\n {{didInsert (set this \"wrapperRef\")}}\n {{resizeObserver onResize=this.doesOverflow}}\n {{mutationObserver\n onMutation=this.doesOverflow\n observerOptions=(hash subtree=true childList=true)\n }}\n {{didInsert setInnerTextRef}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"code\")}}\n ...attributes\n ></code></pre>\n\n {{/if}}\n\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @showCopyButton={{this.showCopyButton}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n\n {{#if this.isFullScreen}}\n <FullScreenDisplay class={{wrapperClasses}}>\n {{#if this.isVirtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{fontSizeToRowHeightMap.l}}\n />\n {{else}}\n <pre\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"codeFullScreen\")}}\n ></code></pre>\n {{/if}}\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @showCopyButton={{this.showCopyButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n </FullScreenDisplay>\n {{/if}}\n </div>\n {{/let}}\n </EuiInnerText>\n </template>\n}\n"],"names":["fontSizeToRowHeightMap","s","m","l","highlightTargetModifier","modifier","_e","_pos","element","targetEle","language","lineNumbersConfig","start","show","onChange","observer","getHighlighedHtml","html","textContent","trim","data","highlightByLine","getHtmlContent","setupObserver","newObserver","MutationObserver","mutationsList","length","observe","characterData","subtree","childList","disconnect","cleanTextHelper","helper","text","replace","textToCopyHelper","isVirtualized","innerText","EuiCodeBlockComponent","Component","g","prototype","tracked","i","void 0","checkSupportedLanguage","args","transparentBackground","paddingSize","fontSize","isCopyable","whiteSpace","Array","isArray","lineNumbers","config","optionalStyles","overflowHeight","property","showCopyButton","rowHeight","showFullScreenButton","constructor","owner","codeTarget","document","createElement","toggleFullScreen","isFullScreen","n","action","closeFullScreen","e","preventDefault","stopPropagation","doesOverflow","wrapperRef","clientWidth","clientHeight","scrollWidth","scrollHeight","tabIndex","updateCode","resp","render","code","codeFullScreen","innerHTML","scheduleOnce","willDestroy","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","EuiInnerText","classNames","or","and","eq","not","style","VirtualizedCodeBlock","onKey","didInsert","set","resizeObserver","mutationObserver","hash","Controls","FullScreenDisplay"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAMA,sBAAyB,GAAA;AAC7BC,EAAAA,CAAG,EAAA,EAAA;AACHC,EAAAA,CAAG,EAAA,EAAA;AACHC,EAAAA,CAAG,EAAA;AACL,CAAA;AAwDA,MAAMC,uBAA0B,GAAAC,QAAA,CAC9B,CACEC,EAAA,EACAC,IAAa,EACb;AACEC,EAAAA,OAAA,EAASC,SAAS;AAClBC,EAAAA,QAAW,GAAA,MAAM;AACjBC,EAAAA,iBAAoB,GAAA;AAAEC,IAAAA,KAAO,EAAA,CAAA;AAAGC,IAAAA,IAAM,EAAA;GAAO;AAC7CC,EAAAA;AAYD,CAAA,KAAA;AAED,EAAA,IAAIC,QAAsB;EAE1B,MAAMC,iBAAoB,GAAAA,MAAA;AACxB,IAAA,MAAMC,IAAA,GAAO,CAACR,SAAW,EAAAS,WAAA,GAAcT,UAAUS,WAAW,GAAG,EAAE,EAAEC,IAAI,EAAA;AAEvE,IAAA,IAAIC,IAAM;AAEV,IAAA,IAAI,OAAOH,SAAS,QAAU,EAAA;AAC5BG,MAAAA,IAAA,GAAO,EAAE;AACX,KAAO,MAAA;MACLA,IAAO,GAAAC,eAAA,CAAgBJ,MAAMP,QAAU,EAAAC,iBAAA,CAAA;AACzC;IAEA,OAAO;MACLS,IAAA;AACAZ,MAAAA,OAAS,EAAAc,cAAA,CAAeF,MAAMZ;KAChC;GACF;EAEA,MAAMe,aAAgB,GAAAA,MAAA;AACpB,IAAA,MAAMC,WAAA,GAAc,IAAIC,gBAAA,CAAkBC,aAAA,IAAA;MACxC,IAAIA,aAAA,CAAcC,MAAM,EAAE;AACxBb,QAAAA,QAAS,CAAAE,iBAAA,EAAA,CAAA;AACX;AACF,KAAA,CAAA;AAEA,IAAA,IAAIP,SAAW,EAAA;AACbK,MAAAA,QAAS,CAAAE,iBAAA,EAAA,CAAA;AACTQ,MAAAA,WAAY,CAAAI,OAAO,CAACnB,SAAW,EAAA;AAC7BoB,QAAAA,aAAe,EAAA,IAAA;AACfC,QAAAA,OAAS,EAAA,IAAA;AACTC,QAAAA,SAAW,EAAA;AACb,OAAA,CAAA;AACF;AAEA,IAAA,OAAOP,WAAA;GACT;AAEA,EAAA,IAAIf,SAAW,EAAA;IACbM,QAAW,GAAAQ,aAAA,EAAA;AACb;AAEA,EAAA,OAAO,MAAA;IACLR,QAAU,EAAAiB,UAAA,EAAA;GACZ;AACF,CAAA,CAAA;AAGF,MAAMC,kBAAkBC,MAAO,CAAA,UAAU,CAACC,IAAA,CAAe,EAAA;EACvD,OAAOA,IAAA,EAAMC,OAAQ,CAAA,kBAAA,EAAoB,IAAS,CAAA,IAAA,EAAA;AACpD,CAAA,CAAA;AAEA,MAAMC,gBAAA,GAAmBH,MAAO,CAAA,UAC9B3B,IAAI,EACJ;EACE+B,aAAa;EACb9B,OAAO;AACP+B,EAAAA;AAKD,CAAA,EAAA;AAED,EAAA,IAAI/B,OAAS,EAAA;AACX,IAAA,OAAO8B,gBACH9B,OAAQ,CAAAU,WAAW,GACjBV,OAAQ,CAAAU,WAAW,GACnB,EACF,GAAAqB,SAAA;AACN;AAEA,EAAA,OAAO,EAAA;AACT,CAAA,CAAA;AAEe,MAAMC,8BAA8BC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CAE1DC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA,EADD;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAGCC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA,EADD;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,gBAAA,EAAA,CAGCC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,eAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,gBAAA,CAAA,EAAAC,MAAA,EADD;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CAECC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACAC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAmB,CAAE;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CACrBC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAuB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAC7BC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;EAED,IAAIpC,QAAWA,GAAA;IACb,OAAOqC,uBAAuB,IAAI,CAACC,IAAI,CAACtC,QAAQ,IAAI,EAAA,CAAA;AACtD;EAEA,IAAIuC,qBAAwBA,GAAA;AAC1B,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,qBAAqB,IAAI,KAAA;AAC5C;EAEA,IAAIC,WAAcA,GAAA;AAChB,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,WAAW,IAAI,GAAA;AAClC;EAEA,IAAIC,QAAWA,GAAA;AACb,IAAA,OAAO,IAAI,CAACH,IAAI,CAACG,QAAQ,IAAI,GAAA;AAC/B;EAEA,IAAIC,UAAaA,GAAA;AACf,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACI,UAAU,IAAI,KAAA;AACjC;EAEA,IAAIC,UAAaA,GAAA;AACf,IAAA,OAAO,IAAI,CAACL,IAAI,CAACK,UAAU,IAAI,UAAA;AACjC;EAEA,IAAIf,aAAgBA,GAAA;AAClB,IAAA,OAAO,CAAC,EAAE,IAAI,CAACU,IAAI,CAACV,aAAa,IAAIgB,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACnC,IAAI,EAAEA,IAAK,CAAA,CAAA;AACrE;EAEA,IAAIoC,WAAcA,GAAA;AAChB,IAAA,OAAO,IAAI,CAACR,IAAI,CAACQ,WAAW,IAAI,KAAA;AAClC;EAEA,IAAI7C,iBAAoBA,GAAA;IACtB,MAAM;AAAE6C,MAAAA;AAAa,KAAA,GAAG,IAAI;IAC5B,MAAMC,MAAS,GAAA,OAAOD,WAAgB,KAAA,QAAA,GAAWA,cAAc,EAAC;AAEhE,IAAA,OAAOA,WACH,GAAA;AAAE5C,MAAAA,KAAO,EAAA,CAAA;AAAGC,MAAAA,IAAM,EAAA,IAAA;MAAM,GAAG4C;AAAO,KAClC,GAAA;AAAE7C,MAAAA,KAAO,EAAA,CAAA;AAAGC,MAAAA,IAAM,EAAA;KAAM;AAC9B;EAEA,IAAI6C,cAAiBA,GAAA;AACnB,IAAA,MAAMC,cAAiB,GAAA,IAAI,CAACX,IAAI,CAACW,cAAc;AAE/C,IAAA,IAAIA,cAAgB,EAAA;MAClB,MAAMC,QACJ,GAAA,OAAOD,cAAmB,KAAA,QAAA,GAAW,QAAW,GAAA,WAAA;MAElD,OAAO;QACL,CAACC,QAAA,GACC,OAAOD,cAAmB,KAAA,QAAA,GACtBA,iBACA,CAAA,EAAGA,cAAe,CAAA,EAAA;OAC1B;AACF;AAEA,IAAA,OAAO,EAAC;AACV;EAEA,IAAIE,cAAiBA,GAAA;AACnB,IAAA,OAAO,IAAI,CAACT,UAAU,IAAI,IAAA;AAC5B;EAEA,IAAIU,SAAYA,GAAA;AACd,IAAA,OAAO9D,sBAAsB,CAAC,IAAI,CAACmD,QAAQ,CAAC;AAC9C;EAEA,IAAIY,oBAAuBA,GAAA;AACzB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACf,IAAI,CAACW,cAAc;AACnC;AAEAK,EAAAA,WAAAA,CAAYC,KAAY,EAAEjB,IAAsB,EAAE;AAChD,IAAA,KAAK,CAACiB,KAAO,EAAAjB,IAAA,CAAA;IACb,IAAI,CAACkB,UAAU,GAAGC,QAAA,CAASC,aAAa,CAAC,KAAA,CAAA;AAC3C;AAGAC,EAAAA,gBAAmBA,GAAA;AACjB,IAAA,IAAI,CAACC,YAAY,GAAG,CAAC,IAAI,CAACA,YAAY;AACxC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAA5B,SAAA,EAAA,kBAAA,EAAA,CAHC6B,MAAA,CAAA,CAAA;AAAA;EAMDC,eAAgBA,CAAAC,CAAgB,EAAE;IAChCA,CAAA,CAAEC,cAAc,EAAA;IAChBD,CAAA,CAAEE,eAAe,EAAA;IACjB,IAAI,CAACN,YAAY,GAAG,KAAA;AACtB;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAA5B,SAAA,EAAA,iBAAA,EAAA,CALC6B,MAAA,CAAA,CAAA;AAAA;AAQDK,EAAAA,YAAeA,GAAA;AACb,IAAA,IAAI,CAAC,IAAI,CAACC,UAAU,EAAE;IAEtB,MAAM;MAAEC,WAAW;MAAEC,YAAY;MAAEC,WAAW;AAAEC,MAAAA;KAAc,GAC5D,IAAI,CAACJ,UAAU;IACjB,MAAMD,YAAA,GACJK,YAAe,GAAAF,YAAA,IAAgBC,WAAc,GAAAF,WAAA;IAE/C,IAAI,CAACI,QAAQ,GAAGN,YAAA,GAAe,IAAI,EAAC;AACtC;AAAA,EAAA;IAAAN,CAAA,CAAA,IAAA,CAAA5B,SAAA,EAAA,cAAA,EAAA,CAVC6B,MAAA,CAAA,CAAA;AAAA;EAaDY,UAAWA,CAAAC,IAAqD,EAAE;IAChE,MAAMC,MAAS,GAAAA,MAAA;AACb,MAAA,MAAMC,IAAA,GAAO,IAAI,CAACA,IAAI;AACtB,MAAA,MAAMC,cAAA,GAAiB,IAAI,CAACA,cAAc;AAE1C,MAAA,IAAID,IAAQ,IAAA,CAAC,IAAI,CAACjB,YAAY,EAAE;QAC9B,IAAI,CAAClD,IAAI,GAAGiE,IAAA;AACZE,QAAAA,IAAA,CAAKE,SAAS,GAAGJ,IAAK,CAAA7E,OAAO,CAACiF,SAAS;AACzC;AAEA,MAAA,IAAID,cAAkB,IAAA,IAAI,CAAClB,YAAY,EAAE;QACvC,IAAI,CAAClD,IAAI,GAAGiE,IAAA;AACZG,QAAAA,cAAA,CAAeC,SAAS,GAAGJ,IAAK,CAAA7E,OAAO,CAACiF,SAAS;AACnD;KACF;AAEAC,IAAAA,YAAa,CAAA,aAAA,EAAe,IAAI,EAAEJ,MAAA,CAAA;AACpC;AAAA,EAAA;IAAAf,CAAA,CAAA,IAAA,CAAA5B,SAAA,EAAA,YAAA,EAAA,CAlBC6B,MAAA,CAAA,CAAA;AAAA;AAoBDmB,EAAAA,WAAcA,GAAA;IACZ,KAAK,CAACA,WAAA,EAAA;IAEN,IAAI,CAACzB,UAAU,GAAG0B,SAAA;IAClB,IAAI,CAACL,IAAI,GAAGK,SAAA;IACZ,IAAI,CAACJ,cAAc,GAAGI,SAAA;IACtB,IAAI,CAACd,UAAU,GAAGc,SAAA;AACpB;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA+IA,09HAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;sBAAAC,QAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,KAAA;QAAAnG,uBAAA;8BAAAoG,gCAAA;QAAAC,KAAA;QAAAC,SAAA;QAAAC,GAAA;wBAAAC,cAAA;QAAAC,gBAAA;QAAAC,IAAA;kBAAAC,oBAAA;QAAA1E,gBAAA;QAAAJ,eAAA;QAAA+E,iBAAA;AAAAhH,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-code-block.js","sources":["../../src/components/eui-code-block.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { hash } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not,or } from 'ember-truth-helpers';\n\nimport Controls from '../components/eui-code-block/controls.gts';\nimport FullScreenDisplay from '../components/eui-code-block/full-screen-display.gts';\nimport VirtualizedCodeBlock from '../components/eui-code-block/virtualized.gts';\nimport EuiInnerText from '../components/eui-inner-text.gts';\nimport classNames from '../helpers/class-names.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport {\n checkSupportedLanguage,\n getHtmlContent,\n highlightByLine\n} from '../utils/code/utils.ts';\n\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\n\ninterface LineNumbersConfig {\n start?: number;\n highlight?: string;\n show?: boolean;\n}\n\nexport type PaddingSize = 'none' | 's' | 'm' | 'l';\nexport type FontSize = 's' | 'm' | 'l';\n\nconst fontSizeToRowHeightMap = {\n s: 18,\n m: 21,\n l: 24\n};\n\nexport type EuiCodeBlockArgs = EuiCodeSharedProps & {\n paddingSize?: PaddingSize;\n fontSize?: FontSize;\n\n /**\n * Specify how `white-space` inside the element is handled.\n * `pre` respects line breaks/white space but doesn't force them to wrap the line\n * `pre-wrap` respects line breaks/white space but does force them to wrap the line when necessary.\n */\n whiteSpace?: 'pre' | 'pre-wrap';\n\n /**\n * Displays an icon button to copy the code snippet to the clipboard.\n */\n isCopyable?: boolean;\n\n /**\n * Displays line numbers.\n * Optionally accepts a configuration object for setting the starting number and visual highlighting ranges:\n * `{ start: 100, highlight: '1, 5-10, 20-30, 40' }`\n */\n lineNumbers?: boolean | LineNumbersConfig;\n\n /**\n * Sets the maximum container height.\n * Accepts a pixel value (`300`) or a percentage (`'100%'`)\n * Ensure the container has calcuable height when using a percentage\n */\n overflowHeight?: number | string;\n\n /**\n * Renders code block lines virtually.\n * Useful for improving load times of large code blocks.\n *\n * When using this configuration, `overflowHeight` is required and\n * `whiteSpace` can only be `pre`.\n */\n isVirtualized?: boolean;\n};\n\nexport interface EuiCodeBlockSignature {\n Element: HTMLElement;\n Args: EuiCodeBlockArgs;\n Blocks: {\n default: [];\n };\n}\n\ninterface LineNumbersFinal {\n start: number;\n show: boolean;\n highlight?: string;\n}\n\nconst highlightTargetModifier = modifier(\n (\n _e,\n _pos: unknown[],\n {\n element: targetEle,\n language = 'text',\n lineNumbersConfig = { start: 1, show: false },\n onChange\n }: {\n element: Element | undefined;\n language: EuiCodeSharedProps['language'];\n lineNumbersConfig: LineNumbersFinal;\n onChange: ({\n data,\n element\n }: {\n data: RefractorNode[];\n element: HTMLElement;\n }) => void;\n }\n ) => {\n let observer: undefined | MutationObserver;\n\n const getHighlighedHtml = () => {\n const html = (targetEle?.textContent ? targetEle.textContent : '').trim();\n\n let data: RefractorNode[];\n\n if (typeof html !== 'string') {\n data = [];\n } else {\n data = highlightByLine(html, language, lineNumbersConfig);\n }\n\n return {\n data,\n element: getHtmlContent(data).element\n };\n };\n\n const setupObserver = () => {\n const newObserver = new MutationObserver((mutationsList) => {\n if (mutationsList.length) {\n onChange(getHighlighedHtml());\n }\n });\n\n if (targetEle) {\n onChange(getHighlighedHtml());\n newObserver.observe(targetEle, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n\n return newObserver;\n };\n\n if (targetEle) {\n observer = setupObserver();\n }\n\n return () => {\n observer?.disconnect();\n };\n }\n);\n\nconst cleanTextHelper = helper(function ([text]: [string]) {\n return text?.replace(/[\\r\\n?]{2}|\\n\\n/g, '\\n') || '';\n});\n\nconst textToCopyHelper = helper(function (\n _pos,\n {\n isVirtualized,\n element,\n innerText\n }: {\n isVirtualized: boolean;\n element: HTMLElement | undefined;\n innerText: string;\n }\n) {\n if (element) {\n return isVirtualized\n ? element.textContent\n ? element.textContent\n : ''\n : innerText;\n }\n\n return '';\n});\n\nexport default class EuiCodeBlockComponent extends Component<EuiCodeBlockSignature> {\n //fake element where yield writes to, so we can observe and clone a highlighted version to code and codeFullSceen\n @tracked codeTarget?: HTMLElement;\n //<code> Element for non fullscreen\n @tracked code?: HTMLElement;\n //<code> Element for fullscreen modal\n @tracked codeFullScreen?: HTMLElement;\n @tracked wrapperRef?: HTMLElement;\n @tracked tabIndex = 1;\n @tracked isFullScreen = false;\n @tracked data?: { data: RefractorNode[]; element: HTMLElement };\n\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n\n get transparentBackground() {\n return this.args.transparentBackground ?? false;\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get fontSize() {\n return this.args.fontSize ?? 's';\n }\n\n get isCopyable() {\n return this.args.isCopyable ?? false;\n }\n\n get whiteSpace() {\n return this.args.whiteSpace ?? 'pre-wrap';\n }\n\n get isVirtualized() {\n return !!(this.args.isVirtualized && Array.isArray(this.data?.data));\n }\n\n get lineNumbers() {\n return this.args.lineNumbers ?? false;\n }\n\n get lineNumbersConfig() {\n const { lineNumbers } = this;\n const config = typeof lineNumbers === 'object' ? lineNumbers : {};\n\n return lineNumbers\n ? { start: 1, show: true, ...config }\n : { start: 1, show: false };\n }\n\n get optionalStyles() {\n const overflowHeight = this.args.overflowHeight;\n\n if (overflowHeight) {\n const property =\n typeof overflowHeight === 'string' ? 'height' : 'maxHeight';\n\n return {\n [property]:\n typeof overflowHeight === 'string'\n ? overflowHeight\n : `${overflowHeight}px`\n };\n }\n\n return {};\n }\n\n get showCopyButton() {\n return this.isCopyable && true;\n }\n\n get rowHeight() {\n return fontSizeToRowHeightMap[this.fontSize];\n }\n\n get showFullScreenButton() {\n return !!this.args.overflowHeight;\n }\n\n constructor(owner: Owner, args: EuiCodeBlockArgs) {\n super(owner, args);\n this.codeTarget = document.createElement('div');\n }\n\n @action\n toggleFullScreen() {\n this.isFullScreen = !this.isFullScreen;\n }\n\n @action\n closeFullScreen(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.isFullScreen = false;\n }\n\n @action\n doesOverflow() {\n if (!this.wrapperRef) return;\n\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } =\n this.wrapperRef;\n const doesOverflow =\n scrollHeight > clientHeight || scrollWidth > clientWidth;\n\n this.tabIndex = doesOverflow ? 0 : -1;\n }\n\n @action\n updateCode(resp: { data: RefractorNode[]; element: HTMLElement }) {\n const render = () => {\n const code = this.code;\n const codeFullScreen = this.codeFullScreen;\n\n if (code && !this.isFullScreen) {\n this.data = resp;\n code.innerHTML = resp.element.innerHTML;\n }\n\n if (codeFullScreen && this.isFullScreen) {\n this.data = resp;\n codeFullScreen.innerHTML = resp.element.innerHTML;\n }\n };\n\n scheduleOnce('afterRender', this, render);\n }\n\n willDestroy() {\n super.willDestroy();\n\n this.codeTarget = undefined;\n this.code = undefined;\n this.codeFullScreen = undefined;\n this.wrapperRef = undefined;\n }\n\n <template>\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{#if this.codeTarget}}\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let\n (classNames\n \"euiCodeBlock\"\n (if\n (or this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasControl\"\n )\n (if\n (and this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasBothControls\"\n )\n (if this.lineNumbersConfig.show \"euiCodeBlock--hasLineNumbers\")\n @className\n )\n (classNames\n \"euiCodeBlock__pre\"\n (if\n (or (eq this.whiteSpace \"pre\") this.isVirtualized)\n \"euiCodeBlock__pre--whiteSpacePre\"\n )\n (if\n (and (eq this.whiteSpace \"pre-wrap\") (not this.isVirtualized))\n \"euiCodeBlock__pre--whiteSpacePreWrap\"\n )\n (if this.isVirtualized \"euiCodeBlock__pre--isVirtualized\")\n )\n as |wrapperClasses preClasses|\n }}\n <div\n class={{classNames\n wrapperClasses\n (if\n this.transparentBackground \"euiCodeBlock--transparentBackground\"\n )\n componentName=\"EuiCodeBlock\"\n fontSize=this.fontSize\n paddingSize=this.paddingSize\n }}\n {{style this.optionalStyles}}\n {{highlightTargetModifier\n element=this.codeTarget\n language=this.language\n lineNumbersConfig=this.lineNumbersConfig\n onChange=this.updateCode\n }}\n >\n {{#if this.isVirtualized}}\n {{!virtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{this.rowHeight}}\n />\n {{else}}\n {{!template-lint-disable}}\n <pre\n class={{preClasses}}\n {{style this.optionalStyles}}\n tabindex={{this.tabIndex}}\n {{didInsert (set this \"wrapperRef\")}}\n {{resizeObserver onResize=this.doesOverflow}}\n {{mutationObserver\n onMutation=this.doesOverflow\n observerOptions=(hash subtree=true childList=true)\n }}\n {{didInsert setInnerTextRef}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"code\")}}\n ...attributes\n ></code></pre>\n\n {{/if}}\n\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @showCopyButton={{this.showCopyButton}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n\n {{#if this.isFullScreen}}\n <FullScreenDisplay class={{wrapperClasses}}>\n {{#if this.isVirtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{fontSizeToRowHeightMap.l}}\n />\n {{else}}\n <pre\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"codeFullScreen\")}}\n ></code></pre>\n {{/if}}\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @showCopyButton={{this.showCopyButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n </FullScreenDisplay>\n {{/if}}\n </div>\n {{/let}}\n </EuiInnerText>\n </template>\n}\n"],"names":["fontSizeToRowHeightMap","s","m","l","highlightTargetModifier","modifier","_e","_pos","element","targetEle","language","lineNumbersConfig","start","show","onChange","observer","getHighlighedHtml","html","textContent","trim","data","highlightByLine","getHtmlContent","setupObserver","newObserver","MutationObserver","mutationsList","length","observe","characterData","subtree","childList","disconnect","cleanTextHelper","helper","text","replace","textToCopyHelper","isVirtualized","innerText","EuiCodeBlockComponent","Component","g","prototype","tracked","i","void 0","checkSupportedLanguage","args","transparentBackground","paddingSize","fontSize","isCopyable","whiteSpace","Array","isArray","lineNumbers","config","optionalStyles","overflowHeight","property","showCopyButton","rowHeight","showFullScreenButton","constructor","owner","codeTarget","document","createElement","toggleFullScreen","isFullScreen","n","action","closeFullScreen","e","preventDefault","stopPropagation","doesOverflow","wrapperRef","clientWidth","clientHeight","scrollWidth","scrollHeight","tabIndex","updateCode","resp","render","code","codeFullScreen","innerHTML","scheduleOnce","willDestroy","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","EuiInnerText","classNames","or","and","eq","not","style","VirtualizedCodeBlock","onKey","didInsert","set","resizeObserver","mutationObserver","hash","Controls","FullScreenDisplay"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
+ import 'ember-basic-dropdown/styles';
1
2
  import Component from '@glimmer/component';
2
3
  import { tracked, cached } from '@glimmer/tracking';
3
4
  import { isArray } from '@ember/array';
4
5
  import { action } from '@ember/object';
5
6
  import { inject } from '@ember/service';
6
7
  import { isEqual } from '@ember/utils';
7
- import 'ember-basic-dropdown/styles';
8
8
  import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
9
9
  import queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';
10
10
  import PowerSelectMultiple from 'ember-power-select/components/power-select-multiple';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-combo-box.js","sources":["../../src/components/eui-combo-box.gts"],"sourcesContent":["import 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';\nimport 'ember-basic-dropdown/styles';\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 };\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 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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"}
@@ -10,7 +10,7 @@ import { precompileTemplate } from '@ember/template-compilation';
10
10
  import { setComponentTemplate } from '@ember/component';
11
11
  import templateOnly from '@ember/component/template-only';
12
12
 
13
- const EuiFieldNumber = setComponentTemplate(precompileTemplate("\n {{#let (and (argOrDefault @isPrependProvided true) (has-block \"prepend\")) (and (argOrDefault @isAppendProvided true) (has-block \"append\")) (argOrDefault @id (randomId)) as |hasPrepend hasAppend inputId|}}\n {{#let (classNames (if @icon \"euiFieldNumber--withIcon\") (if @fullWidth \"euiFieldNumber--fullWidth\") (if @compressed \"euiFieldNumber--compressed\") (if (or hasPrepend hasAppend) \"euiFieldNumber--inGroup\") (if @isLoading \"euiFieldNumber--isLoading\") \"euiFieldNumber\") as |classes|}}\n {{#if @controlOnly}}\n <input id={{@id}} class={{classes}} value={{@value}} min={{@min}} max={{@max}} disabled={{@disabled}} step={{@step}} type=\"number\" {{validatableControl @isInvalid}} {{didInsert (optional @inputRef)}} ...attributes />\n {{else}}\n <EuiFormControlLayout @icon={{@icon}} @clear={{@clear}} @fullWidth={{@fullWidth}} @isLoading={{@isLoading}} @compressed={{@compressed}} @readOnly={{@readOnly}} @disabled={{@disabled}} @useGroup={{or hasPrepend hasAppend}}>\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:field>\n <input id={{inputId}} class={{classes}} value={{@value}} min={{@min}} max={{@max}} disabled={{@disabled}} step={{@step}} type=\"number\" {{validatableControl @isInvalid}} ...attributes />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n ", {
13
+ const EuiFieldNumber = setComponentTemplate(precompileTemplate("\n {{#let (and (argOrDefault @isPrependProvided true) (has-block \"prepend\")) (and (argOrDefault @isAppendProvided true) (has-block \"append\")) (argOrDefault @id (randomId)) as |hasPrepend hasAppend inputId|}}\n {{#let (classNames (if @icon \"euiFieldNumber--withIcon\") (if @fullWidth \"euiFieldNumber--fullWidth\") (if @compressed \"euiFieldNumber--compressed\") (if (or hasPrepend hasAppend) \"euiFieldNumber--inGroup\") (if @isLoading \"euiFieldNumber--isLoading\") \"euiFieldNumber\") as |classes|}}\n {{#if @controlOnly}}\n <input id={{@id}} class={{classes}} value={{@value}} min={{@min}} max={{@max}} disabled={{@disabled}} step={{@step}} type=\"number\" readonly={{@readOnly}} {{validatableControl @isInvalid}} {{didInsert (optional @inputRef)}} ...attributes />\n {{else}}\n <EuiFormControlLayout @icon={{@icon}} @clear={{@clear}} @fullWidth={{@fullWidth}} @isLoading={{@isLoading}} @compressed={{@compressed}} @readOnly={{@readOnly}} @disabled={{@disabled}} @useGroup={{or hasPrepend hasAppend}}>\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:field>\n <input id={{inputId}} class={{classes}} value={{@value}} min={{@min}} max={{@max}} disabled={{@disabled}} step={{@step}} type=\"number\" readonly={{@readOnly}} {{validatableControl @isInvalid}} ...attributes />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n ", {
14
14
  strictMode: true,
15
15
  scope: () => ({
16
16
  and,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-field-number.js","sources":["../../src/components/eui-field-number.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { CommonArgs } from './common.ts';\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { IconType } from './eui-icon';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport type EuiFieldNumberArgs = CommonArgs & {\n id?: string;\n icon?: IconType;\n isInvalid?: boolean;\n fullWidth?: boolean;\n isLoading?: boolean;\n readOnly?: boolean;\n min?: number | string;\n max?: number | string;\n value?: number | string;\n disabled?: boolean;\n\n /**\n * Specifies the granularity that the value must adhere to.\n * Accepts a `number` or the string `'any'` for no stepping to allow for any value.\n * Defaults to `1`\n */\n step?: number | 'any';\n inputRef?: (ele: Element) => void;\n\n /**\n * Creates an input group with element(s) coming before input.\n * `string` | `Component` or an array of these\n */\n prepend?: EuiFormControlLayoutSignature['Blocks']['prepend'];\n\n /**\n * Creates an input group with element(s) coming after input.\n * `string` | `Component` or an array of these\n */\n append?: EuiFormControlLayoutSignature['Blocks']['append'];\n\n /**\n * Completely removes form control layout wrapper and ignores\n * icon, prepend, and append. Best used inside EuiFormControlLayoutDelimited.\n */\n controlOnly?: boolean;\n\n /**\n * when `true` creates a shorter height input\n */\n compressed?: boolean;\n\n isPrependProvided?: boolean;\n isAppendProvided?: boolean;\n\n clear?: EuiFormControlLayoutSignature['Args']['clear'];\n};\n\nexport interface EuiFieldNumberSignature {\n Element: HTMLInputElement;\n Args: EuiFieldNumberArgs;\n Blocks: {\n default: [string];\n prepend: [string];\n append: [string];\n };\n}\n\nconst EuiFieldNumber: TemplateOnlyComponent<EuiFieldNumberSignature> =\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldNumber--withIcon\")\n (if @fullWidth \"euiFieldNumber--fullWidth\")\n (if @compressed \"euiFieldNumber--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldNumber--inGroup\")\n (if @isLoading \"euiFieldNumber--isLoading\")\n \"euiFieldNumber\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{@id}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n </template>;\n\nexport default EuiFieldNumber;\n"],"names":["EuiFieldNumber","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AA2EA,MAAMA,cACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAmEA,qkDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-field-number.js","sources":["../../src/components/eui-field-number.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { CommonArgs } from './common.ts';\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { IconType } from './eui-icon';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport type EuiFieldNumberArgs = CommonArgs & {\n id?: string;\n icon?: IconType;\n isInvalid?: boolean;\n fullWidth?: boolean;\n isLoading?: boolean;\n readOnly?: boolean;\n min?: number | string;\n max?: number | string;\n value?: number | string;\n disabled?: boolean;\n\n /**\n * Specifies the granularity that the value must adhere to.\n * Accepts a `number` or the string `'any'` for no stepping to allow for any value.\n * Defaults to `1`\n */\n step?: number | 'any';\n inputRef?: (ele: Element) => void;\n\n /**\n * Creates an input group with element(s) coming before input.\n * `string` | `Component` or an array of these\n */\n prepend?: EuiFormControlLayoutSignature['Blocks']['prepend'];\n\n /**\n * Creates an input group with element(s) coming after input.\n * `string` | `Component` or an array of these\n */\n append?: EuiFormControlLayoutSignature['Blocks']['append'];\n\n /**\n * Completely removes form control layout wrapper and ignores\n * icon, prepend, and append. Best used inside EuiFormControlLayoutDelimited.\n */\n controlOnly?: boolean;\n\n /**\n * when `true` creates a shorter height input\n */\n compressed?: boolean;\n\n isPrependProvided?: boolean;\n isAppendProvided?: boolean;\n\n clear?: EuiFormControlLayoutSignature['Args']['clear'];\n};\n\nexport interface EuiFieldNumberSignature {\n Element: HTMLInputElement;\n Args: EuiFieldNumberArgs;\n Blocks: {\n default: [string];\n prepend: [string];\n append: [string];\n };\n}\n\nconst EuiFieldNumber: TemplateOnlyComponent<EuiFieldNumberSignature> =\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldNumber--withIcon\")\n (if @fullWidth \"euiFieldNumber--fullWidth\")\n (if @compressed \"euiFieldNumber--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldNumber--inGroup\")\n (if @isLoading \"euiFieldNumber--isLoading\")\n \"euiFieldNumber\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{@id}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n readonly={{@readOnly}}\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n readonly={{@readOnly}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n </template>;\n\nexport default EuiFieldNumber;\n"],"names":["EuiFieldNumber","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AA2EA,MAAMA,cACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAqEA,mnDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -10,7 +10,7 @@ import { precompileTemplate } from '@ember/template-compilation';
10
10
  import { setComponentTemplate } from '@ember/component';
11
11
  import templateOnly from '@ember/component/template-only';
12
12
 
13
- const EuiFieldText = setComponentTemplate(precompileTemplate("\n {{#let (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\")) (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\")) (argOrDefault @id (randomId)) as |hasPrepend hasAppend inputId|}}\n {{#let (classNames (if @icon \"euiFieldText--withIcon\") (if @fullWidth \"euiFieldText--fullWidth\") (if @compressed \"euiFieldText--compressed\") (if (or hasPrepend hasAppend) \"euiFieldText--inGroup\") (if @isLoading \"euiFieldText--isLoading\") \"euiFieldText\") as |classes|}}\n {{#if @controlOnly}}\n <input id={{inputId}} value={{@value}} class={{classes}} disabled={{@disabled}} type=\"text\" placeholder={{@placeholder}} ...attributes {{validatableControl @isInvalid}} {{didInsert (optional @inputRef)}} />\n {{else}}\n <EuiFormControlLayout @icon={{@icon}} @clear={{@clear}} @fullWidth={{@fullWidth}} @isLoading={{@isLoading}} @compressed={{@compressed}} @readOnly={{@readOnly}} @disabled={{@disabled}} @useGroup={{or hasPrepend hasAppend}}>\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input id={{inputId}} value={{@value}} class={{classes}} disabled={{@disabled}} type=\"text\" placeholder={{@placeholder}} readonly={{@readOnly}} ...attributes {{validatableControl @isInvalid}} />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n", {
13
+ const EuiFieldText = setComponentTemplate(precompileTemplate("\n {{#let (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\")) (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\")) (argOrDefault @id (randomId)) as |hasPrepend hasAppend inputId|}}\n {{#let (classNames (if @icon \"euiFieldText--withIcon\") (if @fullWidth \"euiFieldText--fullWidth\") (if @compressed \"euiFieldText--compressed\") (if (or hasPrepend hasAppend) \"euiFieldText--inGroup\") (if @isLoading \"euiFieldText--isLoading\") \"euiFieldText\") as |classes|}}\n {{#if @controlOnly}}\n <input id={{inputId}} value={{@value}} class={{classes}} disabled={{@disabled}} type=\"text\" placeholder={{@placeholder}} readonly={{@readOnly}} ...attributes {{validatableControl @isInvalid}} {{didInsert (optional @inputRef)}} />\n {{else}}\n <EuiFormControlLayout @icon={{@icon}} @clear={{@clear}} @fullWidth={{@fullWidth}} @isLoading={{@isLoading}} @compressed={{@compressed}} @readOnly={{@readOnly}} @disabled={{@disabled}} @useGroup={{or hasPrepend hasAppend}}>\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input id={{inputId}} value={{@value}} class={{classes}} disabled={{@disabled}} type=\"text\" placeholder={{@placeholder}} readonly={{@readOnly}} ...attributes {{validatableControl @isInvalid}} />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n", {
14
14
  strictMode: true,
15
15
  scope: () => ({
16
16
  and,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-field-text.js","sources":["../../src/components/eui-field-text.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiFieldTextSignature {\n Element: HTMLInputElement;\n Args: {\n id?: string;\n value?: string;\n placeholder?: string;\n icon?: EuiFormControlLayoutSignature['Args']['icon'];\n fullWidth?: boolean;\n isLoading?: boolean;\n compressed?: boolean;\n readOnly?: boolean;\n disabled?: boolean;\n clear?: () => void;\n controlOnly?: boolean;\n isInvalid?: boolean;\n inputRef?: (element: HTMLInputElement | null) => void;\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n };\n Blocks: {\n prepend: [...EuiFormControlLayoutSignature['Blocks']['prepend'], string];\n append: [...EuiFormControlLayoutSignature['Blocks']['append'], string];\n };\n}\n\nconst EuiFieldText: TemplateOnlyComponent<EuiFieldTextSignature> = <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldText--withIcon\")\n (if @fullWidth \"euiFieldText--fullWidth\")\n (if @compressed \"euiFieldText--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldText--inGroup\")\n (if @isLoading \"euiFieldText--isLoading\")\n \"euiFieldText\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n ...attributes\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n readonly={{@readOnly}}\n ...attributes\n {{validatableControl @isInvalid}}\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiFieldText;\n"],"names":["EuiFieldText","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AAuCA,MAAMA,YAA6D,GAAAC,oBAAA,CAAAC,kBAAA,CAgEnE,gjDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-field-text.js","sources":["../../src/components/eui-field-text.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiFieldTextSignature {\n Element: HTMLInputElement;\n Args: {\n id?: string;\n value?: string;\n placeholder?: string;\n icon?: EuiFormControlLayoutSignature['Args']['icon'];\n fullWidth?: boolean;\n isLoading?: boolean;\n compressed?: boolean;\n readOnly?: boolean;\n disabled?: boolean;\n clear?: () => void;\n controlOnly?: boolean;\n isInvalid?: boolean;\n inputRef?: (element: HTMLInputElement | null) => void;\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n };\n Blocks: {\n prepend: [...EuiFormControlLayoutSignature['Blocks']['prepend'], string];\n append: [...EuiFormControlLayoutSignature['Blocks']['append'], string];\n };\n}\n\nconst EuiFieldText: TemplateOnlyComponent<EuiFieldTextSignature> = <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldText--withIcon\")\n (if @fullWidth \"euiFieldText--fullWidth\")\n (if @compressed \"euiFieldText--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldText--inGroup\")\n (if @isLoading \"euiFieldText--isLoading\")\n \"euiFieldText\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n readonly={{@readOnly}}\n ...attributes\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n readonly={{@readOnly}}\n ...attributes\n {{validatableControl @isInvalid}}\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiFieldText;\n"],"names":["EuiFieldText","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AAuCA,MAAMA,YAA6D,GAAAC,oBAAA,CAAAC,kBAAA,CAiEnE,ukDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -180,11 +180,11 @@ class EuiPopoverComponent extends Component {
180
180
  updateFocusAnimationFrame;
181
181
  hasSetInitialFocus = false;
182
182
  static {
183
- g(this.prototype, "button", [tracked], function () {
183
+ g(this.prototype, "_button", [tracked], function () {
184
184
  return null;
185
185
  });
186
186
  }
187
- #button = (i(this, "button"), void 0);
187
+ #_button = (i(this, "_button"), void 0);
188
188
  static {
189
189
  g(this.prototype, "panel", [tracked], function () {
190
190
  return null;
@@ -198,6 +198,12 @@ class EuiPopoverComponent extends Component {
198
198
  this.suppressingPopover = this.isOpen;
199
199
  this.isCurrentlyOpen = this.isOpen;
200
200
  }
201
+ get button() {
202
+ if (this.args.button) {
203
+ return this.args.button;
204
+ }
205
+ return this._button;
206
+ }
201
207
  get insert() {
202
208
  if (this.args.insert) {
203
209
  return this.args.insert;
@@ -400,7 +406,7 @@ class EuiPopoverComponent extends Component {
400
406
  window.removeEventListener('scroll', this.positionPopoverFixed, true);
401
407
  window.removeEventListener('resize', this.positionPopoverFluid);
402
408
  this.popoverHost = null;
403
- this.button = null;
409
+ this._button = null;
404
410
  this.panel = null;
405
411
  cancel(this.respositionTimeout);
406
412
  cancel(this.closingTransitionTimeout);
@@ -507,7 +513,7 @@ class EuiPopoverComponent extends Component {
507
513
  n(this.prototype, "positionPopoverFluid", [action]);
508
514
  }
509
515
  registerButton(btn) {
510
- this.button = btn;
516
+ this._button = btn;
511
517
  this.args.buttonRef?.(btn);
512
518
  }
513
519
  static {
@@ -534,7 +540,7 @@ class EuiPopoverComponent extends Component {
534
540
  n(this.prototype, "registerPanel", [action]);
535
541
  }
536
542
  static {
537
- setComponentTemplate(precompileTemplate("\n {{#let (randomId) (classNames (if this.isOpening \"euiPopover-isOpen\") position=this.anchorPosition display=this.display componentName=\"EuiPopover\") (classNames \"euiPopover__panel\" (concat \"euiPopover__panel--\" this.arrowPosition) (if this.isOpening \"euiPopover__panel-isOpen\") (if (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\") (if @attachToAnchor \"euiPopover__panel-isAttached\") @panelClassName) as |descriptionId classes panelClasses|}}\n <div class={{classes}} {{onKey \"_all\" this.onKeyDown priority=1}} {{didInsert this.didInsertPopover}} {{didUpdate this.didUpdateIsOpen @isOpen}} {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}} {{didInsert (optional @popoverRef)}} ...attributes>\n\n {{!-- button --}}\n <div class=\"euiPopover__anchor {{@anchorClassName}}\" {{didInsert this.registerButton}}>\n {{yield to=\"button\"}}\n </div>\n\n {{!-- content --}}\n {{#if (and (not this.suppressingPopover) (or this.isCurrentlyOpen this.isClosing))}}\n <EuiPortal @insert={{this.insert}} @portalRef={{@portalRef}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel id={{panelId}} class={{panelClasses}} aria-live={{if this.ownFocus \"off\" \"assertive\"}} role=\"dialog\" aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-modal=\"true\" aria-describedby={{if this.ownFocus descriptionId}} tabindex={{this.tabindex}} @hasShadow={{false}} @paddingSize={{this.panelPaddingSize}} {{simpleStyle this._popoverStyles}} {{didInsert this.registerPanel}} {{outsideClickDetector onOutsideClick=this.onClickOutside}} {{onKey \"Escape\" this.onEscapeKey}} {{focusTrap isActive=(not (or (not this.ownFocus) (not this.isOpenStable) this.isClosing)) shouldSelfFocus=this.shouldSelfFocus isPaused=this.isFocusTrapPaused focusTrapOptions=(merge (hash returnFocusOnDeactivate=this.isOpenStable initialFocus=(or @initialFocus this.panel) onDeactivate=(optional @onTrapDeactivation) preventScroll=true clickOutsideDeactivates=true fallbackFocus=(concat \"#\" panelId)) @focusTrapOptions)}}>\n <div class={{concat \"euiPopover__panelArrow euiPopover__panelArrow--\" this.arrowPosition}} style={{this._arrowStyles}}>\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div {{mutationObserver onMutation=this.onMutation observerOptions=(merge (hash attributes=true childList=true characterData=true subtree=true) @mutationObserverOptions)}}>\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n ", {
543
+ setComponentTemplate(precompileTemplate("\n {{#let (randomId) (classNames (if this.isOpening \"euiPopover-isOpen\") position=this.anchorPosition display=this.display componentName=\"EuiPopover\") (classNames \"euiPopover__panel\" (concat \"euiPopover__panel--\" this.arrowPosition) (if this.isOpening \"euiPopover__panel-isOpen\") (if (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\") (if @attachToAnchor \"euiPopover__panel-isAttached\") @panelClassName) as |descriptionId classes panelClasses|}}\n <div class={{classes}} {{onKey \"_all\" this.onKeyDown priority=1}} {{didInsert this.didInsertPopover}} {{didUpdate this.didUpdateIsOpen @isOpen}} {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}} {{didInsert (optional @popoverRef)}} ...attributes>\n\n {{!-- button --}}\n {{#if (has-block \"button\")}}\n <div class=\"euiPopover__anchor {{@anchorClassName}}\" {{didInsert this.registerButton}}>\n {{yield to=\"button\"}}\n </div>\n {{/if}}\n \n {{!-- content --}}\n {{#if (and (not this.suppressingPopover) (or this.isCurrentlyOpen this.isClosing))}}\n <EuiPortal @insert={{this.insert}} @portalRef={{@portalRef}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel id={{panelId}} class={{panelClasses}} aria-live={{if this.ownFocus \"off\" \"assertive\"}} role=\"dialog\" aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-modal=\"true\" aria-describedby={{if this.ownFocus descriptionId}} tabindex={{this.tabindex}} @hasShadow={{false}} @paddingSize={{this.panelPaddingSize}} {{simpleStyle this._popoverStyles}} {{didInsert this.registerPanel}} {{outsideClickDetector onOutsideClick=this.onClickOutside}} {{onKey \"Escape\" this.onEscapeKey}} {{focusTrap isActive=(not (or (not this.ownFocus) (not this.isOpenStable) this.isClosing)) shouldSelfFocus=this.shouldSelfFocus isPaused=this.isFocusTrapPaused focusTrapOptions=(merge (hash returnFocusOnDeactivate=this.isOpenStable initialFocus=(or @initialFocus this.panel) onDeactivate=(optional @onTrapDeactivation) preventScroll=true clickOutsideDeactivates=true fallbackFocus=(concat \"#\" panelId)) @focusTrapOptions)}}>\n <div class={{concat \"euiPopover__panelArrow euiPopover__panelArrow--\" this.arrowPosition}} style={{this._arrowStyles}}>\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div {{mutationObserver onMutation=this.onMutation observerOptions=(merge (hash attributes=true childList=true characterData=true subtree=true) @mutationObserverOptions)}}>\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n ", {
538
544
  strictMode: true,
539
545
  scope: () => ({
540
546
  randomId,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\n\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport {\n anchorPositionMapping,\n displayMapping\n} from '../utils/css-mappings/eui-popover.ts';\nimport {\n findPopoverPosition,\n getElementZIndex\n} from '../utils/popover/index.ts';\nimport {\n getTransitionTimings,\n getWaitDuration,\n performOnFrame\n} from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\n\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\n\nexport type PopoverAnchorPosition =\n | 'upCenter'\n | 'upLeft'\n | 'upRight'\n | 'downCenter'\n | 'downLeft'\n | 'downRight'\n | 'leftCenter'\n | 'leftUp'\n | 'leftDown'\n | 'rightCenter'\n | 'rightUp'\n | 'rightDown';\n\nexport type EuiPopoverArgs = {\n /**\n * Callback to have a reference to the portal element\n */\n portalRef?: (ref: HTMLElement) => void;\n /**\n * Class name passed to the direct parent of the button\n */\n anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */\n anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */\n attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */\n button?: Component;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */\n closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */\n container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */\n display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */\n hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */\n initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */\n insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */\n isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */\n ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */\n panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */\n panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */\n panelStyle?: { [i: string]: string };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n\n /**\n * when not `false`, the popover will check if this popover is inside another popover and if so. will reposition itself to be inside the other popover\n */\n shouldAccountForOtherPopovers?: boolean;\n\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */\n repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */\n zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */\n onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */\n offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */\n buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */\n arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */\n ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */\n ariaLabelledBy?: string;\n\n tabindex?: string | number;\n\n shouldSelfFocus?: boolean;\n\n isFocusTrapPaused?: boolean;\n\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\n\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\n\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\n\nexport function getPopoverPositionFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match = anchorPosition.match(/^(.*?)[A-Z]/);\n\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[match[1] as AnchorPosition];\n }\n\n return anchorPositionToPopoverPositionMap['up'];\n}\n\nexport function getPopoverAlignFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match = anchorPosition.match(/([A-Z].*)/);\n\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[\n match[1]?.toLowerCase() as AnchorPosition\n ];\n }\n\n return anchorPositionToPopoverPositionMap['left'];\n}\n\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\n\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\n\nfunction getElementFromInitialFocus(\n initialFocus?: FocusTarget\n): HTMLElement | null {\n const initialFocusType = typeof initialFocus;\n\n if (initialFocusType === 'string') {\n return document.querySelector(initialFocus as string);\n }\n\n if (initialFocusType === 'function') {\n return (initialFocus as () => HTMLElement | null)();\n }\n\n return initialFocus as HTMLElement | null;\n}\n\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\n\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\n\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false) isOpen!: boolean;\n @argOrDefaultDecorator(true) ownFocus!: boolean;\n @argOrDefaultDecorator('downCenter') anchorPosition!: PopoverAnchorPosition;\n @argOrDefaultDecorator('m') panelPaddingSize!: PanelPaddingSize;\n @argOrDefaultDecorator(true) hasArrow!: boolean;\n @argOrDefaultDecorator('inlineBlock') display!: string;\n @argOrDefaultDecorator(true) shouldSelfFocus!: boolean;\n @argOrDefaultDecorator(false) isFocusTrapPaused!: boolean;\n\n //State\n @tracked prevIsOpen: boolean | undefined;\n @tracked suppressingPopover: boolean | undefined;\n @tracked isClosing = false;\n @tracked isOpening = false;\n @tracked popoverStyles: CssProps = {};\n @tracked arrowStyles: CssProps | undefined = {};\n @tracked arrowPosition: EuiPopoverPosition | null = null;\n @tracked openPosition: EuiPopoverPosition | null = null;\n @tracked isOpenStable = false;\n @tracked isCurrentlyOpen: boolean | undefined;\n @tracked popoverHost?: HTMLElement | null = null;\n ///\n\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked button: HTMLElement | null = null;\n @tracked panel: HTMLElement | null = null;\n\n constructor(owner: Owner, args: EuiPopoverArgs) {\n super(owner, args);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n\n get insert() {\n if (this.args.insert) {\n return this.args.insert;\n }\n\n if (this.shouldAccountForOtherPopovers) {\n if (this.popoverHost) {\n return {\n sibling: this.popoverHost.children[0] as HTMLElement,\n position: 'after'\n };\n }\n }\n\n return undefined;\n }\n\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n\n @action\n onEscapeKey(event: Event, ekEvent?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent?.stopPropagation();\n ekEvent?.stopImmediatePropagation();\n event.preventDefault();\n event.stopPropagation();\n this.closePopover();\n }\n }\n\n @action\n onKeyDown(event: KeyboardEvent, ekEvent: EmberKeyboardEvent): void {\n if (event.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event as unknown as Event, ekEvent as unknown as Event);\n }\n }\n\n @action\n onClickOutside(event: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(() => {\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n\n // If we've already focused on something inside the panel, everything's fine.\n if (\n this.hasSetInitialFocus &&\n this.panel.contains(document.activeElement)\n ) {\n return;\n }\n\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget;\n\n if (this.args.initialFocus != null) {\n focusTarget = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems = tabbable(this.panel);\n\n if (tabbableItems.length) {\n focusTarget = tabbableItems[0];\n }\n }\n\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility = window.getComputedStyle(this.panel).opacity;\n\n if (panelVisibility === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility = window.getComputedStyle(focusTarget).visibility;\n\n if (visibility === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n\n if (focusTarget != null) {\n this.hasSetInitialFocus = true;\n focusTarget.focus();\n }\n });\n }\n\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(() => {\n this.isOpening = true;\n });\n\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch, delayMatch } = Array.prototype.slice\n .call(this.panel ? this.panel.children : [])\n .reduce(\n (\n {\n durationMatch,\n delayMatch\n }: { durationMatch: number; delayMatch: number },\n element: HTMLElement\n ) => {\n const transitionTimings = getTransitionTimings(element);\n\n return {\n durationMatch: Math.max(\n durationMatch,\n transitionTimings.durationMatch\n ),\n delayMatch: Math.max(delayMatch, transitionTimings.delayMatch)\n };\n },\n { durationMatch: 0, delayMatch: 0 }\n );\n\n this.respositionTimeout = later(\n this,\n () => {\n this.isOpenStable = true;\n\n const fn = (): void => {\n this.positionPopoverFixed();\n this.updateFocus();\n };\n\n scheduleOnce('afterRender', this, fn);\n },\n durationMatch + delayMatch\n );\n }\n\n get shouldAccountForOtherPopovers() {\n return this.args.shouldAccountForOtherPopovers ?? true;\n }\n\n checkIfPopoverIsInsideAnotherPopover(ele: HTMLElement) {\n const otherPopover = ele.closest<HTMLDivElement>('div.euiPopover__panel');\n\n this.popoverHost = otherPopover;\n }\n\n @action\n didInsertPopover(ele: HTMLDivElement): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n\n const fn = (): void => this.onOpenPopover();\n\n scheduleOnce('afterRender', this, fn);\n }\n\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n\n if (this.shouldAccountForOtherPopovers) {\n this.checkIfPopoverIsInsideAnotherPopover(ele);\n }\n\n this.updateFocus();\n }\n\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(\n this,\n () => {\n this.isClosing = false;\n },\n 250\n );\n }\n\n this.prevIsOpen = this.args.isOpen;\n }\n\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n window.removeEventListener('resize', this.positionPopoverFluid);\n this.popoverHost = null;\n this.button = null;\n this.panel = null;\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n\n @action\n onMutation(records: MutationRecord[]): void {\n const waitDuration = getWaitDuration(records);\n\n this.positionPopoverFixed();\n\n performOnFrame(waitDuration, this.positionPopoverFixed);\n }\n\n @action\n positionPopover(allowEnforcePosition: boolean): void {\n if (this.button == null || this.panel == null) return;\n\n let position = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition = undefined;\n\n if (\n allowEnforcePosition &&\n this.isOpenStable &&\n this.openPosition != null\n ) {\n position = this.openPosition;\n forcePosition = true;\n }\n\n // get the position of the element relative to the offsetParent, which could be the document\n function getPos(ele: HTMLElement): [number, number] {\n let currTop = 0;\n let currLeft = 0;\n\n if (ele.offsetParent) {\n do {\n currTop += ele.offsetTop;\n currLeft += ele.offsetLeft;\n } while ((ele = ele.offsetParent as HTMLElement));\n } else {\n currTop = ele.offsetTop;\n currLeft = ele.offsetLeft;\n }\n\n return [currTop, currLeft];\n }\n\n const {\n top,\n left,\n position: foundPosition,\n arrow,\n anchorBoundingBox\n } = findPopoverPosition({\n container: this.args.container,\n host: this.shouldAccountForOtherPopovers ? this.popoverHost : null,\n position,\n forcePosition,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset:\n !this.args.attachToAnchor && this.hasArrow\n ? 16 + (this.args.offset || 0)\n : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp } = this.args;\n const zIndex =\n zIndexProp == null\n ? getElementZIndex(this.button, this.panel) + 2000\n : zIndexProp;\n\n const popoverStyles = {\n top,\n left:\n this.args.attachToAnchor && anchorBoundingBox\n ? anchorBoundingBox.left\n : left,\n zIndex\n };\n\n const willRenderArrow = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles = willRenderArrow ? arrow : undefined;\n const arrowPosition = foundPosition;\n\n this.popoverStyles = popoverStyles;\n this.arrowStyles = arrowStyles;\n this.arrowPosition = arrowPosition;\n this.openPosition = foundPosition;\n }\n\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles } = this;\n\n return arrowStyles\n ? htmlSafe(`top: ${arrowStyles?.top}px; left: ${arrowStyles?.left}px;`)\n : undefined;\n }\n\n get _popoverStyles(): { [i: string]: string } {\n const { panelStyle } = this.args;\n const { popoverStyles } = this;\n\n return {\n ...panelStyle,\n top: `${popoverStyles.top}px`,\n left: `${popoverStyles.left}px`,\n zIndex: `${popoverStyles.zIndex}`\n };\n }\n\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n\n return '-1';\n }\n\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n\n @action\n registerButton(btn: HTMLDivElement): void {\n this.button = btn;\n this.args.buttonRef?.(btn);\n }\n\n @action\n registerPanel(panel: HTMLElement): void {\n this.panel = panel;\n this.args.panelRef?.(panel);\n\n if (panel === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n\n <template>\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClassName\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n\n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{this.insert}} @portalRef={{@portalRef}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n </template>\n}\n"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus","initialFocusType","document","querySelector","EuiPopoverComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner","args","assert","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","insert","shouldAccountForOtherPopovers","popoverHost","sibling","children","position","undefined","n","action","onEscapeKey","event","ekEvent","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","button","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","activeElement","focusTarget","tabbableItems","tabbable","panelVisibility","getComputedStyle","opacity","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","delayMatch","Array","slice","call","reduce","element","transitionTimings","getTransitionTimings","Math","max","later","isOpenStable","fn","positionPopoverFixed","scheduleOnce","checkIfPopoverIsInsideAnotherPopover","ele","otherPopover","closest","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","positionPopoverFluid","cancelAnimationFrame","onMutation","records","waitDuration","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition","forcePosition","openPosition","foundPosition","arrow","anchorBoundingBox","findPopoverPosition","container","host","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp","getElementZIndex","popoverStyles","willRenderArrow","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","tabindex","registerButton","btn","buttonRef","registerPanel","panelRef","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver"],"mappings":"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"}
1
+ {"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\n\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport {\n anchorPositionMapping,\n displayMapping\n} from '../utils/css-mappings/eui-popover.ts';\nimport {\n findPopoverPosition,\n getElementZIndex\n} from '../utils/popover/index.ts';\nimport {\n getTransitionTimings,\n getWaitDuration,\n performOnFrame\n} from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\n\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\n\nexport type PopoverAnchorPosition =\n | 'upCenter'\n | 'upLeft'\n | 'upRight'\n | 'downCenter'\n | 'downLeft'\n | 'downRight'\n | 'leftCenter'\n | 'leftUp'\n | 'leftDown'\n | 'rightCenter'\n | 'rightUp'\n | 'rightDown';\n\nexport type EuiPopoverArgs = {\n /**\n * Callback to have a reference to the portal element\n */\n portalRef?: (ref: HTMLElement) => void;\n /**\n * Class name passed to the direct parent of the button\n */\n anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */\n anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */\n attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */\n button?: HTMLElement;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */\n closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */\n container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */\n display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */\n hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */\n initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */\n insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */\n isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */\n ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */\n panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */\n panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */\n panelStyle?: { [i: string]: string };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n\n /**\n * when not `false`, the popover will check if this popover is inside another popover and if so. will reposition itself to be inside the other popover\n */\n shouldAccountForOtherPopovers?: boolean;\n\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */\n repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */\n zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */\n onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */\n offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */\n buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */\n arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */\n ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */\n ariaLabelledBy?: string;\n\n tabindex?: string | number;\n\n shouldSelfFocus?: boolean;\n\n isFocusTrapPaused?: boolean;\n\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\n\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\n\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\n\nexport function getPopoverPositionFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match = anchorPosition.match(/^(.*?)[A-Z]/);\n\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[match[1] as AnchorPosition];\n }\n\n return anchorPositionToPopoverPositionMap['up'];\n}\n\nexport function getPopoverAlignFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match = anchorPosition.match(/([A-Z].*)/);\n\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[\n match[1]?.toLowerCase() as AnchorPosition\n ];\n }\n\n return anchorPositionToPopoverPositionMap['left'];\n}\n\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\n\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\n\nfunction getElementFromInitialFocus(\n initialFocus?: FocusTarget\n): HTMLElement | null {\n const initialFocusType = typeof initialFocus;\n\n if (initialFocusType === 'string') {\n return document.querySelector(initialFocus as string);\n }\n\n if (initialFocusType === 'function') {\n return (initialFocus as () => HTMLElement | null)();\n }\n\n return initialFocus as HTMLElement | null;\n}\n\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\n\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\n\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false) isOpen!: boolean;\n @argOrDefaultDecorator(true) ownFocus!: boolean;\n @argOrDefaultDecorator('downCenter') anchorPosition!: PopoverAnchorPosition;\n @argOrDefaultDecorator('m') panelPaddingSize!: PanelPaddingSize;\n @argOrDefaultDecorator(true) hasArrow!: boolean;\n @argOrDefaultDecorator('inlineBlock') display!: string;\n @argOrDefaultDecorator(true) shouldSelfFocus!: boolean;\n @argOrDefaultDecorator(false) isFocusTrapPaused!: boolean;\n\n //State\n @tracked prevIsOpen: boolean | undefined;\n @tracked suppressingPopover: boolean | undefined;\n @tracked isClosing = false;\n @tracked isOpening = false;\n @tracked popoverStyles: CssProps = {};\n @tracked arrowStyles: CssProps | undefined = {};\n @tracked arrowPosition: EuiPopoverPosition | null = null;\n @tracked openPosition: EuiPopoverPosition | null = null;\n @tracked isOpenStable = false;\n @tracked isCurrentlyOpen: boolean | undefined;\n @tracked popoverHost?: HTMLElement | null = null;\n ///\n\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked _button: HTMLElement | null = null;\n @tracked panel: HTMLElement | null = null;\n\n constructor(owner: Owner, args: EuiPopoverArgs) {\n super(owner, args);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n\n get button() {\n if (this.args.button) {\n return this.args.button;\n }\n\n return this._button;\n }\n\n get insert() {\n if (this.args.insert) {\n return this.args.insert;\n }\n\n if (this.shouldAccountForOtherPopovers) {\n if (this.popoverHost) {\n return {\n sibling: this.popoverHost.children[0] as HTMLElement,\n position: 'after'\n };\n }\n }\n\n return undefined;\n }\n\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n\n @action\n onEscapeKey(event: Event, ekEvent?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent?.stopPropagation();\n ekEvent?.stopImmediatePropagation();\n event.preventDefault();\n event.stopPropagation();\n this.closePopover();\n }\n }\n\n @action\n onKeyDown(event: KeyboardEvent, ekEvent: EmberKeyboardEvent): void {\n if (event.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event as unknown as Event, ekEvent as unknown as Event);\n }\n }\n\n @action\n onClickOutside(event: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(() => {\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n\n // If we've already focused on something inside the panel, everything's fine.\n if (\n this.hasSetInitialFocus &&\n this.panel.contains(document.activeElement)\n ) {\n return;\n }\n\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget;\n\n if (this.args.initialFocus != null) {\n focusTarget = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems = tabbable(this.panel);\n\n if (tabbableItems.length) {\n focusTarget = tabbableItems[0];\n }\n }\n\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility = window.getComputedStyle(this.panel).opacity;\n\n if (panelVisibility === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility = window.getComputedStyle(focusTarget).visibility;\n\n if (visibility === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n\n if (focusTarget != null) {\n this.hasSetInitialFocus = true;\n focusTarget.focus();\n }\n });\n }\n\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(() => {\n this.isOpening = true;\n });\n\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch, delayMatch } = Array.prototype.slice\n .call(this.panel ? this.panel.children : [])\n .reduce(\n (\n {\n durationMatch,\n delayMatch\n }: { durationMatch: number; delayMatch: number },\n element: HTMLElement\n ) => {\n const transitionTimings = getTransitionTimings(element);\n\n return {\n durationMatch: Math.max(\n durationMatch,\n transitionTimings.durationMatch\n ),\n delayMatch: Math.max(delayMatch, transitionTimings.delayMatch)\n };\n },\n { durationMatch: 0, delayMatch: 0 }\n );\n\n this.respositionTimeout = later(\n this,\n () => {\n this.isOpenStable = true;\n\n const fn = (): void => {\n this.positionPopoverFixed();\n this.updateFocus();\n };\n\n scheduleOnce('afterRender', this, fn);\n },\n durationMatch + delayMatch\n );\n }\n\n get shouldAccountForOtherPopovers() {\n return this.args.shouldAccountForOtherPopovers ?? true;\n }\n\n checkIfPopoverIsInsideAnotherPopover(ele: HTMLElement) {\n const otherPopover = ele.closest<HTMLDivElement>('div.euiPopover__panel');\n\n this.popoverHost = otherPopover;\n }\n\n @action\n didInsertPopover(ele: HTMLDivElement): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n\n const fn = (): void => this.onOpenPopover();\n\n scheduleOnce('afterRender', this, fn);\n }\n\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n\n if (this.shouldAccountForOtherPopovers) {\n this.checkIfPopoverIsInsideAnotherPopover(ele);\n }\n\n this.updateFocus();\n }\n\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(\n this,\n () => {\n this.isClosing = false;\n },\n 250\n );\n }\n\n this.prevIsOpen = this.args.isOpen;\n }\n\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n window.removeEventListener('resize', this.positionPopoverFluid);\n this.popoverHost = null;\n this._button = null;\n this.panel = null;\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n\n @action\n onMutation(records: MutationRecord[]): void {\n const waitDuration = getWaitDuration(records);\n\n this.positionPopoverFixed();\n\n performOnFrame(waitDuration, this.positionPopoverFixed);\n }\n\n @action\n positionPopover(allowEnforcePosition: boolean): void {\n if (this.button == null || this.panel == null) return;\n\n let position = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition = undefined;\n\n if (\n allowEnforcePosition &&\n this.isOpenStable &&\n this.openPosition != null\n ) {\n position = this.openPosition;\n forcePosition = true;\n }\n\n // get the position of the element relative to the offsetParent, which could be the document\n function getPos(ele: HTMLElement): [number, number] {\n let currTop = 0;\n let currLeft = 0;\n\n if (ele.offsetParent) {\n do {\n currTop += ele.offsetTop;\n currLeft += ele.offsetLeft;\n } while ((ele = ele.offsetParent as HTMLElement));\n } else {\n currTop = ele.offsetTop;\n currLeft = ele.offsetLeft;\n }\n\n return [currTop, currLeft];\n }\n\n const {\n top,\n left,\n position: foundPosition,\n arrow,\n anchorBoundingBox\n } = findPopoverPosition({\n container: this.args.container,\n host: this.shouldAccountForOtherPopovers ? this.popoverHost : null,\n position,\n forcePosition,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset:\n !this.args.attachToAnchor && this.hasArrow\n ? 16 + (this.args.offset || 0)\n : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp } = this.args;\n const zIndex =\n zIndexProp == null\n ? getElementZIndex(this.button, this.panel) + 2000\n : zIndexProp;\n\n const popoverStyles = {\n top,\n left:\n this.args.attachToAnchor && anchorBoundingBox\n ? anchorBoundingBox.left\n : left,\n zIndex\n };\n\n const willRenderArrow = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles = willRenderArrow ? arrow : undefined;\n const arrowPosition = foundPosition;\n\n this.popoverStyles = popoverStyles;\n this.arrowStyles = arrowStyles;\n this.arrowPosition = arrowPosition;\n this.openPosition = foundPosition;\n }\n\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles } = this;\n\n return arrowStyles\n ? htmlSafe(`top: ${arrowStyles?.top}px; left: ${arrowStyles?.left}px;`)\n : undefined;\n }\n\n get _popoverStyles(): { [i: string]: string } {\n const { panelStyle } = this.args;\n const { popoverStyles } = this;\n\n return {\n ...panelStyle,\n top: `${popoverStyles.top}px`,\n left: `${popoverStyles.left}px`,\n zIndex: `${popoverStyles.zIndex}`\n };\n }\n\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n\n return '-1';\n }\n\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n\n @action\n registerButton(btn: HTMLDivElement): void {\n this._button = btn;\n this.args.buttonRef?.(btn);\n }\n\n @action\n registerPanel(panel: HTMLElement): void {\n this.panel = panel;\n this.args.panelRef?.(panel);\n\n if (panel === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n\n <template>\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClassName\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n {{#if (has-block \"button\")}}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n {{/if}}\n \n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{this.insert}} @portalRef={{@portalRef}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n </template>\n}\n"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus","initialFocusType","document","querySelector","EuiPopoverComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner","args","assert","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","button","_button","insert","shouldAccountForOtherPopovers","popoverHost","sibling","children","position","undefined","n","action","onEscapeKey","event","ekEvent","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","activeElement","focusTarget","tabbableItems","tabbable","panelVisibility","getComputedStyle","opacity","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","delayMatch","Array","slice","call","reduce","element","transitionTimings","getTransitionTimings","Math","max","later","isOpenStable","fn","positionPopoverFixed","scheduleOnce","checkIfPopoverIsInsideAnotherPopover","ele","otherPopover","closest","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","positionPopoverFluid","cancelAnimationFrame","onMutation","records","waitDuration","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition","forcePosition","openPosition","foundPosition","arrow","anchorBoundingBox","findPopoverPosition","container","host","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp","getElementZIndex","popoverStyles","willRenderArrow","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","tabindex","registerButton","btn","buttonRef","registerPanel","panelRef","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eui-switch.js","sources":["../../src/components/eui-switch.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\n\nimport { and, not } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiIcon from './eui-icon.gts';\n\nexport interface EuiSwitchSignature {\n Element: HTMLButtonElement;\n Args: {\n id?: string;\n /**\n * Whether to render the render the text label\n */\n showLabel?: boolean;\n /**\n * Must be a string if `showLabel` prop is true\n */\n label?: string;\n checked: boolean;\n onChange: (event: MouseEvent) => void;\n disabled?: boolean;\n compressed?: boolean;\n type?: 'submit' | 'reset' | 'button';\n\n containerClass?: string;\n isFakeLabelBlock?: boolean;\n };\n Blocks: {\n default: [];\n label: [];\n };\n}\n\nexport default class EuiSwitch extends Component<EuiSwitchSignature> {\n @action\n onClick(e: MouseEvent): void {\n if (this.args.disabled) {\n return;\n }\n\n (e.target as HTMLInputElement).checked = !this.args.checked;\n\n this.args.onChange?.(e);\n }\n\n <template>\n {{#let\n (argOrDefault @type \"button\")\n (argOrDefault @showLabel true)\n (argOrDefault @id (randomId))\n (randomId)\n (and (has-block \"label\") (not (argOrDefault @isFakeLabelBlock false)))\n as |type showLabel switchId labelId hasLabelBlock|\n }}\n {{#let\n (classNames\n (if @compressed \"euiSwitch--compressed\") \"euiSwitch\" @containerClass\n )\n as |classes|\n }}\n <div class={{classes}}>\n <button\n type={{type}}\n id={{switchId}}\n aria-checked={{if @checked \"true\" \"false\"}}\n class=\"euiSwitch__button\"\n role=\"switch\"\n aria-label={{if (not showLabel) @label}}\n aria-labelledby={{if showLabel labelId undefined}}\n disabled={{@disabled}}\n ...attributes\n {{on \"click\" this.onClick}}\n >\n <span class=\"euiSwitch__body\">\n <span class=\"euiSwitch__thumb\"></span>\n <span class=\"euiSwitch__track\">\n {{#unless @compressed}}\n <EuiIcon\n @type=\"cross\"\n @size=\"m\"\n @iconClasses=\"euiSwitch__icon\"\n />\n <EuiIcon\n @type=\"check\"\n @size=\"m\"\n @iconClasses=\"euiSwitch__icon euiSwitch__icon--checked\"\n />\n {{/unless}}\n </span>\n </span>\n </button>\n {{#if showLabel}}\n {{! template-lint-disable}}\n <span\n class=\"euiSwitch__label\"\n id={{labelId}}\n {{on \"click\" this.onClick}}\n >\n {{#if hasLabelBlock}}\n {{yield to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </span>\n {{! template-lint-enable}}\n {{/if}}\n </div>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["EuiSwitch","Component","onClick","e","args","disabled","target","checked","onChange","n","prototype","action","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","randomId","and","not","classNames","on","EuiIcon"],"mappings":";;;;;;;;;;;;AAsCe,MAAMA,kBAAkBC,SAAU,CAAA;EAE/CC,OAAAA,CAAQC,CAAa,EAAQ;AAC3B,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAE;AACtB,MAAA;AACF;IAECF,CAAE,CAAAG,MAAM,CAAsBC,OAAO,GAAG,CAAC,IAAI,CAACH,IAAI,CAACG,OAAO;AAE3D,IAAA,IAAI,CAACH,IAAI,CAACI,QAAQ,GAAGL,CAAA,CAAA;AACvB;AAAA,EAAA;IAAAM,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CATCC,MAAA,CAAA,CAAA;AAAA;AAWD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAgEA,wmDAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,UAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-switch.js","sources":["../../src/components/eui-switch.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\n\nimport { and, not } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiIcon from './eui-icon.gts';\n\nexport interface EuiSwitchSignature {\n Element: HTMLButtonElement;\n Args: {\n id?: string;\n /**\n * Whether to render the render the text label\n */\n showLabel?: boolean;\n /**\n * Must be a string if `showLabel` prop is true\n */\n label?: string;\n checked: boolean;\n onChange?: (event: MouseEvent) => void;\n disabled?: boolean;\n compressed?: boolean;\n type?: 'submit' | 'reset' | 'button';\n\n containerClass?: string;\n isFakeLabelBlock?: boolean;\n };\n Blocks: {\n default: [];\n label: [];\n };\n}\n\nexport default class EuiSwitch extends Component<EuiSwitchSignature> {\n @action\n onClick(e: MouseEvent): void {\n if (this.args.disabled) {\n return;\n }\n\n (e.target as HTMLInputElement).checked = !this.args.checked;\n\n this.args.onChange?.(e);\n }\n\n <template>\n {{#let\n (argOrDefault @type \"button\")\n (argOrDefault @showLabel true)\n (argOrDefault @id (randomId))\n (randomId)\n (and (has-block \"label\") (not (argOrDefault @isFakeLabelBlock false)))\n as |type showLabel switchId labelId hasLabelBlock|\n }}\n {{#let\n (classNames\n (if @compressed \"euiSwitch--compressed\") \"euiSwitch\" @containerClass\n )\n as |classes|\n }}\n <div class={{classes}}>\n <button\n type={{type}}\n id={{switchId}}\n aria-checked={{if @checked \"true\" \"false\"}}\n class=\"euiSwitch__button\"\n role=\"switch\"\n aria-label={{if (not showLabel) @label}}\n aria-labelledby={{if showLabel labelId undefined}}\n disabled={{@disabled}}\n ...attributes\n {{on \"click\" this.onClick}}\n >\n <span class=\"euiSwitch__body\">\n <span class=\"euiSwitch__thumb\"></span>\n <span class=\"euiSwitch__track\">\n {{#unless @compressed}}\n <EuiIcon\n @type=\"cross\"\n @size=\"m\"\n @iconClasses=\"euiSwitch__icon\"\n />\n <EuiIcon\n @type=\"check\"\n @size=\"m\"\n @iconClasses=\"euiSwitch__icon euiSwitch__icon--checked\"\n />\n {{/unless}}\n </span>\n </span>\n </button>\n {{#if showLabel}}\n {{! template-lint-disable}}\n <span\n class=\"euiSwitch__label\"\n id={{labelId}}\n {{on \"click\" this.onClick}}\n >\n {{#if hasLabelBlock}}\n {{yield to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </span>\n {{! template-lint-enable}}\n {{/if}}\n </div>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["EuiSwitch","Component","onClick","e","args","disabled","target","checked","onChange","n","prototype","action","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","randomId","and","not","classNames","on","EuiIcon"],"mappings":";;;;;;;;;;;;AAsCe,MAAMA,kBAAkBC,SAAU,CAAA;EAE/CC,OAAAA,CAAQC,CAAa,EAAQ;AAC3B,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAE;AACtB,MAAA;AACF;IAECF,CAAE,CAAAG,MAAM,CAAsBC,OAAO,GAAG,CAAC,IAAI,CAACH,IAAI,CAACG,OAAO;AAE3D,IAAA,IAAI,CAACH,IAAI,CAACI,QAAQ,GAAGL,CAAA,CAAA;AACvB;AAAA,EAAA;IAAAM,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CATCC,MAAA,CAAA,CAAA;AAAA;AAWD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAgEA,wmDAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,UAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -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 EuiTextArea = setComponentTemplate(precompileTemplate("\n {{#let (classNames (if @fullWidth \"euiTextArea--fullWidth\") (if @compressed \"euiTextArea--compressed\") componentName=\"EuiTextArea\" resize=(argOrDefault @resize \"vertical\")) (if @rows @rows (if @compressed 3 6)) (argOrDefault @id (randomId)) as |classes definedRows id|}}\n <textarea id={{id}} value={{@value}} class={{classes}} rows={{definedRows}} disabled={{@disabled}} ...attributes {{validatableControl @isInvalid}} {{didInsert (optional @inputRef)}}>\n {{yield}}\n </textarea>\n {{/let}}\n", {
11
+ const EuiTextArea = setComponentTemplate(precompileTemplate("\n {{#let (classNames (if @fullWidth \"euiTextArea--fullWidth\") (if @compressed \"euiTextArea--compressed\") componentName=\"EuiTextArea\" resize=(argOrDefault @resize \"vertical\")) (if @rows @rows (if @compressed 3 6)) (argOrDefault @id (randomId)) as |classes definedRows id|}}\n <textarea id={{id}} value={{@value}} class={{classes}} rows={{definedRows}} disabled={{@disabled}} readonly={{@readOnly}} ...attributes {{validatableControl @isInvalid}} {{didInsert (optional @inputRef)}}>\n {{yield}}\n </textarea>\n {{/let}}\n", {
12
12
  strictMode: true,
13
13
  scope: () => ({
14
14
  classNames,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-text-area.js","sources":["../../src/components/eui-text-area.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\n\nimport type { resizeMapping } from '../utils/css-mappings/eui-text-area.ts';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiTextAreaSignature {\n Element: HTMLTextAreaElement;\n Args: {\n id?: string;\n value?: string;\n fullWidth?: boolean;\n compressed?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n inputRef?: (element: HTMLTextAreaElement | null) => void;\n rows?: number;\n resize?: keyof typeof resizeMapping;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst EuiTextArea: TemplateOnlyComponent<EuiTextAreaSignature> = <template>\n {{#let\n (classNames\n (if @fullWidth \"euiTextArea--fullWidth\")\n (if @compressed \"euiTextArea--compressed\")\n componentName=\"EuiTextArea\"\n resize=(argOrDefault @resize \"vertical\")\n )\n (if @rows @rows (if @compressed 3 6))\n (argOrDefault @id (randomId))\n as |classes definedRows id|\n }}\n <textarea\n id={{id}}\n value={{@value}}\n class={{classes}}\n rows={{definedRows}}\n disabled={{@disabled}}\n ...attributes\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n >\n {{yield}}\n </textarea>\n {{/let}}\n</template>;\n\nexport default EuiTextArea;\n"],"names":["EuiTextArea","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","randomId","validatableControl","didInsert","optional","templateOnly"],"mappings":";;;;;;;;;;AA8BA,MAAMA,WAA2D,GAAAC,oBAAA,CAAAC,kBAAA,CAyBjE,wgBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,kBAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-text-area.js","sources":["../../src/components/eui-text-area.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\n\nimport type { resizeMapping } from '../utils/css-mappings/eui-text-area.ts';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiTextAreaSignature {\n Element: HTMLTextAreaElement;\n Args: {\n id?: string;\n value?: string;\n fullWidth?: boolean;\n compressed?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n inputRef?: (element: HTMLTextAreaElement | null) => void;\n rows?: number;\n resize?: keyof typeof resizeMapping;\n readOnly?: boolean;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst EuiTextArea: TemplateOnlyComponent<EuiTextAreaSignature> = <template>\n {{#let\n (classNames\n (if @fullWidth \"euiTextArea--fullWidth\")\n (if @compressed \"euiTextArea--compressed\")\n componentName=\"EuiTextArea\"\n resize=(argOrDefault @resize \"vertical\")\n )\n (if @rows @rows (if @compressed 3 6))\n (argOrDefault @id (randomId))\n as |classes definedRows id|\n }}\n <textarea\n id={{id}}\n value={{@value}}\n class={{classes}}\n rows={{definedRows}}\n disabled={{@disabled}}\n readonly={{@readOnly}}\n ...attributes\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n >\n {{yield}}\n </textarea>\n {{/let}}\n</template>;\n\nexport default EuiTextArea;\n"],"names":["EuiTextArea","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","randomId","validatableControl","didInsert","optional","templateOnly"],"mappings":";;;;;;;;;;AA+BA,MAAMA,WAA2D,GAAAC,oBAAA,CAAAC,kBAAA,CA0BjE,+hBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,kBAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-eui/core",
3
- "version": "13.0.2",
3
+ "version": "13.0.3",
4
4
  "description": "Ember Components for Elastic UI",
5
5
  "keywords": [
6
6
  "ember-addon",