{"version":3,"file":"uncontroll.mjs","names":["isControlled","self","prop","props","undefined","getState","state","Object","entries","reduce","combinedState","key","value","internalSetState","changes","callback","setState","changesObject","nonControlledChanges","newChanges","keys","length"],"sources":["../../src/utils/uncontroll.ts"],"sourcesContent":["import type { Component, PureComponent } from 'react';\n\nexport function isControlled<\n  P extends {},\n  S extends {},\n  C extends Component<P, S> | PureComponent<P, S>,\n>(self: C, prop: keyof P) {\n  return self.props[prop] !== undefined;\n}\n\nexport function getState<C extends Component | PureComponent>(\n  self: C,\n  state: C['state'] = self.state,\n) {\n  return Object.entries(state).reduce((combinedState: any, [key, value]) => {\n    if (isControlled(self, key)) {\n      combinedState[key] = (self as any).props[key];\n    } else {\n      combinedState[key] = value;\n    }\n    return combinedState;\n  }, {} as Partial<C['state']>);\n}\n\nexport function internalSetState<T, C extends Component<any, T> | PureComponent<any, T>>(\n  self: C,\n  changes: Partial<T> | ((combinedState: Partial<T>) => Partial<T>),\n  callback: () => void = () => {},\n) {\n  self.setState(\n    (state) => {\n      const combinedState = getState(self, state);\n      const changesObject = typeof changes === 'function' ? changes(combinedState) : changes;\n\n      const nonControlledChanges = Object.entries(changesObject).reduce(\n        (newChanges, [key, value]) => {\n          if (!isControlled(self, key)) {\n            newChanges[key] = value;\n          }\n          return newChanges;\n        },\n        {} as any,\n      );\n\n      return Object.keys(nonControlledChanges).length ? nonControlledChanges : {};\n    },\n    () => {\n      callback();\n    },\n  );\n}\n"],"mappings":"AAEA,OAAO,SAASA,YAAYA,CAI1BC,IAAO,EAAEC,IAAa,EAAE;EACxB,OAAOD,IAAI,CAACE,KAAK,CAACD,IAAI,CAAC,KAAKE,SAAS;AACvC;AAEA,OAAO,SAASC,QAAQA,CACtBJ,IAAO,EACPK,KAAiB,GAAGL,IAAI,CAACK,KAAK,EAC9B;EACA,OAAOC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,MAAM,CAAC,CAACC,aAAkB,EAAE,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;IACxE,IAAIZ,YAAY,CAACC,IAAI,EAAEU,GAAG,CAAC,EAAE;MAC3BD,aAAa,CAACC,GAAG,CAAC,GAAIV,IAAI,CAASE,KAAK,CAACQ,GAAG,CAAC;IAC/C,CAAC,MAAM;MACLD,aAAa,CAACC,GAAG,CAAC,GAAGC,KAAK;IAC5B;IACA,OAAOF,aAAa;EACtB,CAAC,EAAE,CAAC,CAAwB,CAAC;AAC/B;AAEA,OAAO,SAASG,gBAAgBA,CAC9BZ,IAAO,EACPa,OAAiE,EACjEC,QAAoB,GAAGA,CAAA,KAAM,CAAC,CAAC,EAC/B;EACAd,IAAI,CAACe,QAAQ,CACVV,KAAK,IAAK;IACT,MAAMI,aAAa,GAAGL,QAAQ,CAACJ,IAAI,EAAEK,KAAK,CAAC;IAC3C,MAAMW,aAAa,GAAG,OAAOH,OAAO,KAAK,UAAU,GAAGA,OAAO,CAACJ,aAAa,CAAC,GAAGI,OAAO;IAEtF,MAAMI,oBAAoB,GAAGX,MAAM,CAACC,OAAO,CAACS,aAAa,CAAC,CAACR,MAAM,CAC/D,CAACU,UAAU,EAAE,CAACR,GAAG,EAAEC,KAAK,CAAC,KAAK;MAC5B,IAAI,CAACZ,YAAY,CAACC,IAAI,EAAEU,GAAG,CAAC,EAAE;QAC5BQ,UAAU,CAACR,GAAG,CAAC,GAAGC,KAAK;MACzB;MACA,OAAOO,UAAU;IACnB,CAAC,EACD,CAAC,CACH,CAAC;IAED,OAAOZ,MAAM,CAACa,IAAI,CAACF,oBAAoB,CAAC,CAACG,MAAM,GAAGH,oBAAoB,GAAG,CAAC,CAAC;EAC7E,CAAC,EACD,MAAM;IACJH,QAAQ,CAAC,CAAC;EACZ,CACF,CAAC;AACH","ignoreList":[]}