System.register(["src/client/poid.js", "./bibliography-scheme.js"], function (_export, _context) {
  "use strict";

  var PolymorphicIdentifier, BibliographyScheme;
  return {
    setters: [function (_srcClientPoidJs) {
      PolymorphicIdentifier = _srcClientPoidJs.default;
    }, function (_bibliographySchemeJs) {
      BibliographyScheme = _bibliographySchemeJs.default;
    }],
    execute: function () {
      const __SystemJSRewritingHack = {};
      _recorder_._src_client_protocols_keyword_js = _recorder_._src_client_protocols_keyword_js || {};
      Object.defineProperty(_recorder_._src_client_protocols_keyword_js, "PolymorphicIdentifier", {
        get() {
          return PolymorphicIdentifier;
        },

        set(thisIsVererySecretVariableName) {
          PolymorphicIdentifier = thisIsVererySecretVariableName;
          return true;
        },

        enumerable: true,
        configurable: true
      });
      Object.defineProperty(_recorder_._src_client_protocols_keyword_js, "BibliographyScheme", {
        get() {
          return BibliographyScheme;
        },

        set(thisIsVererySecretVariableName) {
          BibliographyScheme = thisIsVererySecretVariableName;
          return true;
        },

        enumerable: true,
        configurable: true
      });
      class KeywordScheme extends BibliographyScheme {

        get scheme() {
          return "keyword";
        }

        searchEntries(entries, query) {
          var keyword = query;
          return entries.filter(entry => entry.keywords && entry.keywords.find(ea => ea.match(keyword)));
        }
      }

      _export("KeywordScheme", KeywordScheme);

      Object.defineProperty(_recorder_._src_client_protocols_keyword_js, "KeywordScheme", {
        get() {
          return KeywordScheme;
        },

        set(thisIsVererySecretVariableName) {
          _export("KeywordScheme", KeywordScheme = thisIsVererySecretVariableName);

          return true;
        },

        enumerable: true,
        configurable: true
      });
      PolymorphicIdentifier.register(KeywordScheme);
    }
  };
});