{"version":3,"file":"commons-app-Subscription.js.8b6f47ce8391153633fb.js","mappings":"0KAwEA,MAAMA,EAAgB,CACpBC,SAAU,EAEVC,IAAK,IAAM,IAEN,SAASC,EAAmBC,EAAOC,GACxC,IAAIC,EACAC,EAAYP,EAWhB,SAASQ,IACHC,EAAaC,eACfD,EAAaC,eAEjB,CAMA,SAASC,IACFL,IACHA,EAAcD,EAAYA,EAAUO,aAAaJ,GAAuBJ,EAAMS,UAAUL,GACxFD,EAnGN,WACE,MAAMO,GAAQ,SACd,IAAIC,EAAQ,KACRC,EAAO,KACX,MAAO,CACLC,QACEF,EAAQ,KACRC,EAAO,IACT,EAEAf,SACEa,GAAM,KACJ,IAAII,EAAWH,EAEf,KAAOG,GACLA,EAASC,WACTD,EAAWA,EAASE,IACtB,GAEJ,EAEAlB,MACE,IAAIK,EAAY,GACZW,EAAWH,EAEf,KAAOG,GACLX,EAAUc,KAAKH,GACfA,EAAWA,EAASE,KAGtB,OAAOb,CACT,EAEAM,UAAUM,GACR,IAAIG,GAAe,EACfJ,EAAWF,EAAO,CACpBG,WACAC,KAAM,KACNG,KAAMP,GASR,OANIE,EAASK,KACXL,EAASK,KAAKH,KAAOF,EAErBH,EAAQG,EAGH,WACAI,GAA0B,OAAVP,IACrBO,GAAe,EAEXJ,EAASE,KACXF,EAASE,KAAKG,KAAOL,EAASK,KAE9BP,EAAOE,EAASK,KAGdL,EAASK,KACXL,EAASK,KAAKH,KAAOF,EAASE,KAE9BL,EAAQG,EAASE,KAErB,CACF,EAGJ,CAiCkBI,GAEhB,CAWA,MAAMf,EAAe,CACnBG,aApCF,SAAsBM,GAEpB,OADAP,IACOJ,EAAUM,UAAUK,EAC7B,EAkCEO,iBAhCF,WACElB,EAAUN,QACZ,EA+BEO,sBACAc,aAxBF,WACE,OAAOI,QAAQpB,EACjB,EAuBEK,eACAgB,eAfF,WACMrB,IACFA,IACAA,OAAcsB,EACdrB,EAAUU,QACVV,EAAYP,EAEhB,EASE6B,aAAc,IAAMtB,GAEtB,OAAOE,CACT,C","sources":["webpack://grfanclub-webview/./node_modules/react-redux/es/utils/Subscription.js"],"sourcesContent":["import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe,\n tryUnsubscribe,\n getListeners: () => listeners\n };\n return subscription;\n}"],"names":["nullListeners","notify","get","createSubscription","store","parentSub","unsubscribe","listeners","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","subscribe","batch","first","last","clear","listener","callback","next","push","isSubscribed","prev","createListenerCollection","notifyNestedSubs","Boolean","tryUnsubscribe","undefined","getListeners"],"sourceRoot":""}