{
  "type": "Program",
  "body": [
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "NOTIMPLEMENTED",
            "range": [
              7,
              21
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 6
              },
              "end": {
                "line": 2,
                "column": 20
              }
            }
          },
          "init": {
            "type": "Literal",
            "value": "Not implemented.",
            "raw": "'Not implemented.'",
            "range": [
              24,
              42
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 23
              },
              "end": {
                "line": 2,
                "column": 41
              }
            }
          },
          "range": [
            7,
            42
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 6
            },
            "end": {
              "line": 2,
              "column": 41
            }
          }
        }
      ],
      "kind": "const",
      "range": [
        1,
        43
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 42
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Base class defining the interface of a TableFilter feature\n ",
          "range": [
            45,
            114
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 6,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "Feature",
          "range": [
            128,
            135
          ],
          "loc": {
            "start": {
              "line": 7,
              "column": 13
            },
            "end": {
              "line": 7,
              "column": 20
            }
          }
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "constructor",
                "range": [
                  308,
                  319
                ],
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 4
                  },
                  "end": {
                    "line": 13,
                    "column": 15
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "tf",
                    "range": [
                      320,
                      322
                    ],
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 16
                      },
                      "end": {
                        "line": 13,
                        "column": 18
                      }
                    }
                  },
                  {
                    "type": "Identifier",
                    "name": "feature",
                    "range": [
                      324,
                      331
                    ],
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 20
                      },
                      "end": {
                        "line": 13,
                        "column": 27
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              430,
                              434
                            ],
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 8
                              },
                              "end": {
                                "line": 18,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "tf",
                            "range": [
                              435,
                              437
                            ],
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 13
                              },
                              "end": {
                                "line": 18,
                                "column": 15
                              }
                            }
                          },
                          "range": [
                            430,
                            437
                          ],
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 8
                            },
                            "end": {
                              "line": 18,
                              "column": 15
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "tf",
                          "range": [
                            440,
                            442
                          ],
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 18
                            },
                            "end": {
                              "line": 18,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          430,
                          442
                        ],
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 8
                          },
                          "end": {
                            "line": 18,
                            "column": 20
                          }
                        }
                      },
                      "range": [
                        430,
                        443
                      ],
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 8
                        },
                        "end": {
                          "line": 18,
                          "column": 21
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * TableFilter instance\n         * @type {TableFilter}\n         ",
                          "range": [
                            343,
                            421
                          ],
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 8
                            },
                            "end": {
                              "line": 17,
                              "column": 11
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * Feature name\n         * @type {String}\n         ",
                          "range": [
                            453,
                            518
                          ],
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 8
                            },
                            "end": {
                              "line": 23,
                              "column": 11
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              527,
                              531
                            ],
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 8
                              },
                              "end": {
                                "line": 24,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "feature",
                            "range": [
                              532,
                              539
                            ],
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 13
                              },
                              "end": {
                                "line": 24,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            527,
                            539
                          ],
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 8
                            },
                            "end": {
                              "line": 24,
                              "column": 20
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "feature",
                          "range": [
                            542,
                            549
                          ],
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 23
                            },
                            "end": {
                              "line": 24,
                              "column": 30
                            }
                          }
                        },
                        "range": [
                          527,
                          549
                        ],
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 8
                          },
                          "end": {
                            "line": 24,
                            "column": 30
                          }
                        }
                      },
                      "range": [
                        527,
                        550
                      ],
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 8
                        },
                        "end": {
                          "line": 24,
                          "column": 31
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * Feature name\n         * @type {String}\n         ",
                          "range": [
                            453,
                            518
                          ],
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 8
                            },
                            "end": {
                              "line": 23,
                              "column": 11
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * TableFilter feature setting\n         * @type {Boolean}\n         ",
                          "range": [
                            560,
                            641
                          ],
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 29,
                              "column": 11
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              650,
                              654
                            ],
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 8
                              },
                              "end": {
                                "line": 30,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "enabled",
                            "range": [
                              655,
                              662
                            ],
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 13
                              },
                              "end": {
                                "line": 30,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            650,
                            662
                          ],
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 8
                            },
                            "end": {
                              "line": 30,
                              "column": 20
                            }
                          }
                        },
                        "right": {
                          "type": "MemberExpression",
                          "computed": true,
                          "object": {
                            "type": "Identifier",
                            "name": "tf",
                            "range": [
                              665,
                              667
                            ],
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 23
                              },
                              "end": {
                                "line": 30,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "feature",
                            "range": [
                              668,
                              675
                            ],
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 26
                              },
                              "end": {
                                "line": 30,
                                "column": 33
                              }
                            }
                          },
                          "range": [
                            665,
                            676
                          ],
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 23
                            },
                            "end": {
                              "line": 30,
                              "column": 34
                            }
                          }
                        },
                        "range": [
                          650,
                          676
                        ],
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 8
                          },
                          "end": {
                            "line": 30,
                            "column": 34
                          }
                        }
                      },
                      "range": [
                        650,
                        677
                      ],
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 8
                        },
                        "end": {
                          "line": 30,
                          "column": 35
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * TableFilter feature setting\n         * @type {Boolean}\n         ",
                          "range": [
                            560,
                            641
                          ],
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 29,
                              "column": 11
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * TableFilter configuration\n         * @type {Object}\n         ",
                          "range": [
                            687,
                            765
                          ],
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 8
                            },
                            "end": {
                              "line": 35,
                              "column": 11
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              774,
                              778
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 8
                              },
                              "end": {
                                "line": 36,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "config",
                            "range": [
                              779,
                              785
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 13
                              },
                              "end": {
                                "line": 36,
                                "column": 19
                              }
                            }
                          },
                          "range": [
                            774,
                            785
                          ],
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 8
                            },
                            "end": {
                              "line": 36,
                              "column": 19
                            }
                          }
                        },
                        "right": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "tf",
                              "range": [
                                788,
                                790
                              ],
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 22
                                },
                                "end": {
                                  "line": 36,
                                  "column": 24
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "config",
                              "range": [
                                791,
                                797
                              ],
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 25
                                },
                                "end": {
                                  "line": 36,
                                  "column": 31
                                }
                              }
                            },
                            "range": [
                              788,
                              797
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 22
                              },
                              "end": {
                                "line": 36,
                                "column": 31
                              }
                            }
                          },
                          "arguments": [],
                          "range": [
                            788,
                            799
                          ],
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 22
                            },
                            "end": {
                              "line": 36,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          774,
                          799
                        ],
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 8
                          },
                          "end": {
                            "line": 36,
                            "column": 33
                          }
                        }
                      },
                      "range": [
                        774,
                        800
                      ],
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 8
                        },
                        "end": {
                          "line": 36,
                          "column": 34
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * TableFilter configuration\n         * @type {Object}\n         ",
                          "range": [
                            687,
                            765
                          ],
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 8
                            },
                            "end": {
                              "line": 35,
                              "column": 11
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * TableFilter emitter instance\n         * @type {Emitter}\n         ",
                          "range": [
                            810,
                            892
                          ],
                          "loc": {
                            "start": {
                              "line": 38,
                              "column": 8
                            },
                            "end": {
                              "line": 41,
                              "column": 11
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              901,
                              905
                            ],
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 8
                              },
                              "end": {
                                "line": 42,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "emitter",
                            "range": [
                              906,
                              913
                            ],
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 13
                              },
                              "end": {
                                "line": 42,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            901,
                            913
                          ],
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 8
                            },
                            "end": {
                              "line": 42,
                              "column": 20
                            }
                          }
                        },
                        "right": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "tf",
                            "range": [
                              916,
                              918
                            ],
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 23
                              },
                              "end": {
                                "line": 42,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "emitter",
                            "range": [
                              919,
                              926
                            ],
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 26
                              },
                              "end": {
                                "line": 42,
                                "column": 33
                              }
                            }
                          },
                          "range": [
                            916,
                            926
                          ],
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 23
                            },
                            "end": {
                              "line": 42,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          901,
                          926
                        ],
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 8
                          },
                          "end": {
                            "line": 42,
                            "column": 33
                          }
                        }
                      },
                      "range": [
                        901,
                        927
                      ],
                      "loc": {
                        "start": {
                          "line": 42,
                          "column": 8
                        },
                        "end": {
                          "line": 42,
                          "column": 34
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * TableFilter emitter instance\n         * @type {Emitter}\n         ",
                          "range": [
                            810,
                            892
                          ],
                          "loc": {
                            "start": {
                              "line": 38,
                              "column": 8
                            },
                            "end": {
                              "line": 41,
                              "column": 11
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * Field indicating whether Feature is initialized\n         * @type {Boolean}\n         ",
                          "range": [
                            937,
                            1038
                          ],
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 8
                            },
                            "end": {
                              "line": 47,
                              "column": 11
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1047,
                              1051
                            ],
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 8
                              },
                              "end": {
                                "line": 48,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "initialized",
                            "range": [
                              1052,
                              1063
                            ],
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 13
                              },
                              "end": {
                                "line": 48,
                                "column": 24
                              }
                            }
                          },
                          "range": [
                            1047,
                            1063
                          ],
                          "loc": {
                            "start": {
                              "line": 48,
                              "column": 8
                            },
                            "end": {
                              "line": 48,
                              "column": 24
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": false,
                          "raw": "false",
                          "range": [
                            1066,
                            1071
                          ],
                          "loc": {
                            "start": {
                              "line": 48,
                              "column": 27
                            },
                            "end": {
                              "line": 48,
                              "column": 32
                            }
                          }
                        },
                        "range": [
                          1047,
                          1071
                        ],
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 8
                          },
                          "end": {
                            "line": 48,
                            "column": 32
                          }
                        }
                      },
                      "range": [
                        1047,
                        1072
                      ],
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 8
                        },
                        "end": {
                          "line": 48,
                          "column": 33
                        }
                      },
                      "leadingComments": [
                        {
                          "type": "Block",
                          "value": "*\n         * Field indicating whether Feature is initialized\n         * @type {Boolean}\n         ",
                          "range": [
                            937,
                            1038
                          ],
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 8
                            },
                            "end": {
                              "line": 47,
                              "column": 11
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "range": [
                    333,
                    1078
                  ],
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 29
                    },
                    "end": {
                      "line": 49,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  319,
                  1078
                ],
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 15
                  },
                  "end": {
                    "line": 49,
                    "column": 5
                  }
                }
              },
              "kind": "constructor",
              "computed": false,
              "range": [
                308,
                1078
              ],
              "loc": {
                "start": {
                  "line": 13,
                  "column": 4
                },
                "end": {
                  "line": 49,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Creates an instance of Feature\n     * @param {Object} tf TableFilter instance\n     * @param {String} feature Feature name known by TableFilter\n     ",
                  "range": [
                    142,
                    303
                  ],
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 4
                    },
                    "end": {
                      "line": 12,
                      "column": 7
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Initialize the feature\n     ",
                  "range": [
                    1084,
                    1125
                  ],
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 4
                    },
                    "end": {
                      "line": 53,
                      "column": 7
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "init",
                "range": [
                  1130,
                  1134
                ],
                "loc": {
                  "start": {
                    "line": 54,
                    "column": 4
                  },
                  "end": {
                    "line": 54,
                    "column": 8
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ThrowStatement",
                      "argument": {
                        "type": "NewExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "Error",
                          "range": [
                            1157,
                            1162
                          ],
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 18
                            },
                            "end": {
                              "line": 55,
                              "column": 23
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "NOTIMPLEMENTED",
                            "range": [
                              1163,
                              1177
                            ],
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 24
                              },
                              "end": {
                                "line": 55,
                                "column": 38
                              }
                            }
                          }
                        ],
                        "range": [
                          1153,
                          1178
                        ],
                        "loc": {
                          "start": {
                            "line": 55,
                            "column": 14
                          },
                          "end": {
                            "line": 55,
                            "column": 39
                          }
                        }
                      },
                      "range": [
                        1147,
                        1179
                      ],
                      "loc": {
                        "start": {
                          "line": 55,
                          "column": 8
                        },
                        "end": {
                          "line": 55,
                          "column": 40
                        }
                      }
                    }
                  ],
                  "range": [
                    1137,
                    1185
                  ],
                  "loc": {
                    "start": {
                      "line": 54,
                      "column": 11
                    },
                    "end": {
                      "line": 56,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1134,
                  1185
                ],
                "loc": {
                  "start": {
                    "line": 54,
                    "column": 8
                  },
                  "end": {
                    "line": 56,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1130,
                1185
              ],
              "loc": {
                "start": {
                  "line": 54,
                  "column": 4
                },
                "end": {
                  "line": 56,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Initialize the feature\n     ",
                  "range": [
                    1084,
                    1125
                  ],
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 4
                    },
                    "end": {
                      "line": 53,
                      "column": 7
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Reset the feature after being disabled\n     ",
                  "range": [
                    1191,
                    1248
                  ],
                  "loc": {
                    "start": {
                      "line": 58,
                      "column": 4
                    },
                    "end": {
                      "line": 60,
                      "column": 7
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "reset",
                "range": [
                  1253,
                  1258
                ],
                "loc": {
                  "start": {
                    "line": 61,
                    "column": 4
                  },
                  "end": {
                    "line": 61,
                    "column": 9
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1271,
                              1275
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 8
                              },
                              "end": {
                                "line": 62,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "enable",
                            "range": [
                              1276,
                              1282
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 13
                              },
                              "end": {
                                "line": 62,
                                "column": 19
                              }
                            }
                          },
                          "range": [
                            1271,
                            1282
                          ],
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 8
                            },
                            "end": {
                              "line": 62,
                              "column": 19
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          1271,
                          1284
                        ],
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 8
                          },
                          "end": {
                            "line": 62,
                            "column": 21
                          }
                        }
                      },
                      "range": [
                        1271,
                        1285
                      ],
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 8
                        },
                        "end": {
                          "line": 62,
                          "column": 22
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1294,
                              1298
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 8
                              },
                              "end": {
                                "line": 63,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "init",
                            "range": [
                              1299,
                              1303
                            ],
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 13
                              },
                              "end": {
                                "line": 63,
                                "column": 17
                              }
                            }
                          },
                          "range": [
                            1294,
                            1303
                          ],
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 8
                            },
                            "end": {
                              "line": 63,
                              "column": 17
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          1294,
                          1305
                        ],
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 8
                          },
                          "end": {
                            "line": 63,
                            "column": 19
                          }
                        }
                      },
                      "range": [
                        1294,
                        1306
                      ],
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 8
                        },
                        "end": {
                          "line": 63,
                          "column": 20
                        }
                      }
                    }
                  ],
                  "range": [
                    1261,
                    1312
                  ],
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 12
                    },
                    "end": {
                      "line": 64,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1258,
                  1312
                ],
                "loc": {
                  "start": {
                    "line": 61,
                    "column": 9
                  },
                  "end": {
                    "line": 64,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1253,
                1312
              ],
              "loc": {
                "start": {
                  "line": 61,
                  "column": 4
                },
                "end": {
                  "line": 64,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Reset the feature after being disabled\n     ",
                  "range": [
                    1191,
                    1248
                  ],
                  "loc": {
                    "start": {
                      "line": 58,
                      "column": 4
                    },
                    "end": {
                      "line": 60,
                      "column": 7
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Destroy the feature\n     ",
                  "range": [
                    1318,
                    1356
                  ],
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 4
                    },
                    "end": {
                      "line": 68,
                      "column": 7
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "destroy",
                "range": [
                  1361,
                  1368
                ],
                "loc": {
                  "start": {
                    "line": 69,
                    "column": 4
                  },
                  "end": {
                    "line": 69,
                    "column": 11
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ThrowStatement",
                      "argument": {
                        "type": "NewExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "Error",
                          "range": [
                            1391,
                            1396
                          ],
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 18
                            },
                            "end": {
                              "line": 70,
                              "column": 23
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "NOTIMPLEMENTED",
                            "range": [
                              1397,
                              1411
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 24
                              },
                              "end": {
                                "line": 70,
                                "column": 38
                              }
                            }
                          }
                        ],
                        "range": [
                          1387,
                          1412
                        ],
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 14
                          },
                          "end": {
                            "line": 70,
                            "column": 39
                          }
                        }
                      },
                      "range": [
                        1381,
                        1413
                      ],
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 8
                        },
                        "end": {
                          "line": 70,
                          "column": 40
                        }
                      }
                    }
                  ],
                  "range": [
                    1371,
                    1419
                  ],
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 14
                    },
                    "end": {
                      "line": 71,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1368,
                  1419
                ],
                "loc": {
                  "start": {
                    "line": 69,
                    "column": 11
                  },
                  "end": {
                    "line": 71,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1361,
                1419
              ],
              "loc": {
                "start": {
                  "line": 69,
                  "column": 4
                },
                "end": {
                  "line": 71,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Destroy the feature\n     ",
                  "range": [
                    1318,
                    1356
                  ],
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 4
                    },
                    "end": {
                      "line": 68,
                      "column": 7
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Enable the feature\n     ",
                  "range": [
                    1425,
                    1462
                  ],
                  "loc": {
                    "start": {
                      "line": 73,
                      "column": 4
                    },
                    "end": {
                      "line": 75,
                      "column": 7
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "enable",
                "range": [
                  1467,
                  1473
                ],
                "loc": {
                  "start": {
                    "line": 76,
                    "column": 4
                  },
                  "end": {
                    "line": 76,
                    "column": 10
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1486,
                              1490
                            ],
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 8
                              },
                              "end": {
                                "line": 77,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "enabled",
                            "range": [
                              1491,
                              1498
                            ],
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 13
                              },
                              "end": {
                                "line": 77,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            1486,
                            1498
                          ],
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 8
                            },
                            "end": {
                              "line": 77,
                              "column": 20
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": true,
                          "raw": "true",
                          "range": [
                            1501,
                            1505
                          ],
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 23
                            },
                            "end": {
                              "line": 77,
                              "column": 27
                            }
                          }
                        },
                        "range": [
                          1486,
                          1505
                        ],
                        "loc": {
                          "start": {
                            "line": 77,
                            "column": 8
                          },
                          "end": {
                            "line": 77,
                            "column": 27
                          }
                        }
                      },
                      "range": [
                        1486,
                        1506
                      ],
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 8
                        },
                        "end": {
                          "line": 77,
                          "column": 28
                        }
                      }
                    }
                  ],
                  "range": [
                    1476,
                    1512
                  ],
                  "loc": {
                    "start": {
                      "line": 76,
                      "column": 13
                    },
                    "end": {
                      "line": 78,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1473,
                  1512
                ],
                "loc": {
                  "start": {
                    "line": 76,
                    "column": 10
                  },
                  "end": {
                    "line": 78,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1467,
                1512
              ],
              "loc": {
                "start": {
                  "line": 76,
                  "column": 4
                },
                "end": {
                  "line": 78,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Enable the feature\n     ",
                  "range": [
                    1425,
                    1462
                  ],
                  "loc": {
                    "start": {
                      "line": 73,
                      "column": 4
                    },
                    "end": {
                      "line": 75,
                      "column": 7
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Disable the feature\n     ",
                  "range": [
                    1518,
                    1556
                  ],
                  "loc": {
                    "start": {
                      "line": 80,
                      "column": 4
                    },
                    "end": {
                      "line": 82,
                      "column": 7
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "disable",
                "range": [
                  1561,
                  1568
                ],
                "loc": {
                  "start": {
                    "line": 83,
                    "column": 4
                  },
                  "end": {
                    "line": 83,
                    "column": 11
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1581,
                              1585
                            ],
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 8
                              },
                              "end": {
                                "line": 84,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "enabled",
                            "range": [
                              1586,
                              1593
                            ],
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 13
                              },
                              "end": {
                                "line": 84,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            1581,
                            1593
                          ],
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 8
                            },
                            "end": {
                              "line": 84,
                              "column": 20
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": false,
                          "raw": "false",
                          "range": [
                            1596,
                            1601
                          ],
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 23
                            },
                            "end": {
                              "line": 84,
                              "column": 28
                            }
                          }
                        },
                        "range": [
                          1581,
                          1601
                        ],
                        "loc": {
                          "start": {
                            "line": 84,
                            "column": 8
                          },
                          "end": {
                            "line": 84,
                            "column": 28
                          }
                        }
                      },
                      "range": [
                        1581,
                        1602
                      ],
                      "loc": {
                        "start": {
                          "line": 84,
                          "column": 8
                        },
                        "end": {
                          "line": 84,
                          "column": 29
                        }
                      }
                    }
                  ],
                  "range": [
                    1571,
                    1608
                  ],
                  "loc": {
                    "start": {
                      "line": 83,
                      "column": 14
                    },
                    "end": {
                      "line": 85,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1568,
                  1608
                ],
                "loc": {
                  "start": {
                    "line": 83,
                    "column": 11
                  },
                  "end": {
                    "line": 85,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1561,
                1608
              ],
              "loc": {
                "start": {
                  "line": 83,
                  "column": 4
                },
                "end": {
                  "line": 85,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Disable the feature\n     ",
                  "range": [
                    1518,
                    1556
                  ],
                  "loc": {
                    "start": {
                      "line": 80,
                      "column": 4
                    },
                    "end": {
                      "line": 82,
                      "column": 7
                    }
                  }
                }
              ],
              "trailingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Indicate whether the feature is enabled or not\n     * @returns {Boolean}\n     ",
                  "range": [
                    1614,
                    1705
                  ],
                  "loc": {
                    "start": {
                      "line": 87,
                      "column": 4
                    },
                    "end": {
                      "line": 90,
                      "column": 7
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "isEnabled",
                "range": [
                  1710,
                  1719
                ],
                "loc": {
                  "start": {
                    "line": 91,
                    "column": 4
                  },
                  "end": {
                    "line": 91,
                    "column": 13
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "ThisExpression",
                          "range": [
                            1739,
                            1743
                          ],
                          "loc": {
                            "start": {
                              "line": 92,
                              "column": 15
                            },
                            "end": {
                              "line": 92,
                              "column": 19
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "enabled",
                          "range": [
                            1744,
                            1751
                          ],
                          "loc": {
                            "start": {
                              "line": 92,
                              "column": 20
                            },
                            "end": {
                              "line": 92,
                              "column": 27
                            }
                          }
                        },
                        "range": [
                          1739,
                          1751
                        ],
                        "loc": {
                          "start": {
                            "line": 92,
                            "column": 15
                          },
                          "end": {
                            "line": 92,
                            "column": 27
                          }
                        }
                      },
                      "range": [
                        1732,
                        1752
                      ],
                      "loc": {
                        "start": {
                          "line": 92,
                          "column": 8
                        },
                        "end": {
                          "line": 92,
                          "column": 28
                        }
                      }
                    }
                  ],
                  "range": [
                    1722,
                    1758
                  ],
                  "loc": {
                    "start": {
                      "line": 91,
                      "column": 16
                    },
                    "end": {
                      "line": 93,
                      "column": 5
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1719,
                  1758
                ],
                "loc": {
                  "start": {
                    "line": 91,
                    "column": 13
                  },
                  "end": {
                    "line": 93,
                    "column": 5
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1710,
                1758
              ],
              "loc": {
                "start": {
                  "line": 91,
                  "column": 4
                },
                "end": {
                  "line": 93,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n     * Indicate whether the feature is enabled or not\n     * @returns {Boolean}\n     ",
                  "range": [
                    1614,
                    1705
                  ],
                  "loc": {
                    "start": {
                      "line": 87,
                      "column": 4
                    },
                    "end": {
                      "line": 90,
                      "column": 7
                    }
                  }
                }
              ],
              "static": false
            }
          ],
          "range": [
            136,
            1760
          ],
          "loc": {
            "start": {
              "line": 7,
              "column": 21
            },
            "end": {
              "line": 94,
              "column": 1
            }
          }
        },
        "range": [
          122,
          1760
        ],
        "loc": {
          "start": {
            "line": 7,
            "column": 7
          },
          "end": {
            "line": 94,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Base class defining the interface of a TableFilter feature\n ",
            "range": [
              45,
              114
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 0
              },
              "end": {
                "line": 6,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        115,
        1760
      ],
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 94,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Base class defining the interface of a TableFilter feature\n ",
          "range": [
            45,
            114
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 6,
              "column": 3
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    1,
    1760
  ],
  "loc": {
    "start": {
      "line": 2,
      "column": 0
    },
    "end": {
      "line": 94,
      "column": 1
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * Base class defining the interface of a TableFilter feature\n ",
      "range": [
        45,
        114
      ],
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 3
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Creates an instance of Feature\n     * @param {Object} tf TableFilter instance\n     * @param {String} feature Feature name known by TableFilter\n     ",
      "range": [
        142,
        303
      ],
      "loc": {
        "start": {
          "line": 8,
          "column": 4
        },
        "end": {
          "line": 12,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n         * TableFilter instance\n         * @type {TableFilter}\n         ",
      "range": [
        343,
        421
      ],
      "loc": {
        "start": {
          "line": 14,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 11
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n         * Feature name\n         * @type {String}\n         ",
      "range": [
        453,
        518
      ],
      "loc": {
        "start": {
          "line": 20,
          "column": 8
        },
        "end": {
          "line": 23,
          "column": 11
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n         * TableFilter feature setting\n         * @type {Boolean}\n         ",
      "range": [
        560,
        641
      ],
      "loc": {
        "start": {
          "line": 26,
          "column": 8
        },
        "end": {
          "line": 29,
          "column": 11
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n         * TableFilter configuration\n         * @type {Object}\n         ",
      "range": [
        687,
        765
      ],
      "loc": {
        "start": {
          "line": 32,
          "column": 8
        },
        "end": {
          "line": 35,
          "column": 11
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n         * TableFilter emitter instance\n         * @type {Emitter}\n         ",
      "range": [
        810,
        892
      ],
      "loc": {
        "start": {
          "line": 38,
          "column": 8
        },
        "end": {
          "line": 41,
          "column": 11
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n         * Field indicating whether Feature is initialized\n         * @type {Boolean}\n         ",
      "range": [
        937,
        1038
      ],
      "loc": {
        "start": {
          "line": 44,
          "column": 8
        },
        "end": {
          "line": 47,
          "column": 11
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Initialize the feature\n     ",
      "range": [
        1084,
        1125
      ],
      "loc": {
        "start": {
          "line": 51,
          "column": 4
        },
        "end": {
          "line": 53,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Reset the feature after being disabled\n     ",
      "range": [
        1191,
        1248
      ],
      "loc": {
        "start": {
          "line": 58,
          "column": 4
        },
        "end": {
          "line": 60,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Destroy the feature\n     ",
      "range": [
        1318,
        1356
      ],
      "loc": {
        "start": {
          "line": 66,
          "column": 4
        },
        "end": {
          "line": 68,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Enable the feature\n     ",
      "range": [
        1425,
        1462
      ],
      "loc": {
        "start": {
          "line": 73,
          "column": 4
        },
        "end": {
          "line": 75,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Disable the feature\n     ",
      "range": [
        1518,
        1556
      ],
      "loc": {
        "start": {
          "line": 80,
          "column": 4
        },
        "end": {
          "line": 82,
          "column": 7
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n     * Indicate whether the feature is enabled or not\n     * @returns {Boolean}\n     ",
      "range": [
        1614,
        1705
      ],
      "loc": {
        "start": {
          "line": 87,
          "column": 4
        },
        "end": {
          "line": 90,
          "column": 7
        }
      }
    }
  ]
}