{"version":3,"sources":["../src/collapse/collapse-panel.ts"],"names":[],"mappings":"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","file":"collapse-panel.js","sourcesContent":["import { SuperComponent, wxComponent, RelationsOptions } from '../common/src/index';\nimport config from '../common/config';\nimport props from './collapse-panel-props';\nimport type { TdCollapsePanelProps } from './type';\n\nconst { prefix } = config;\nconst name = `${prefix}-collapse-panel`;\n\nconst nextTick = () => new Promise((resolve) => setTimeout(resolve, 20));\n\nexport interface CollapsePanelProps extends TdCollapsePanelProps {}\n@wxComponent()\nexport default class CollapsePanel extends SuperComponent {\n externalClasses = [`${prefix}-class`];\n\n relations: RelationsOptions = {\n './collapse': {\n type: 'ancestor',\n linked(target: WechatMiniprogram.Component.TrivialInstance) {\n this.parent = target;\n const { value, defaultExpandAll, expandMutex, expandIcon, disabled } = target.properties;\n const activeValues = defaultExpandAll && !expandMutex ? [this.properties.value] : value;\n\n this.setData({\n ultimateExpandIcon: expandIcon || this.properties.expandIcon,\n ultimateDisabled: this.properties.disabled == null ? disabled : this.properties.disabled,\n });\n this.updateExpanded(activeValues);\n },\n },\n };\n\n properties = props;\n\n data = {\n contentHeight: 0,\n expanded: false,\n classPrefix: name,\n classBasePrefix: prefix,\n ultimateExpandIcon: false,\n ultimateDisabled: false,\n };\n\n methods = {\n set(data: Record) {\n this.setData(data);\n\n return new Promise((resolve) => wx.nextTick(resolve));\n },\n updateExpanded(activeValues) {\n if (!this.parent) {\n return Promise.resolve()\n .then(nextTick)\n .then(() => {\n const data: Record = { transition: true };\n if (this.data.expanded) {\n data.contentHeight = 'auto';\n }\n this.setData(data);\n });\n }\n\n const { value } = this.properties;\n const expanded = activeValues.includes(value);\n\n if (expanded === this.properties.expanded) return;\n\n this.setData({ expanded });\n this.updateStyle(expanded);\n },\n getRect(selector: string, all?: boolean): Promise {\n return new Promise((resolve) => {\n wx.createSelectorQuery()\n .in(this as WechatMiniprogram.Component.TrivialInstance)\n [all ? 'selectAll' : 'select'](selector)\n .boundingClientRect((rect) => {\n if (all && Array.isArray(rect) && rect.length) {\n resolve(rect);\n }\n\n if (!all && rect) {\n resolve(rect);\n }\n })\n .exec();\n });\n },\n updateStyle(expanded: boolean) {\n return this.getRect(`.${name}__content`)\n .then((rect: WechatMiniprogram.BoundingClientRectCallbackResult) => rect.height)\n .then((height: number) => {\n if (expanded) {\n return this.set({\n contentHeight: height ? `${height}px` : 'auto',\n });\n }\n\n return this.set({ contentHeight: `${height}px` })\n .then(nextTick)\n .then(() => this.set({ contentHeight: 0 }));\n });\n },\n\n onClick() {\n const { ultimateDisabled } = this.data;\n const { value } = this.properties;\n\n if (ultimateDisabled) return;\n\n this.parent.switch(value);\n },\n\n onTransitionEnd() {\n if (this.data.expanded) {\n this.setData({\n contentHeight: 'auto',\n });\n }\n },\n };\n}\n"]}