{"version":3,"sources":["jsdelivr-header.js","/npm/local-search@1.1.2/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OCNS,eAAgB,WAAe,kBAC/B,aAAc,iCAAoC,wBAClD,kBAAqB,kBAC9B,MAAM,YACF,WAAA,CAAY,GACR,KAAK,OAAS,GACd,KAAK,YAAc,GACnB,KAAK,WAAa,GAClB,KAAK,MAAQ,EAAM,MACnB,KAAK,OAAS,CACV,UAAW,EAAM,WAAa,eAAe,UAC7C,MAAO,EAAM,OAAS,eAAe,OAEzC,KAAK,QAAU,CACnB,CACA,SAAA,CAAU,GACD,IAGL,KAAK,MAAQ,EACjB,CACA,KAAA,GACI,GAAK,KAAK,MAQV,OALA,cAAc,KAAK,QAAS,KAAK,aACjC,KAAK,QAAU,KACf,KAAK,YAAc,GACnB,KAAK,QAAU,EACf,KAAK,WAAa,GACX,OAAO,KAAK,MAAO,KAAK,QAAQ,MAAM,IACzC,KAAK,OAAS,EACP,IAEf,CACA,IAAA,GACI,GAAI,KAAK,QAAU,KAAK,OAAO,QAAU,KAAK,WAAW,OAAS,EAAG,CAEjE,IAAI,EAAS,KAAK,UAAY,KAAK,OAAO,OACpC,KAAK,OAAO,KAAK,QAAU,GAC3B,KAAK,OAAO,KAAK,SAEvB,GADA,cAAc,KAAK,QAAS,KAAK,aAC7B,KAAK,WAAW,OAAS,EACzB,6BAA6B,KAAK,QAAQ,IAAK,KAAK,WAAW,aAE9D,CACD,KAAK,QAAU,EACf,KAAK,YAAc,EAAO,IAAI,UAC9B,MAAM,EAAa,aAAa,KAAK,MAAO,EAAQ,KAAK,OAAO,WAC5D,EAAW,OAAS,IACpB,KAAK,WAAa,EAClB,KAAK,QAET,KAAK,SAAW,CACpB,CAEA,OADA,EAAO,IAAI,eAAe,CAAE,MAAO,YAC5B,CACX,CACA,OAAO,CACX,iBAEW","file":"/npm/local-search@1.1.2/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/local-search@1.1.2/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { DefaultOptions, search, } from './search';\r\nimport { markKeywords, markKeywordsWithUpdateString } from './markKeywords';\r\nimport { restoreMarked } from './restoreMarked';\r\nclass LocalSearch {\r\n    constructor(props) {\r\n        this.result = [];\r\n        this.prevDomText = ''; // 上一次被替换之前的文本\r\n        this.updateList = [];\r\n        this.input = props.input;\r\n        this.config = {\r\n            useRegexp: props.useRegexp || DefaultOptions.useRegexp,\r\n            scope: props.scope || DefaultOptions.scope,\r\n        };\r\n        this.current = 0;\r\n    }\r\n    setSearch(input) {\r\n        if (!input) {\r\n            return;\r\n        }\r\n        this.input = input;\r\n    }\r\n    begin() {\r\n        if (!this.input) {\r\n            return;\r\n        }\r\n        restoreMarked(this.prevDom, this.prevDomText);\r\n        this.prevDom = null;\r\n        this.prevDomText = '';\r\n        this.current = 0;\r\n        this.updateList = [];\r\n        return search(this.input, this.config).then((values) => {\r\n            this.result = values;\r\n            return values;\r\n        });\r\n    }\r\n    next() {\r\n        if (this.current < this.result.length || this.updateList.length > 0) {\r\n            // 最后current将会=index\r\n            let domObj = this.current === this.result.length\r\n                ? this.result[this.current - 1]\r\n                : this.result[this.current];\r\n            restoreMarked(this.prevDom, this.prevDomText);\r\n            if (this.updateList.length > 0) {\r\n                markKeywordsWithUpdateString(this.prevDom.dom, this.updateList.shift());\r\n            }\r\n            else {\r\n                this.prevDom = domObj;\r\n                this.prevDomText = domObj.dom.innerHTML;\r\n                const updateList = markKeywords(this.input, domObj, this.config.useRegexp);\r\n                if (updateList.length > 0) {\r\n                    this.updateList = updateList;\r\n                    this.next();\r\n                }\r\n                this.current += 1;\r\n            }\r\n            domObj.dom.scrollIntoView({ block: 'center' });\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n}\r\nexport default LocalSearch;\r\n"]}