{"version":3,"file":"uncontroll.mjs","names":["isControlled","self","prop","props","undefined","getState","state","arguments","length","Object","entries","reduce","combinedState","_ref","_ref2","_slicedToArray","key","value","internalSetState","changes","callback","setState","changesObject","nonControlledChanges","newChanges","_ref3","_ref4","keys"],"sources":["../src/uncontroll.ts"],"sourcesContent":["import { 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,EAEP;EAAA,IADAK,KAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAGN,IAAI,CAACK,KAAK;EAE9B,OAAOG,MAAM,CAACC,OAAO,CAACJ,KAAK,CAAC,CAACK,MAAM,CAAC,UAACC,aAAkB,EAAAC,IAAA,EAAmB;IAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA;MAAhBG,GAAG,GAAAF,KAAA;MAAEG,KAAK,GAAAH,KAAA;IAClE,IAAId,YAAY,CAACC,IAAI,EAAEe,GAAG,CAAC,EAAE;MAC3BJ,aAAa,CAACI,GAAG,CAAC,GAAIf,IAAI,CAASE,KAAK,CAACa,GAAG,CAAC;IAC/C,CAAC,MAAM;MACLJ,aAAa,CAACI,GAAG,CAAC,GAAGC,KAAK;IAC5B;IACA,OAAOL,aAAa;EACtB,CAAC,EAAE,CAAC,CAAC,CAAwB;AAC/B;AAEA,OAAO,SAASM,gBAAgBA,CAC9BjB,IAAO,EACPkB,OAAiE,EAEjE;EAAA,IADAC,QAAoB,GAAAb,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAG,YAAM,CAAC,CAAC;EAE/BN,IAAI,CAACoB,QAAQ,CACX,UAACf,KAAK,EAAK;IACT,IAAMM,aAAa,GAAGP,QAAQ,CAACJ,IAAI,EAAEK,KAAK,CAAC;IAC3C,IAAMgB,aAAa,GAAG,OAAOH,OAAO,KAAK,UAAU,GAAGA,OAAO,CAACP,aAAa,CAAC,GAAGO,OAAO;IAEtF,IAAMI,oBAAoB,GAAGd,MAAM,CAACC,OAAO,CAACY,aAAa,CAAC,CAACX,MAAM,CAC/D,UAACa,UAAU,EAAAC,KAAA,EAAmB;MAAA,IAAAC,KAAA,GAAAX,cAAA,CAAAU,KAAA;QAAhBT,GAAG,GAAAU,KAAA;QAAET,KAAK,GAAAS,KAAA;MACtB,IAAI,CAAC1B,YAAY,CAACC,IAAI,EAAEe,GAAG,CAAC,EAAE;QAC5BQ,UAAU,CAACR,GAAG,CAAC,GAAGC,KAAK;MACzB;MACA,OAAOO,UAAU;IACnB,CAAC,EACD,CAAC,CAAC,CACH;IAED,OAAOf,MAAM,CAACkB,IAAI,CAACJ,oBAAoB,CAAC,CAACf,MAAM,GAAGe,oBAAoB,GAAG,CAAC,CAAC;EAC7E,CAAC,EACD,YAAM;IACJH,QAAQ,EAAE;EACZ,CAAC,CACF;AACH"}