diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md
new file mode 100644
index 00000000000000..43ff9a930b974d
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [$$spec](./kibana-plugin-plugins-data-public.field.__spec.md)
+
+## Field.$$spec property
+
+Signature:
+
+```typescript
+$$spec: FieldSpec;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md
similarity index 68%
rename from docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md
rename to docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md
index cf7470c035a533..c3b2ac8d30b5a9 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md
@@ -1,8 +1,8 @@
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [(constructor)](./kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md)
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [(constructor)](./kibana-plugin-plugins-data-public.field._constructor_.md)
-## IndexPatternField.(constructor)
+## Field.(constructor)
Constructs a new instance of the `Field` class
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md
new file mode 100644
index 00000000000000..fcfd7d73c8b0ce
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [aggregatable](./kibana-plugin-plugins-data-public.field.aggregatable.md)
+
+## Field.aggregatable property
+
+Signature:
+
+```typescript
+aggregatable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.count.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.count.md
new file mode 100644
index 00000000000000..4f51d88a3046ed
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.count.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [count](./kibana-plugin-plugins-data-public.field.count.md)
+
+## Field.count property
+
+Signature:
+
+```typescript
+count?: number;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.displayname.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.displayname.md
new file mode 100644
index 00000000000000..0846a7595cf907
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.displayname.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [displayName](./kibana-plugin-plugins-data-public.field.displayname.md)
+
+## Field.displayName property
+
+Signature:
+
+```typescript
+displayName?: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.estypes.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.estypes.md
new file mode 100644
index 00000000000000..efe1bceb43361a
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.estypes.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [esTypes](./kibana-plugin-plugins-data-public.field.estypes.md)
+
+## Field.esTypes property
+
+Signature:
+
+```typescript
+esTypes?: string[];
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.filterable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.filterable.md
new file mode 100644
index 00000000000000..fd7be589e87a79
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.filterable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [filterable](./kibana-plugin-plugins-data-public.field.filterable.md)
+
+## Field.filterable property
+
+Signature:
+
+```typescript
+filterable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.format.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.format.md
new file mode 100644
index 00000000000000..431e043d1fecc6
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.format.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [format](./kibana-plugin-plugins-data-public.field.format.md)
+
+## Field.format property
+
+Signature:
+
+```typescript
+format: any;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.indexpattern.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.indexpattern.md
new file mode 100644
index 00000000000000..59420747e0958e
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.indexpattern.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [indexPattern](./kibana-plugin-plugins-data-public.field.indexpattern.md)
+
+## Field.indexPattern property
+
+Signature:
+
+```typescript
+indexPattern?: IndexPattern;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.lang.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.lang.md
new file mode 100644
index 00000000000000..d51857090356fe
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.lang.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [lang](./kibana-plugin-plugins-data-public.field.lang.md)
+
+## Field.lang property
+
+Signature:
+
+```typescript
+lang?: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.md
new file mode 100644
index 00000000000000..84c22c47a5e2fc
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.md
@@ -0,0 +1,40 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md)
+
+## Field class
+
+Signature:
+
+```typescript
+export declare class Field implements IFieldType
+```
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(indexPattern, spec, shortDotsEnable)](./kibana-plugin-plugins-data-public.field._constructor_.md) | | Constructs a new instance of the Field
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [$$spec](./kibana-plugin-plugins-data-public.field.__spec.md) | | FieldSpec
| |
+| [aggregatable](./kibana-plugin-plugins-data-public.field.aggregatable.md) | | boolean
| |
+| [count](./kibana-plugin-plugins-data-public.field.count.md) | | number
| |
+| [displayName](./kibana-plugin-plugins-data-public.field.displayname.md) | | string
| |
+| [esTypes](./kibana-plugin-plugins-data-public.field.estypes.md) | | string[]
| |
+| [filterable](./kibana-plugin-plugins-data-public.field.filterable.md) | | boolean
| |
+| [format](./kibana-plugin-plugins-data-public.field.format.md) | | any
| |
+| [indexPattern](./kibana-plugin-plugins-data-public.field.indexpattern.md) | | IndexPattern
| |
+| [lang](./kibana-plugin-plugins-data-public.field.lang.md) | | string
| |
+| [name](./kibana-plugin-plugins-data-public.field.name.md) | | string
| |
+| [script](./kibana-plugin-plugins-data-public.field.script.md) | | string
| |
+| [scripted](./kibana-plugin-plugins-data-public.field.scripted.md) | | boolean
| |
+| [searchable](./kibana-plugin-plugins-data-public.field.searchable.md) | | boolean
| |
+| [sortable](./kibana-plugin-plugins-data-public.field.sortable.md) | | boolean
| |
+| [subType](./kibana-plugin-plugins-data-public.field.subtype.md) | | IFieldSubType
| |
+| [type](./kibana-plugin-plugins-data-public.field.type.md) | | string
| |
+| [visualizable](./kibana-plugin-plugins-data-public.field.visualizable.md) | | boolean
| |
+
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md
new file mode 100644
index 00000000000000..d2a9b9b86aefc9
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [name](./kibana-plugin-plugins-data-public.field.name.md)
+
+## Field.name property
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md
new file mode 100644
index 00000000000000..676ff9bdfc35a7
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [script](./kibana-plugin-plugins-data-public.field.script.md)
+
+## Field.script property
+
+Signature:
+
+```typescript
+script?: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md
new file mode 100644
index 00000000000000..1f6c8105e3f618
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [scripted](./kibana-plugin-plugins-data-public.field.scripted.md)
+
+## Field.scripted property
+
+Signature:
+
+```typescript
+scripted?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md
new file mode 100644
index 00000000000000..186d344f503788
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [searchable](./kibana-plugin-plugins-data-public.field.searchable.md)
+
+## Field.searchable property
+
+Signature:
+
+```typescript
+searchable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md
new file mode 100644
index 00000000000000..0cd4b14d0e1e5c
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [sortable](./kibana-plugin-plugins-data-public.field.sortable.md)
+
+## Field.sortable property
+
+Signature:
+
+```typescript
+sortable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md
new file mode 100644
index 00000000000000..bef3b2131fa475
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [subType](./kibana-plugin-plugins-data-public.field.subtype.md)
+
+## Field.subType property
+
+Signature:
+
+```typescript
+subType?: IFieldSubType;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md
new file mode 100644
index 00000000000000..490615edcf097e
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [type](./kibana-plugin-plugins-data-public.field.type.md)
+
+## Field.type property
+
+Signature:
+
+```typescript
+type: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md
new file mode 100644
index 00000000000000..f32a5c456dc5db
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [visualizable](./kibana-plugin-plugins-data-public.field.visualizable.md)
+
+## Field.visualizable property
+
+Signature:
+
+```typescript
+visualizable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md
deleted file mode 100644
index f52a3324af36f7..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [$$spec](./kibana-plugin-plugins-data-public.indexpatternfield.__spec.md)
-
-## IndexPatternField.$$spec property
-
-Signature:
-
-```typescript
-$$spec: FieldSpec;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md
deleted file mode 100644
index 267c8f786b5dd2..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [aggregatable](./kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md)
-
-## IndexPatternField.aggregatable property
-
-Signature:
-
-```typescript
-aggregatable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.count.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.count.md
deleted file mode 100644
index 8e848276f21c4c..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.count.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [count](./kibana-plugin-plugins-data-public.indexpatternfield.count.md)
-
-## IndexPatternField.count property
-
-Signature:
-
-```typescript
-count?: number;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.displayname.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.displayname.md
deleted file mode 100644
index ed9630f92fc975..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.displayname.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [displayName](./kibana-plugin-plugins-data-public.indexpatternfield.displayname.md)
-
-## IndexPatternField.displayName property
-
-Signature:
-
-```typescript
-displayName?: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.estypes.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.estypes.md
deleted file mode 100644
index dec74df099d43a..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.estypes.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [esTypes](./kibana-plugin-plugins-data-public.indexpatternfield.estypes.md)
-
-## IndexPatternField.esTypes property
-
-Signature:
-
-```typescript
-esTypes?: string[];
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.filterable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.filterable.md
deleted file mode 100644
index 4290c4a2f86b3b..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.filterable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [filterable](./kibana-plugin-plugins-data-public.indexpatternfield.filterable.md)
-
-## IndexPatternField.filterable property
-
-Signature:
-
-```typescript
-filterable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.format.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.format.md
deleted file mode 100644
index d5df8ed628cb08..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.format.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [format](./kibana-plugin-plugins-data-public.indexpatternfield.format.md)
-
-## IndexPatternField.format property
-
-Signature:
-
-```typescript
-format: any;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md
deleted file mode 100644
index d1a1ee0905c6e3..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [indexPattern](./kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md)
-
-## IndexPatternField.indexPattern property
-
-Signature:
-
-```typescript
-indexPattern?: IndexPattern;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.lang.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.lang.md
deleted file mode 100644
index f731be8f613cfa..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.lang.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [lang](./kibana-plugin-plugins-data-public.indexpatternfield.lang.md)
-
-## IndexPatternField.lang property
-
-Signature:
-
-```typescript
-lang?: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.md
deleted file mode 100644
index ae458c553421a9..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md)
-
-## IndexPatternField class
-
-Signature:
-
-```typescript
-export declare class Field implements IFieldType
-```
-
-## Constructors
-
-| Constructor | Modifiers | Description |
-| --- | --- | --- |
-| [(constructor)(indexPattern, spec, shortDotsEnable)](./kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md) | | Constructs a new instance of the Field
class |
-
-## Properties
-
-| Property | Modifiers | Type | Description |
-| --- | --- | --- | --- |
-| [$$spec](./kibana-plugin-plugins-data-public.indexpatternfield.__spec.md) | | FieldSpec
| |
-| [aggregatable](./kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md) | | boolean
| |
-| [count](./kibana-plugin-plugins-data-public.indexpatternfield.count.md) | | number
| |
-| [displayName](./kibana-plugin-plugins-data-public.indexpatternfield.displayname.md) | | string
| |
-| [esTypes](./kibana-plugin-plugins-data-public.indexpatternfield.estypes.md) | | string[]
| |
-| [filterable](./kibana-plugin-plugins-data-public.indexpatternfield.filterable.md) | | boolean
| |
-| [format](./kibana-plugin-plugins-data-public.indexpatternfield.format.md) | | any
| |
-| [indexPattern](./kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md) | | IndexPattern
| |
-| [lang](./kibana-plugin-plugins-data-public.indexpatternfield.lang.md) | | string
| |
-| [name](./kibana-plugin-plugins-data-public.indexpatternfield.name.md) | | string
| |
-| [routes](./kibana-plugin-plugins-data-public.indexpatternfield.routes.md) | | Record<string, string>
| |
-| [script](./kibana-plugin-plugins-data-public.indexpatternfield.script.md) | | string
| |
-| [scripted](./kibana-plugin-plugins-data-public.indexpatternfield.scripted.md) | | boolean
| |
-| [searchable](./kibana-plugin-plugins-data-public.indexpatternfield.searchable.md) | | boolean
| |
-| [sortable](./kibana-plugin-plugins-data-public.indexpatternfield.sortable.md) | | boolean
| |
-| [subType](./kibana-plugin-plugins-data-public.indexpatternfield.subtype.md) | | IFieldSubType
| |
-| [type](./kibana-plugin-plugins-data-public.indexpatternfield.type.md) | | string
| |
-| [visualizable](./kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md) | | boolean
| |
-
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md
deleted file mode 100644
index cb24621e732093..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [name](./kibana-plugin-plugins-data-public.indexpatternfield.name.md)
-
-## IndexPatternField.name property
-
-Signature:
-
-```typescript
-name: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.routes.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.routes.md
deleted file mode 100644
index 664a7b7b7ca0e5..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.routes.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [routes](./kibana-plugin-plugins-data-public.indexpatternfield.routes.md)
-
-## IndexPatternField.routes property
-
-Signature:
-
-```typescript
-routes: Record;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md
deleted file mode 100644
index 132ba25a476374..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [script](./kibana-plugin-plugins-data-public.indexpatternfield.script.md)
-
-## IndexPatternField.script property
-
-Signature:
-
-```typescript
-script?: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md
deleted file mode 100644
index 1dd6bc865a75d9..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [scripted](./kibana-plugin-plugins-data-public.indexpatternfield.scripted.md)
-
-## IndexPatternField.scripted property
-
-Signature:
-
-```typescript
-scripted?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md
deleted file mode 100644
index 42f984d851435b..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [searchable](./kibana-plugin-plugins-data-public.indexpatternfield.searchable.md)
-
-## IndexPatternField.searchable property
-
-Signature:
-
-```typescript
-searchable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md
deleted file mode 100644
index 72d225185140be..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [sortable](./kibana-plugin-plugins-data-public.indexpatternfield.sortable.md)
-
-## IndexPatternField.sortable property
-
-Signature:
-
-```typescript
-sortable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md
deleted file mode 100644
index 2d807f8a5739ce..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [subType](./kibana-plugin-plugins-data-public.indexpatternfield.subtype.md)
-
-## IndexPatternField.subType property
-
-Signature:
-
-```typescript
-subType?: IFieldSubType;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md
deleted file mode 100644
index c8483c9b83c9a1..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [type](./kibana-plugin-plugins-data-public.indexpatternfield.type.md)
-
-## IndexPatternField.type property
-
-Signature:
-
-```typescript
-type: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md
deleted file mode 100644
index dd661ae779c117..00000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [visualizable](./kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md)
-
-## IndexPatternField.visualizable property
-
-Signature:
-
-```typescript
-visualizable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md
index 4b7184b7dc151e..478b73f5f85813 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md
@@ -24,5 +24,5 @@ export declare class FieldList extends Array implements IFieldList
| [getByName](./kibana-plugin-plugins-data-public.indexpatternfieldlist.getbyname.md) | | (name: string) => Field | undefined
| |
| [getByType](./kibana-plugin-plugins-data-public.indexpatternfieldlist.getbytype.md) | | (type: string) => any[]
| |
| [remove](./kibana-plugin-plugins-data-public.indexpatternfieldlist.remove.md) | | (field: IFieldType) => void
| |
-| [update](./kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md) | | (field: Field) => void
| |
+| [update](./kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md) | | (field: Record<string, any>) => void
| |
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md
index ca03ec4b728932..d5156ed41e493e 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md
@@ -7,5 +7,5 @@
Signature:
```typescript
-update: (field: Field) => void;
+update: (field: Record) => void;
```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md
index bf29c883e4eb96..3713827f75386d 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md
@@ -11,9 +11,9 @@
| [AggParamType](./kibana-plugin-plugins-data-public.aggparamtype.md) | |
| [AggTypeFieldFilters](./kibana-plugin-plugins-data-public.aggtypefieldfilters.md) | A registry to store which are used to filter down available fields for a specific visualization and . |
| [AggTypeFilters](./kibana-plugin-plugins-data-public.aggtypefilters.md) | A registry to store which are used to filter down available aggregations for a specific visualization and . |
+| [Field](./kibana-plugin-plugins-data-public.field.md) | |
| [FilterManager](./kibana-plugin-plugins-data-public.filtermanager.md) | |
| [IndexPattern](./kibana-plugin-plugins-data-public.indexpattern.md) | |
-| [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) | |
| [IndexPatternFieldList](./kibana-plugin-plugins-data-public.indexpatternfieldlist.md) | |
| [IndexPatternSelect](./kibana-plugin-plugins-data-public.indexpatternselect.md) | |
| [OptionedParamType](./kibana-plugin-plugins-data-public.optionedparamtype.md) | |
diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js
index d8b3196d48fd18..95d6cb6878e532 100644
--- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js
+++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js
@@ -56,7 +56,6 @@ const renderFieldEditor = (
indexPattern={indexPattern}
field={field}
helpers={{
- Field: IndexPatternField,
getConfig,
$http,
fieldFormatEditors,
diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js
index 156f4d5a71e63f..9474c5a0e5112d 100644
--- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js
+++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js
@@ -50,6 +50,8 @@ const TAB_INDEXED_FIELDS = 'indexedFields';
const TAB_SCRIPTED_FIELDS = 'scriptedFields';
const TAB_SOURCE_FILTERS = 'sourceFilters';
+const EDIT_FIELD_PATH = '/management/kibana/index_patterns/{{indexPattern.id}}/field/{{name}}';
+
function updateSourceFiltersTable($scope) {
$scope.$$postDigest(() => {
const node = document.getElementById(REACT_SOURCE_FILTERS_DOM_ELEMENT_ID);
@@ -98,8 +100,8 @@ function updateScriptedFieldsTable($scope) {
fieldFilter={$scope.fieldFilter}
scriptedFieldLanguageFilter={$scope.scriptedFieldLanguageFilter}
helpers={{
- redirectToRoute: (obj, route) => {
- $scope.kbnUrl.changeToRoute(obj, route);
+ redirectToRoute: field => {
+ $scope.kbnUrl.changePath(EDIT_FIELD_PATH, field);
$scope.$apply();
},
getRouteHref: (obj, route) => $scope.kbnUrl.getRouteHref(obj, route),
@@ -141,8 +143,8 @@ function updateIndexedFieldsTable($scope) {
fieldWildcardMatcher={$scope.fieldWildcardMatcher}
indexedFieldTypeFilter={$scope.indexedFieldTypeFilter}
helpers={{
- redirectToRoute: (obj, route) => {
- $scope.kbnUrl.changeToRoute(obj, route);
+ redirectToRoute: field => {
+ $scope.kbnUrl.changePath(EDIT_FIELD_PATH, field);
$scope.$apply();
},
getFieldInfo: $scope.getFieldInfo,
diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap
index e6c81a3f67ec82..db2a032b1e4d9c 100644
--- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap
+++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap
@@ -18,7 +18,6 @@ exports[`IndexedFieldsTable should filter based on the query bar 1`] = `
"indexPattern": undefined,
"info": Array [],
"name": "Elastic",
- "routes": undefined,
"searchable": true,
"type": "name",
},
@@ -46,7 +45,6 @@ exports[`IndexedFieldsTable should filter based on the type filter 1`] = `
"indexPattern": undefined,
"info": Array [],
"name": "timestamp",
- "routes": undefined,
"type": "date",
},
]
@@ -73,7 +71,6 @@ exports[`IndexedFieldsTable should render normally 1`] = `
"indexPattern": undefined,
"info": Array [],
"name": "Elastic",
- "routes": undefined,
"searchable": true,
"type": "name",
},
@@ -84,7 +81,6 @@ exports[`IndexedFieldsTable should render normally 1`] = `
"indexPattern": undefined,
"info": Array [],
"name": "timestamp",
- "routes": undefined,
"type": "date",
},
Object {
@@ -94,7 +90,6 @@ exports[`IndexedFieldsTable should render normally 1`] = `
"indexPattern": undefined,
"info": Array [],
"name": "conflictingField",
- "routes": undefined,
"type": "conflict",
},
]
diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx
index 8e877c4fe8a16e..e7e7a8b89c73d1 100644
--- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx
+++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx
@@ -21,6 +21,7 @@ import React from 'react';
import { shallow } from 'enzyme';
import { IndexPatternField, IIndexPattern } from '../../../../../../../../../plugins/data/public';
import { IndexedFieldsTable } from './indexed_fields_table';
+import { IndexedFieldItem } from './types';
jest.mock('@elastic/eui', () => ({
EuiFlexGroup: 'eui-flex-group',
@@ -37,7 +38,7 @@ jest.mock('./components/table', () => ({
}));
const helpers = {
- redirectToRoute: (obj: any, route: string) => {},
+ redirectToRoute: (field: IndexedFieldItem) => {},
getFieldInfo: () => [],
};
diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx
index 93d5ccf39b2839..650b7fa8c5b16a 100644
--- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx
+++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx
@@ -30,7 +30,7 @@ interface IndexedFieldsTableProps {
fieldFilter?: string;
indexedFieldTypeFilter?: string;
helpers: {
- redirectToRoute: (obj: any, route: string) => void;
+ redirectToRoute: (field: IndexedFieldItem) => void;
getFieldInfo: (indexPattern: IIndexPattern, field: string) => string[];
};
fieldWildcardMatcher: (filters: any[]) => (val: any) => boolean;
@@ -73,7 +73,6 @@ export class IndexedFieldsTable extends Component<
return {
...field,
displayName: field.displayName,
- routes: field.routes,
indexPattern: field.indexPattern,
format: getFieldFormat(indexPattern, field.name),
excluded: fieldWildcardMatch ? fieldWildcardMatch(field.name) : false,
@@ -113,7 +112,7 @@ export class IndexedFieldsTable extends Component<
this.props.helpers.redirectToRoute(field, 'edit')}
+ editField={field => this.props.helpers.redirectToRoute(field)}
/>
);
diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx
index ba044296a693a9..e8dfbd6496057f 100644
--- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx
+++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx
@@ -155,7 +155,7 @@ export class ScriptedFieldsTable extends Component<
this.props.helpers.redirectToRoute(field, 'edit')}
+ editField={field => this.props.helpers.redirectToRoute(field)}
deleteField={this.startDeleteField}
/>
diff --git a/src/legacy/ui/public/field_editor/field_editor.js b/src/legacy/ui/public/field_editor/field_editor.js
index 43461c4c689be6..e90cb110ac3048 100644
--- a/src/legacy/ui/public/field_editor/field_editor.js
+++ b/src/legacy/ui/public/field_editor/field_editor.js
@@ -66,7 +66,7 @@ import { ScriptingHelpFlyout } from './components/scripting_help';
import { FieldFormatEditor } from './components/field_format_editor';
import { FIELD_TYPES_BY_LANG, DEFAULT_FIELD_TYPES } from './constants';
-import { copyField, executeScript, isScriptValid } from './lib';
+import { executeScript, isScriptValid } from './lib';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
@@ -100,7 +100,6 @@ export class FieldEditor extends PureComponent {
indexPattern: PropTypes.object.isRequired,
field: PropTypes.object.isRequired,
helpers: PropTypes.shape({
- Field: PropTypes.func.isRequired,
getConfig: PropTypes.func.isRequired,
$http: PropTypes.func.isRequired,
fieldFormatEditors: PropTypes.object.isRequired,
@@ -111,11 +110,7 @@ export class FieldEditor extends PureComponent {
constructor(props) {
super(props);
- const {
- field,
- indexPattern,
- helpers: { Field },
- } = props;
+ const { field, indexPattern } = props;
this.state = {
isReady: false,
@@ -125,7 +120,7 @@ export class FieldEditor extends PureComponent {
fieldTypes: [],
fieldTypeFormats: [],
existingFieldNames: indexPattern.fields.map(f => f.name),
- field: copyField(field, indexPattern, Field),
+ field: { ...field, format: field.format },
fieldFormatId: undefined,
fieldFormatParams: {},
showScriptingHelp: false,
@@ -730,7 +725,7 @@ export class FieldEditor extends PureComponent {
};
saveField = async () => {
- const field = this.state.field.toActualField();
+ const field = this.state.field;
const { indexPattern } = this.props;
const { fieldFormatId } = this.state;
diff --git a/src/legacy/ui/public/field_editor/lib/__tests__/copy_field.test.js b/src/legacy/ui/public/field_editor/lib/__tests__/copy_field.test.js
deleted file mode 100644
index 2cee45742ab81d..00000000000000
--- a/src/legacy/ui/public/field_editor/lib/__tests__/copy_field.test.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import { copyField } from '../copy_field';
-
-const field = {
- name: 'test_field',
- scripted: true,
- type: 'number',
- lang: 'painless',
-};
-
-describe('copyField', () => {
- it('should copy a field', () => {
- const copiedField = copyField(field, {}, {});
- copiedField.name = 'test_name_change';
-
- // Check that copied field has `toActualField()` method
- expect(typeof copiedField.toActualField).toEqual('function');
-
- // Check that we did not modify the original field object when
- // modifying copied field
- expect(field.toActualField).toEqual(undefined);
- expect(field.name).toEqual('test_field');
-
- expect(copiedField).not.toEqual(field);
- expect(copiedField.name).toEqual('test_name_change');
- expect(copiedField.scripted).toEqual(field.scripted);
- expect(copiedField.type).toEqual(field.type);
- expect(copiedField.lang).toEqual(field.lang);
- });
-});
diff --git a/src/legacy/ui/public/field_editor/lib/copy_field.js b/src/legacy/ui/public/field_editor/lib/copy_field.js
deleted file mode 100644
index bfc1cb8480d5d4..00000000000000
--- a/src/legacy/ui/public/field_editor/lib/copy_field.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import { has } from 'lodash';
-
-/**
- * Fully clones a Field object, so that modifications can be performed on
- * the copy without affecting original field. Field objects contain
- * enumerable and non-eumerable properties that may or may not be writable.
- * The function copies all properties as property descriptors into
- * `newFieldProps`, overrides getter and setter, and returns a new object
- * created from that.
- *
- * @param {object} field - Field object to copy
- * @param {object} indexPattern - index pattern object the field belongs to
- * @param {object} Field - Field object type
- * @return {object} the cloned object
- */
-export const copyField = (field, indexPattern, Field) => {
- const changes = {};
- const newFieldProps = {
- // When we are ready to save the copied field back into the index pattern,
- // we use `toActualField()` to retrieve an actual `Field` type object, using
- // its original properties with our "changes" applied.
- toActualField: {
- value: () => {
- return new Field(indexPattern, {
- ...field.$$spec,
- ...changes,
- });
- },
- },
- };
-
- // Index pattern `Field` objects are created with custom property
- // descriptors using `ObjDefine`.
- //
- // Each property of a `Field` type object could be enumerable/non-enumerable,
- // writable/not writable, configurable/not configurable, and have custom
- // getter and setter. We can't use the original `field` object directly for
- // creating a new field or editing a new field, since we need all the
- // properties to be editable.
- //
- // A normal copy of `field` (i.e. `const newField = { ...field }`) will only
- // copy enumerable properties and copy each property's descriptors (not
- // writable, etc).
- //
- // So we copy `field`'s **property descriptors** into `newFieldProps`
- // and modify them so that they are "writable" with a getter/setter that
- // stores and retrieves changes into/from another object (`changes`).
- Object.getOwnPropertyNames(field).forEach(function(prop) {
- const desc = Object.getOwnPropertyDescriptor(field, prop);
-
- newFieldProps[prop] = {
- enumerable: desc.enumerable,
- get: function() {
- return has(changes, prop) ? changes[prop] : field[prop];
- },
- set: function(v) {
- changes[prop] = v;
- },
- };
- });
-
- return Object.create(null, newFieldProps);
-};
diff --git a/src/legacy/ui/public/field_editor/lib/index.js b/src/legacy/ui/public/field_editor/lib/index.js
index c74bb0cc2ef8ab..c9dd9d03b74f7b 100644
--- a/src/legacy/ui/public/field_editor/lib/index.js
+++ b/src/legacy/ui/public/field_editor/lib/index.js
@@ -17,5 +17,4 @@
* under the License.
*/
-export { copyField } from './copy_field';
export { executeScript, isScriptValid } from './validate_script';
diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts
index b62b728beca35f..7a93a42400c18f 100644
--- a/src/plugins/data/public/index.ts
+++ b/src/plugins/data/public/index.ts
@@ -255,6 +255,7 @@ export {
AggregationRestrictions as IndexPatternAggRestrictions,
// TODO: exported only in stub_index_pattern test. Move into data plugin and remove export.
FieldList as IndexPatternFieldList,
+ Field,
} from './index_patterns';
export {
diff --git a/src/plugins/data/public/index_patterns/fields/field.ts b/src/plugins/data/public/index_patterns/fields/field.ts
index 03a5b61f9b116b..0fb92393d56f71 100644
--- a/src/plugins/data/public/index_patterns/fields/field.ts
+++ b/src/plugins/data/public/index_patterns/fields/field.ts
@@ -46,9 +46,6 @@ export class Field implements IFieldType {
displayName?: string;
indexPattern?: IndexPattern;
format: any;
- routes: Record = {
- edit: '/management/kibana/index_patterns/{{indexPattern.id}}/field/{{name}}',
- };
$$spec: FieldSpec;
constructor(
@@ -147,7 +144,3 @@ export class Field implements IFieldType {
return obj.create();
}
}
-
-Field.prototype.routes = {
- edit: '/management/kibana/index_patterns/{{indexPattern.id}}/field/{{name}}',
-};
diff --git a/src/plugins/data/public/index_patterns/fields/field_list.ts b/src/plugins/data/public/index_patterns/fields/field_list.ts
index 03214a8c96427a..d6067280fd7b67 100644
--- a/src/plugins/data/public/index_patterns/fields/field_list.ts
+++ b/src/plugins/data/public/index_patterns/fields/field_list.ts
@@ -70,11 +70,12 @@ export class FieldList extends Array implements IFieldList {
this.splice(fieldIndex, 1);
};
- update = (field: Field) => {
- const index = this.findIndex(f => f.name === field.name);
- this.splice(index, 1, field);
- this.setByName(field);
- this.removeByGroup(field);
- this.setByGroup(field);
+ update = (field: FieldSpec) => {
+ const newField = new Field(this.indexPattern, field, this.shortDotsEnable);
+ const index = this.findIndex(f => f.name === newField.name);
+ this.splice(index, 1, newField);
+ this.setByName(newField);
+ this.removeByGroup(newField);
+ this.setByGroup(newField);
};
}
diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md
index 78659720fe09a7..f4ee93360585ac 100644
--- a/src/plugins/data/public/public.api.md
+++ b/src/plugins/data/public/public.api.md
@@ -460,6 +460,53 @@ export interface FetchOptions {
searchStrategyId?: string;
}
+// Warning: (ae-missing-release-tag) "Field" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
+//
+// @public (undocumented)
+class Field implements IFieldType {
+ // Warning: (ae-forgotten-export) The symbol "FieldSpec" needs to be exported by the entry point index.d.ts
+ //
+ // (undocumented)
+ $$spec: FieldSpec;
+ constructor(indexPattern: IndexPattern, spec: FieldSpec | Field, shortDotsEnable?: boolean);
+ // (undocumented)
+ aggregatable?: boolean;
+ // (undocumented)
+ count?: number;
+ // (undocumented)
+ displayName?: string;
+ // (undocumented)
+ esTypes?: string[];
+ // (undocumented)
+ filterable?: boolean;
+ // (undocumented)
+ format: any;
+ // (undocumented)
+ indexPattern?: IndexPattern;
+ // (undocumented)
+ lang?: string;
+ // (undocumented)
+ name: string;
+ // (undocumented)
+ script?: string;
+ // (undocumented)
+ scripted?: boolean;
+ // (undocumented)
+ searchable?: boolean;
+ // (undocumented)
+ sortable?: boolean;
+ // (undocumented)
+ subType?: IFieldSubType;
+ // (undocumented)
+ type: string;
+ // (undocumented)
+ visualizable?: boolean;
+}
+
+export { Field }
+
+export { Field as IndexPatternField }
+
// Warning: (ae-missing-release-tag) "FieldFormatConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
@@ -836,19 +883,19 @@ export class IndexPattern implements IIndexPattern {
}[];
};
// (undocumented)
- getFieldByName(name: string): IndexPatternField | void;
+ getFieldByName(name: string): Field | void;
// (undocumented)
getIndex(): string;
// (undocumented)
- getNonScriptedFields(): IndexPatternField[];
+ getNonScriptedFields(): Field[];
// (undocumented)
- getScriptedFields(): IndexPatternField[];
+ getScriptedFields(): Field[];
// (undocumented)
getSourceFiltering(): {
excludes: any[];
};
// (undocumented)
- getTimeField(): IndexPatternField | undefined;
+ getTimeField(): Field | undefined;
// (undocumented)
id?: string;
// (undocumented)
@@ -931,66 +978,21 @@ export interface IndexPatternAttributes {
typeMeta: string;
}
-// Warning: (ae-missing-release-tag) "Field" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
-//
-// @public (undocumented)
-export class IndexPatternField implements IFieldType {
- // Warning: (ae-forgotten-export) The symbol "FieldSpec" needs to be exported by the entry point index.d.ts
- //
- // (undocumented)
- $$spec: FieldSpec;
- constructor(indexPattern: IndexPattern, spec: FieldSpec | IndexPatternField, shortDotsEnable?: boolean);
- // (undocumented)
- aggregatable?: boolean;
- // (undocumented)
- count?: number;
- // (undocumented)
- displayName?: string;
- // (undocumented)
- esTypes?: string[];
- // (undocumented)
- filterable?: boolean;
- // (undocumented)
- format: any;
- // (undocumented)
- indexPattern?: IndexPattern;
- // (undocumented)
- lang?: string;
- // (undocumented)
- name: string;
- // (undocumented)
- routes: Record;
- // (undocumented)
- script?: string;
- // (undocumented)
- scripted?: boolean;
- // (undocumented)
- searchable?: boolean;
- // (undocumented)
- sortable?: boolean;
- // (undocumented)
- subType?: IFieldSubType;
- // (undocumented)
- type: string;
- // (undocumented)
- visualizable?: boolean;
-}
-
// Warning: (ae-missing-release-tag) "FieldList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
-export class IndexPatternFieldList extends Array implements IFieldList {
+export class IndexPatternFieldList extends Array implements IFieldList {
constructor(indexPattern: IndexPattern, specs?: FieldSpec[], shortDotsEnable?: boolean);
// (undocumented)
add: (field: Record) => void;
// (undocumented)
- getByName: (name: string) => IndexPatternField | undefined;
+ getByName: (name: string) => Field | undefined;
// (undocumented)
getByType: (type: string) => any[];
// (undocumented)
remove: (field: IFieldType) => void;
// (undocumented)
- update: (field: IndexPatternField) => void;
+ update: (field: Record) => void;
}
// Warning: (ae-missing-release-tag) "indexPatterns" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
@@ -1886,21 +1888,21 @@ export type TSearchStrategyProvider = (context: ISearc
// src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "flattenHitWrapper" needs to be exported by the entry point index.d.ts
// src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "getRoutes" needs to be exported by the entry point index.d.ts
// src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "formatHitProvider" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:387:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:390:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:399:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:404:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:408:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts
-// src/plugins/data/public/index.ts:412:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:391:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:402:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:406:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:410:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts
+// src/plugins/data/public/index.ts:413:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts
// src/plugins/data/public/query/state_sync/connect_to_query_state.ts:33:33 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts
// src/plugins/data/public/query/state_sync/connect_to_query_state.ts:37:1 - (ae-forgotten-export) The symbol "QueryStateChange" needs to be exported by the entry point index.d.ts
// src/plugins/data/public/types.ts:52:5 - (ae-forgotten-export) The symbol "createFiltersFromEvent" needs to be exported by the entry point index.d.ts