UNPKG

28.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"api.js","sources":["../src/api/utils.ts","../src/api/EyzyNodeAPI.ts","../src/api/EyzyTreeAPI.ts"],"sourcesContent":["import { TreeNode } from '../types/Node'\r\n\r\nexport const hasChild = (node: TreeNode): boolean => {\r\n return node.isBatch || node.child.length > 0\r\n}\r\n\r\nexport const isArray = (obj: any): boolean => {\r\n return Array.isArray(obj)\r\n}\r\n\r\nexport function toArray(value: any): any[] {\r\n return isArray(value) ? value : [value]\r\n}","import { IEyzyNodeAPI, APIOpts, APIResult, APIBooleanResult } from '../types/Api'\r\nimport { TreeComponent, TreeProps, TreeAPI } from '../types/Tree'\r\nimport { TreeNode } from '../types/Node'\r\nimport { State } from '../types/State'\r\nimport { InsertOptions } from '../types/Core'\r\n\r\nimport { hasChild, isArray, toArray } from './utils'\r\n\r\nexport default class EyzyNode implements IEyzyNodeAPI {\r\n _tree: TreeComponent\r\n _props: TreeProps\r\n _state: State\r\n _api: TreeAPI\r\n _nodes: TreeNode[] | TreeNode | null\r\n _opts: APIOpts\r\n\r\n constructor(nodes: TreeNode[] | TreeNode | null, api: TreeAPI, opts: APIOpts) {\r\n this._api = api\r\n this._state = api.state\r\n this._tree = api.tree\r\n this._props = api.tree.props\r\n this._nodes = nodes\r\n this._opts = opts\r\n }\r\n\r\n get length(): number {\r\n const nodes = this._nodes\r\n\r\n return isArray(nodes)\r\n ? (nodes as TreeNode[]).length\r\n : nodes ? 1 : 0\r\n }\r\n\r\n get result(): TreeNode | TreeNode[] | null {\r\n return this._nodes\r\n }\r\n\r\n private isSilence() {\r\n return this._opts && this._opts.silence\r\n }\r\n\r\n private _insert(operator: (node: TreeNode, state: State) => any): PromiseLike<IEyzyNodeAPI> {\r\n if (!this._nodes) {\r\n return Promise.resolve(this)\r\n }\r\n\r\n return operator(this._nodes as TreeNode, this._state).then((node: TreeNode) => {\r\n return new EyzyNode(\r\n node,\r\n this._api, \r\n this._opts\r\n )\r\n })\r\n }\r\n\r\n private _operate<T>(updateState: boolean, operator: (node: TreeNode, state: State) => any): T | null {\r\n const nodes = this._nodes\r\n\r\n if (!nodes || isArray(nodes) && !(nodes as TreeNode[]).length) {\r\n return null\r\n }\r\n\r\n const tree = this._tree\r\n const state = this._state\r\n\r\n if (this.isSilence()) {\r\n tree.silence = true\r\n }\r\n\r\n let result\r\n\r\n if (isArray(nodes)) {\r\n result = (nodes as Array<TreeNode>).map((node: TreeNode) => operator(node, state))\r\n } else {\r\n result = operator(nodes as TreeNode, state)\r\n }\r\n\r\n const arrResult = toArray(result)\r\n\r\n if ('boolean' === typeof arrResult[0] || undefined === arrResult[0]) {\r\n result = arrResult.every(res => false !== res)\r\n }\r\n\r\n if (updateState) {\r\n tree.updateState(state)\r\n }\r\n\r\n if (this.isSilence()) {\r\n tree.silence = false\r\n }\r\n\r\n return result\r\n }\r\n\r\n remove(): APIResult {\r\n return this._operate<APIResult>(false, (node: TreeNode): APIResult => {\r\n return this._api.remove(node.id)\r\n })\r\n }\r\n\r\n empty(): APIBooleanResult {\r\n return this._operate<APIBooleanResult>(true, (node: TreeNode, state: State): any => {\r\n if (!hasChild(node)) {\r\n return false\r\n }\r\n\r\n this._api.core.clearKeys(node, true)\r\n\r\n state.set(node.id, {\r\n child: [],\r\n indeterminate: false,\r\n isBatch: false\r\n })\r\n\r\n if (node.parent) {\r\n this._tree.refreshDefinite(node.id, !!node.checked, false)\r\n }\r\n })\r\n }\r\n\r\n select(extendSelection?: boolean, expandOnSelect?: boolean): APIBooleanResult {\r\n if (undefined === expandOnSelect) {\r\n expandOnSelect = this._props.expandOnSelect\r\n }\r\n\r\n return this._operate<APIBooleanResult>(false, (node: TreeNode): any => {\r\n if (node.selected) {\r\n return false\r\n }\r\n\r\n if (this._props.multiple) {\r\n this._tree.select(node, false, extendSelection)\r\n } else {\r\n this._tree.select(node)\r\n }\r\n\r\n if (expandOnSelect && !node.expanded) {\r\n this._tree.expand(node)\r\n }\r\n })\r\n }\r\n\r\n unselect(): APIBooleanResult {\r\n return this._operate<APIBooleanResult>(false, (node: TreeNode): any => {\r\n if (!node.selected) {\r\n return false\r\n }\r\n\r\n this._tree.unselect(node)\r\n })\r\n }\r\n\r\n check(): APIBooleanResult {\r\n if (!this._props.checkable) {\r\n return false\r\n }\r\n\r\n return this._operate<APIBooleanResult>(false, (node: TreeNode): any => {\r\n if (node.checked) {\r\n return false\r\n }\r\n\r\n this._tree.check(node)\r\n })\r\n }\r\n\r\n uncheck(): APIBooleanResult {\r\n if (!this._props.checkable) {\r\n return false\r\n }\r\n\r\n return this._operate<APIBooleanResult>(false, (node: TreeNode, state: State): any => {\r\n if (!node.checked) {\r\n return false\r\n }\r\n\r\n this._tree.check(node)\r\n })\r\n }\r\n\r\n disable(): APIBooleanResult {\r\n return this._operate<APIBooleanResult>(true, (node: TreeNode, state: State): any => {\r\n if (node.disabled) {\r\n return false\r\n }\r\n\r\n state.set(node.id, 'disabled', true)\r\n })\r\n }\r\n\r\n enable(): APIBooleanResult {\r\n return this._operate<APIBooleanResult>(true, (node: TreeNode, state: State): any => {\r\n if (!node.disabled) {\r\n return false\r\n }\r\n\r\n state.set(node.id, 'disabled', false)\r\n })\r\n }\r\n\r\n disableCheckbox(): APIBooleanResult {\r\n if (!this._props.checkable) {\r\n return false\r\n }\r\n\r\n return this._operate<APIBooleanResult>(true, (node: TreeNode, state: State): any => {\r\n if (node.disabledCheckbox) {\r\n return false\r\n }\r\n\r\n state.set(node.id, 'disabledCheckbox', true)\r\n })\r\n }\r\n\r\n enableCheckbox(): APIBooleanResult {\r\n if (!this._props.checkable) {\r\n return false\r\n }\r\n\r\n return this._operate<APIBooleanResult>(true, (node: TreeNode, state: State): any => {\r\n if (!node.disabledCheckbox) {\r\n return false\r\n }\r\n\r\n state.set(node.id, 'disabledCheckbox', false)\r\n\r\n if (hasChild(node) && this._props.useIndeterminateState) {\r\n const iNode: TreeNode = node.checked\r\n ? node\r\n : node.child[0]\r\n\r\n this._tree.refreshDefinite(iNode.id, !!iNode.checked, false)\r\n }\r\n })\r\n }\r\n\r\n expand(includingDisabled?: boolean): APIBooleanResult {\r\n return this._operate<APIBooleanResult>(false, (node: TreeNode): any => {\r\n if (!hasChild(node) || node.expanded) {\r\n return false\r\n }\r\n\r\n if (node.disabled && !includingDisabled) {\r\n return false\r\n }\r\n\r\n this._tree.expand(node, includingDisabled)\r\n })\r\n }\r\n\r\n collapse(includingDisabled?: boolean): APIBooleanResult {\r\n return this._operate<APIBooleanResult>(false, (node: TreeNode): any => {\r\n if (!hasChild(node) || !node.expanded) {\r\n return false\r\n }\r\n\r\n if (node.disabled && !includingDisabled) {\r\n return false\r\n }\r\n\r\n this._tree.expand(node, includingDisabled)\r\n })\r\n }\r\n\r\n data(key: any, value?: any): any {\r\n if (!this._nodes) {\r\n return null\r\n }\r\n\r\n const nodes = toArray(this._nodes)\r\n\r\n if (1 === nodes.length) {\r\n const result: any = this._api.core.data(nodes[0], key, value)\r\n\r\n if (nodes[0] === result) {\r\n return new EyzyNode(nodes[0], this._api, this._opts)\r\n }\r\n\r\n return result\r\n }\r\n\r\n return nodes.map((node: TreeNode) => this._api.core.data(node, key, value))\r\n }\r\n\r\n hasClass(className: string): APIBooleanResult {\r\n if (!this._nodes) {\r\n return null\r\n }\r\n\r\n return toArray(this._nodes).every((node: TreeNode) => this._api.core.hasClass(node, className))\r\n }\r\n\r\n addClass(classNames: string | string[]): APIBooleanResult {\r\n if (!this._nodes) {\r\n return null\r\n }\r\n\r\n toArray(this._nodes).forEach((node: TreeNode) => this._api.core.addClass(node, classNames))\r\n\r\n return true\r\n }\r\n\r\n removeClass(classNames: string | string[]): APIBooleanResult {\r\n return this._operate<APIBooleanResult>(false, (node: TreeNode) => {\r\n if (!node.className) {\r\n return\r\n }\r\n\r\n const oldClassNames = node.className\r\n const updatedNode = this._api.core.removeClass(node, classNames)\r\n\r\n return oldClassNames !== updatedNode.className\r\n })\r\n }\r\n\r\n append(source: any, opts?: InsertOptions): PromiseLike<IEyzyNodeAPI> {\r\n return this._insert((node: TreeNode) => {\r\n return this._api.core.insert(node, source, opts)\r\n })\r\n }\r\n\r\n prepend(source: any, opts?: InsertOptions): PromiseLike<IEyzyNodeAPI> {\r\n return this._insert((node: TreeNode) => {\r\n return this._api.core.insert(node, source, Object.assign({}, opts, {index: 0}))\r\n })\r\n }\r\n \r\n before(source: any): PromiseLike<IEyzyNodeAPI> {\r\n return this._insert((node: TreeNode) => {\r\n return this._api.core.beside(node, source, 0)\r\n })\r\n }\r\n\r\n after(source: any): PromiseLike<IEyzyNodeAPI> {\r\n return this._insert((node: TreeNode) => {\r\n return this._api.core.beside(node, source, 1)\r\n })\r\n }\r\n\r\n _find<T>(query: any, multiple: boolean): T | null {\r\n const nodes = toArray(this._nodes)\r\n .reduce((result: TreeNode[], node: TreeNode) => {\r\n if (hasChild(node)) {\r\n result.push(...node.child)\r\n }\r\n\r\n return result\r\n }, [])\r\n\r\n return this._api.core.find<T>(nodes, multiple, query)\r\n }\r\n\r\n find(query: any): IEyzyNodeAPI {\r\n return new EyzyNode(this._find<TreeNode>(query, false), this._api, this._opts)\r\n }\r\n\r\n findAll(query: any): IEyzyNodeAPI {\r\n return new EyzyNode(this._find<TreeNode[]>(query, true), this._api, this._opts)\r\n }\r\n}","import { TreeComponent, TreeAPI, CheckboxValueConsistency } from '../types/Tree'\r\nimport { State } from '../types/State'\r\nimport { TreeNode } from '../types/Node'\r\nimport { APIResult, APIBooleanResult, IEyzyTreeAPI, IEyzyNodeAPI, APIOpts } from '../types/Api'\r\nimport { InsertOptions } from '../types/Core'\r\nimport { isArray } from './utils'\r\n\r\nimport EyzyNodeAPI from './EyzyNodeAPI'\r\n\r\nconst call = <T>(api: IEyzyTreeAPI, name: string, query: any, multiple?: boolean, args?: any[]): T | null => {\r\n return api._operate<T>(query, !!multiple, (node: IEyzyNodeAPI) => {\r\n return node[name].apply(node, args || [])\r\n })\r\n}\r\n\r\nexport default class EyzyTreeAPI implements IEyzyTreeAPI {\r\n _tree: TreeComponent\r\n _state: State\r\n _api: TreeAPI\r\n\r\n opts: APIOpts\r\n\r\n constructor(api: TreeAPI, opts?: APIOpts) {\r\n this._tree = api.tree\r\n this._state = api.state\r\n this._api = api\r\n\r\n this.opts = opts || {}\r\n }\r\n\r\n _operate<T>(query: any, multiple: boolean, operator: (node: IEyzyNodeAPI) => any): T | null {\r\n const nodes: TreeNode[] | (TreeNode | null) = multiple\r\n ? this._api.findAll(query)\r\n : this._api.find(query)\r\n\r\n if (!nodes || isArray(nodes) && !(nodes as TreeNode[]).length) {\r\n return null\r\n }\r\n\r\n return operator(new EyzyNodeAPI(nodes, this._api, this.opts))\r\n }\r\n\r\n find(query: any): IEyzyNodeAPI {\r\n return new EyzyNodeAPI(\r\n this._api.find(query), \r\n this._api, \r\n this.opts\r\n )\r\n }\r\n\r\n findAll(query: any): IEyzyNodeAPI {\r\n return new EyzyNodeAPI(\r\n this._api.findAll(query), \r\n this._api, \r\n this.opts\r\n )\r\n }\r\n\r\n remove(query: any, multiple?: boolean): APIResult {\r\n return call<TreeNode | TreeNode[]>(this, 'remove', query, multiple)\r\n }\r\n\r\n empty(query: any, multiple?: boolean): APIBooleanResult {\r\n return call<APIBooleanResult>(this, 'empty', query, multiple)\r\n }\r\n\r\n selected(): IEyzyNodeAPI {\r\n return new EyzyNodeAPI(this._api.selected(), this._api, this.opts)\r\n }\r\n\r\n select(query: any, extendSelection?: boolean, expandOnSelect?: boolean): APIBooleanResult {\r\n return call<APIBooleanResult>(this, 'select', query, false, [extendSelection, expandOnSelect])\r\n }\r\n\r\n unselectAll() {\r\n this._api.unselectAll()\r\n }\r\n\r\n unselect(query: any, multiple?: boolean): boolean {\r\n return call<any>(this, 'unselect', query, multiple)\r\n }\r\n\r\n checked(valueConsistsOf?: CheckboxValueConsistency, ignoreDisabled?: boolean): IEyzyNodeAPI {\r\n return new EyzyNodeAPI(this._api.checked(valueConsistsOf, ignoreDisabled), this._api, this.opts)\r\n }\r\n\r\n check(query: any, multiple?: boolean): boolean {\r\n return call<any>(this, 'check', query, multiple)\r\n }\r\n\r\n uncheck(query: any, multiple?: boolean): boolean {\r\n return call<any>(this, 'uncheck', query, multiple)\r\n }\r\n\r\n uncheckAll() {\r\n this._api.uncheckAll()\r\n }\r\n\r\n disable(query: any, multiple?: boolean): boolean {\r\n return call<any>(this, 'disable', query, multiple)\r\n }\r\n\r\n enable(query: any, multiple?: boolean): boolean {\r\n return call<any>(this, 'enable', query, multiple)\r\n }\r\n\r\n disableCheckbox(query: any, multiple?: boolean): boolean {\r\n return call<any>(this, 'disableCheckbox', query, multiple)\r\n }\r\n\r\n enableCheckbox(query: any, multiple?: boolean): boolean {\r\n return call<any>(this, 'enableCheckbox', query, multiple)\r\n }\r\n\r\n expand(query: any, multiple?: boolean, includingDisabled?: boolean): boolean {\r\n return call<any>(this, 'expand', query, multiple, [includingDisabled])\r\n }\r\n\r\n collapse(query: any, multiple?: boolean, includingDisabled?: boolean): boolean {\r\n return call<any>(this, 'collapse', query, multiple, [includingDisabled])\r\n }\r\n\r\n data(query: any, key: any, value?: any): any {\r\n return call(this, 'data', query, false, [key, value])\r\n }\r\n\r\n hasClass(query: any, className: string): boolean {\r\n return call<any>(this, 'hasClass', query, false, [className])\r\n }\r\n\r\n addClass(query: any, classNames: string | string[], multiple?: boolean): any {\r\n return call(this, 'addClass', query, multiple, [classNames])\r\n }\r\n\r\n removeClass(query: any, classNames: string | string[], multiple?: boolean): any {\r\n return call(this, 'removeClass', query, multiple, [classNames])\r\n }\r\n\r\n append(query: any, source: any, opts?: InsertOptions): PromiseLike<IEyzyNodeAPI> {\r\n return this.find(query).append(source, opts)\r\n }\r\n\r\n prepend(query: any, source: any, opts?: InsertOptions): PromiseLike<IEyzyNodeAPI> {\r\n return this.find(query).prepend(source, opts)\r\n }\r\n\r\n before(query: any, source: any): PromiseLike<IEyzyNodeAPI> {\r\n return this.find(query).before(source)\r\n }\r\n\r\n after(query: any, source: any): PromiseLike<IEyzyNodeAPI> {\r\n return this.find(query).after(source)\r\n }\r\n}"],"names":["EyzyNodeAPI"],"mappings":"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"}
\No newline at end of file