{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./App/keyword/components/keyword-app.tsx","webpack:///./App/keyword/index.tsx","webpack:///./App/keyword/models/keyword-elements.ts"],"names":[],"mappings":"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","file":"keyword-app-bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"keyword-app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([17,\"common\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import * as React from 'react';\r\nimport { IKeywordElement, Alphabet } from '../models/keyword-elements';\r\nimport { Textbox } from '../../global/components/inputs/textbox/textbox';\r\n\r\ninterface IProps {\r\n items: IKeywordElement[];\r\n title: string;\r\n searchButtonText: string;\r\n}\r\n\r\n// Internal state of the component\r\ninterface IState {\r\n loading: boolean;\r\n currentLetter: string;\r\n searchText: string;\r\n inputText: string;\r\n}\r\n\r\nexport class KeywordApp extends React.Component {\r\n state: IState = {\r\n loading: true,\r\n currentLetter: '',\r\n\r\n inputText: '',\r\n searchText: '',\r\n }\r\n\r\n render() {\r\n const { items, title, searchButtonText } = this.props;\r\n\r\n return (\r\n
\r\n

{title}

\r\n
\r\n this.onInputChange(e.currentTarget.value)}\r\n onKeyPress={this.onKeyPress}\r\n isControlled={true}\r\n />\r\n \r\n {searchButtonText}\r\n \r\n
\r\n
\r\n {this.renderAlphabetList()}\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n onSearch = () => {\r\n this.setState(prevState => ({ searchText: prevState.inputText, currentLetter: '' }));\r\n }\r\n\r\n onInputChange = (value: string) => {\r\n this.setState({inputText: value});\r\n }\r\n\r\n onKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.onSearch();\r\n }\r\n }\r\n\r\n renderAlphabetList = () => {\r\n let alphabet = [];\r\n const { currentLetter } = this.state;\r\n for (let item in Alphabet) {\r\n alphabet.push(item);\r\n }\r\n\r\n return alphabet.map(x => this.renderAlphabetCard(x));\r\n }\r\n\r\n renderAlphabetCard = (letter: string) => {\r\n let selected = this.state.currentLetter === letter;\r\n let disabled = !this.props.items.some(x => x.title.charAt(0).toLowerCase() === letter.toLowerCase());\r\n return (\r\n this.onLetterClick(letter)}\r\n disabled={disabled}>\r\n \r\n );\r\n }\r\n\r\n onLetterClick = (letter: string) => {\r\n let currentLetter = this.state.currentLetter === letter ? '' : letter;\r\n this.setState({ currentLetter, searchText: '', inputText: '' });\r\n }\r\n\r\n renderResults = (items: IKeywordElement[]) => {\r\n const { currentLetter, searchText } = this.state;\r\n\r\n if (searchText) {\r\n items = items.filter(x => x.title.toLowerCase().indexOf(searchText.toLowerCase().trim()) !== -1 || this.containsKeyword(x));\r\n }\r\n else if (currentLetter) {\r\n items = items.filter(x => x.title.charAt(0).toLowerCase() === currentLetter.toLowerCase());\r\n }\r\n\r\n return items.map((item, i) => this.renderItem(item, i))\r\n }\r\n\r\n renderItem = (item: IKeywordElement, index: number) => {\r\n return (\r\n
  • \r\n {item.title}\r\n
  • \r\n );\r\n }\r\n\r\n containsKeyword = (item: IKeywordElement) => {\r\n const { searchText } = this.state;\r\n\r\n if (!item.keywords) return false;\r\n\r\n for (let i = 0; i < item.keywords.length; i++) {\r\n if (!item.keywords[i] || item.keywords[i].trim().length === 0) continue;\r\n\r\n if (searchText.toLowerCase().trim().indexOf(item.keywords[i].toLowerCase()) !== -1) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n } \r\n}\r\n\r\n","import * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { IKeywordElement } from './models/keyword-elements'\r\nimport { KeywordApp } from './components/keyword-app';\r\nimport { createRoot } from 'react-dom/client';\r\n\r\n\r\nconst keywordMount = document.getElementById('keyword-app');\r\n\r\nif (keywordMount) {\r\n const root = createRoot(keywordMount); \r\n const title = (window as any).bootstrap.keywordTitle;\r\n const searchButtonText = (window as any).bootstrap.keywordSearchButtonText;\r\n const keywordItems = (window as any).bootstrap.keywordItems as IKeywordElement[];\r\n\r\n root.render(\r\n );\r\n}","\r\nexport interface IKeywordElement {\r\n title: string;\r\n pageLink: string;\r\n keywords: string[];\r\n}\r\n\r\nexport enum Alphabet {\r\n A = 'A',\r\n B = 'B',\r\n C = 'C',\r\n D = 'D',\r\n E = 'E',\r\n F = 'F',\r\n G = 'G',\r\n H = 'H',\r\n I = 'I',\r\n J = 'J',\r\n K = 'K',\r\n L = 'L',\r\n M = 'M',\r\n N = 'N',\r\n O = 'O',\r\n P = 'P',\r\n Q = 'Q',\r\n R = 'R',\r\n S = 'S',\r\n T = 'T',\r\n U = 'U',\r\n V = 'V',\r\n W = 'W',\r\n X = 'X',\r\n Y = 'Y',\r\n Z = 'Z',\r\n}"],"sourceRoot":""}