{"version":3,"file":"index.umd.production.min.cjs","sources":["../src/index.ts"],"sourcesContent":["/**\n * Created by user on 2018/4/19/019.\n */\n\nimport { IDictRow } from '@novel-segment/loaders/segment/index';\nimport { IWord } from '@novel-segment/types';\nimport { cloneDeep } from 'lodash';\n\nexport type IOptions = {\n\tautoCjk?: boolean,\n}\n\nexport interface IDICT<T = any>\n{\n\t[key: string]: T,\n}\n\nexport interface IDICT2<T = any>\n{\n\t[key: number]: IDICT<T>,\n}\n\nexport interface ITableDictExistsTable<T>\n{\n\tTABLE?: IDICT<T>,\n\tTABLE2?: any | IDICT2<T>,\n}\n\nexport abstract class AbstractTableDictCore<T>\n{\n\tpublic static type: string;\n\tpublic type: string;\n\n\tpublic TABLE: IDICT<T> = Object.create(null);\n\tpublic TABLE2: any | IDICT2<T> = Object.create(null);\n\n\tpublic options: IOptions;\n\n\tconstructor(type: string, options: IOptions = {}, existsTable?: ITableDictExistsTable<T>, ...argv)\n\t{\n\t\tthis.type = type;\n\n\t\tthis.options = Object.assign({}, this.options, options);\n\n\t\tif (existsTable)\n\t\t{\n\t\t\tif (existsTable.TABLE)\n\t\t\t{\n\t\t\t\tthis.TABLE = existsTable.TABLE;\n\t\t\t}\n\n\t\t\tif (existsTable.TABLE2)\n\t\t\t{\n\t\t\t\tthis.TABLE2 = existsTable.TABLE2;\n\t\t\t}\n\t\t}\n\n\t\tthis._init();\n\t}\n\n\t_init()\n\t{\n\t\tObject.setPrototypeOf(this.TABLE, null);\n\t\tObject.setPrototypeOf(this.TABLE2, null);\n\t}\n\n\tprotected _exists<U extends IWord | IDictRow | string>(data: U, ...argv)\n\t{\n\t\tlet w: string;\n\n\t\tif (typeof data === 'string')\n\t\t{\n\t\t\tw = data;\n\t\t}\n\t\telse if (Array.isArray(data))\n\t\t{\n\t\t\t[w] = data;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t({ w } = data as IWord);\n\t\t}\n\n\t\treturn w\n\t}\n\n\tpublic exists<U extends IWord | IDictRow | string>(data: U, ...argv)\n\t{\n\t\tconst w = this._exists(data);\n\n\t\treturn this.TABLE[w] || null;\n\t}\n\n\tpublic abstract add(data, ...argv): this\n\n\tprotected abstract _add(data, ...argv)\n\n\tpublic remove?(data, ...argv): this\n\tprotected _remove?(data, ...argv)\n\n\tpublic json(...argv): IDICT<T>\n\t{\n\t\treturn cloneDeep(this.TABLE)\n\t}\n\tpublic stringify?(...argv): string\n\n\tpublic size(): number\n\t{\n\t\treturn Object.keys(this.TABLE).length;\n\t}\n}\n\nexport default AbstractTableDictCore;\n"],"names":["AbstractTableDictCore","type","options","existsTable","argv","this","Object","assign","TABLE","TABLE2"],"mappings":";;;;EAMA,MAAAA;;;gBAmEGC,GAAAC,IAAAC,CAAAA,GAAAA,MAAAC;qBAOAC,KAAAH,UAAuBI,OAACC,QAAA,GAAAF,KAAAH,SAAAA,IACzBC,MAUAA,EAAAK,UAWAH,KAAAG,UAA2BA;MAO3BL,EAAAM,WAGFJ,KAAAI;;;;;;;;;;;;;;;;;;;;;;;;;"}