@prose-reader/enhancer-refit 1.250.0 → 1.252.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { HTML_ATTRIBUTE_DATA_READER_ID, HTML_ATTRIBUTE_VIEWPORT_CLASSNAME, ReactiveEntity } from '@prose-reader/core';
1
+ import { HTML_ATTRIBUTE_DATA_READER_ID, HTML_PREFIX_VIEWPORT, ReactiveEntity } from '@prose-reader/core';
2
2
  import { combineLatest, map, distinctUntilChanged, tap } from 'rxjs';
3
3
 
4
4
  class Settings extends ReactiveEntity {
@@ -15,7 +15,7 @@ const refitEnhancer = (next) => (options) => {
15
15
  const style = document.createElement("style");
16
16
  style.id = stylesheetId;
17
17
  style.textContent = `
18
- [${HTML_ATTRIBUTE_DATA_READER_ID}] .${HTML_ATTRIBUTE_VIEWPORT_CLASSNAME} {
18
+ [${HTML_ATTRIBUTE_DATA_READER_ID}] [data-${HTML_PREFIX_VIEWPORT}] {
19
19
  margin: auto;
20
20
  width: 100%;
21
21
  max-width: var(${maxWidthCssVariable});
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {\n HTML_ATTRIBUTE_DATA_READER_ID,\n HTML_ATTRIBUTE_VIEWPORT_CLASSNAME,\n ReactiveEntity,\n type Reader,\n} from \"@prose-reader/core\"\nimport {\n combineLatest,\n distinctUntilChanged,\n map,\n type Observable,\n tap,\n} from \"rxjs\"\n\nexport type RefitEnhancerAPI = {\n readonly __PROSE_READER_ENHANCER_REFIT: boolean\n refit: {\n update: (settings: Partial<RefitEnhancerOptions>) => void\n settings$: Observable<RefitEnhancerOptions>\n }\n}\n\nexport type RefitEnhancerOptions = {\n viewportFit?: \"desktop\" | \"tablet\" | \"fit\" | \"custom\"\n customWidth?: number\n}\n\nclass Settings extends ReactiveEntity<RefitEnhancerOptions> {\n update(settings: RefitEnhancerOptions) {\n super.mergeCompare(settings)\n }\n}\n\nexport const refitEnhancer =\n <InheritOptions, InheritOutput extends Reader>(\n next: (options: InheritOptions) => InheritOutput,\n ) =>\n (\n options: InheritOptions & {\n refit?: Partial<RefitEnhancerOptions>\n },\n ): InheritOutput & RefitEnhancerAPI => {\n const { refit = {}, ...rest } = options\n const reader = next(rest as InheritOptions)\n const settings = new Settings(refit)\n const stylesheetId = `prose-reader-refit-${reader.id}`\n const maxWidthCssVariable = `--${stylesheetId}-max-width`\n\n const style = document.createElement(\"style\")\n style.id = stylesheetId\n style.textContent = `\n [${HTML_ATTRIBUTE_DATA_READER_ID}] .${HTML_ATTRIBUTE_VIEWPORT_CLASSNAME} {\n margin: auto;\n width: 100%;\n max-width: var(${maxWidthCssVariable});\n }\n `\n\n document.head.appendChild(style)\n\n const viewportFitSubscription = combineLatest([\n settings.watch([\"viewportFit\", \"customWidth\"]),\n reader.settings.watch([\"computedPageTurnMode\"]),\n ])\n .pipe(\n map(([{ viewportFit, customWidth }, { computedPageTurnMode }]) => {\n if (computedPageTurnMode === \"scrollable\") {\n if (viewportFit === \"desktop\") {\n return \"800px\"\n }\n\n if (viewportFit === \"tablet\") {\n return \"600px\"\n }\n\n if (viewportFit === \"custom\") {\n return `${customWidth ?? 100}%`\n }\n }\n\n return \"100%\"\n }),\n distinctUntilChanged(),\n tap((maxWidth) => {\n document.documentElement.style.setProperty(\n maxWidthCssVariable,\n maxWidth,\n )\n reader.layout()\n }),\n )\n .subscribe()\n\n const destroy = () => {\n viewportFitSubscription.unsubscribe()\n document.head.removeChild(style)\n reader.destroy()\n }\n\n return {\n ...reader,\n __PROSE_READER_ENHANCER_REFIT: true,\n destroy,\n refit: {\n update: settings.update.bind(settings),\n settings$: settings,\n },\n }\n }\n"],"names":[],"mappings":";;;AA2BA,MAAM,iBAAiB,cAAA,CAAqC;AAAA,EAC1D,OAAO,QAAA,EAAgC;AACrC,IAAA,KAAA,CAAM,aAAa,QAAQ,CAAA;AAAA;AAE/B;AAEO,MAAM,aAAA,GACX,CACE,IAAA,KAEF,CACE,OAAA,KAGqC;AACrC,EAAA,MAAM,EAAE,KAAA,GAAQ,EAAC,EAAG,GAAG,MAAK,GAAI,OAAA;AAChC,EAAA,MAAM,MAAA,GAAS,KAAK,IAAsB,CAAA;AAC1C,EAAA,MAAM,QAAA,GAAW,IAAI,QAAA,CAAS,KAAK,CAAA;AACnC,EAAA,MAAM,YAAA,GAAe,CAAA,mBAAA,EAAsB,MAAA,CAAO,EAAE,CAAA,CAAA;AACpD,EAAA,MAAM,mBAAA,GAAsB,KAAK,YAAY,CAAA,UAAA,CAAA;AAE7C,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,EAAA,KAAA,CAAM,EAAA,GAAK,YAAA;AACX,EAAA,KAAA,CAAM,WAAA,GAAc;AAAA,OAAA,EACf,6BAA6B,MAAM,iCAAiC,CAAA;AAAA;AAAA;AAAA,uBAAA,EAGpD,mBAAmB,CAAA;AAAA;AAAA,IAAA,CAAA;AAIxC,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;AAE/B,EAAA,MAAM,0BAA0B,aAAA,CAAc;AAAA,IAC5C,QAAA,CAAS,KAAA,CAAM,CAAC,aAAA,EAAe,aAAa,CAAC,CAAA;AAAA,IAC7C,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,CAAC,sBAAsB,CAAC;AAAA,GAC/C,CAAA,CACE,IAAA;AAAA,IACC,GAAA,CAAI,CAAC,CAAC,EAAE,WAAA,EAAa,aAAY,EAAG,EAAE,oBAAA,EAAsB,CAAA,KAAM;AAChE,MAAA,IAAI,yBAAyB,YAAA,EAAc;AACzC,QAAA,IAAI,gBAAgB,SAAA,EAAW;AAC7B,UAAA,OAAO,OAAA;AAAA;AAGT,QAAA,IAAI,gBAAgB,QAAA,EAAU;AAC5B,UAAA,OAAO,OAAA;AAAA;AAGT,QAAA,IAAI,gBAAgB,QAAA,EAAU;AAC5B,UAAA,OAAO,CAAA,EAAG,eAAe,GAAG,CAAA,CAAA,CAAA;AAAA;AAC9B;AAGF,MAAA,OAAO,MAAA;AAAA,KACR,CAAA;AAAA,IACD,oBAAA,EAAqB;AAAA,IACrB,GAAA,CAAI,CAAC,QAAA,KAAa;AAChB,MAAA,QAAA,CAAS,gBAAgB,KAAA,CAAM,WAAA;AAAA,QAC7B,mBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAA,CAAO,MAAA,EAAO;AAAA,KACf;AAAA,IAEF,SAAA,EAAU;AAEb,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,uBAAA,CAAwB,WAAA,EAAY;AACpC,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;AAC/B,IAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,GACjB;AAEA,EAAA,OAAO;AAAA,IACL,GAAG,MAAA;AAAA,IACH,6BAAA,EAA+B,IAAA;AAAA,IAC/B,OAAA;AAAA,IACA,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;AAAA,MACrC,SAAA,EAAW;AAAA;AACb,GACF;AACF;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {\n HTML_ATTRIBUTE_DATA_READER_ID,\n HTML_PREFIX_VIEWPORT,\n ReactiveEntity,\n type Reader,\n} from \"@prose-reader/core\"\nimport {\n combineLatest,\n distinctUntilChanged,\n map,\n type Observable,\n tap,\n} from \"rxjs\"\n\nexport type RefitEnhancerAPI = {\n readonly __PROSE_READER_ENHANCER_REFIT: boolean\n refit: {\n update: (settings: Partial<RefitEnhancerOptions>) => void\n settings$: Observable<RefitEnhancerOptions>\n }\n}\n\nexport type RefitEnhancerOptions = {\n viewportFit?: \"desktop\" | \"tablet\" | \"fit\" | \"custom\"\n customWidth?: number\n}\n\nclass Settings extends ReactiveEntity<RefitEnhancerOptions> {\n update(settings: RefitEnhancerOptions) {\n super.mergeCompare(settings)\n }\n}\n\nexport const refitEnhancer =\n <InheritOptions, InheritOutput extends Reader>(\n next: (options: InheritOptions) => InheritOutput,\n ) =>\n (\n options: InheritOptions & {\n refit?: Partial<RefitEnhancerOptions>\n },\n ): InheritOutput & RefitEnhancerAPI => {\n const { refit = {}, ...rest } = options\n const reader = next(rest as InheritOptions)\n const settings = new Settings(refit)\n const stylesheetId = `prose-reader-refit-${reader.id}`\n const maxWidthCssVariable = `--${stylesheetId}-max-width`\n\n const style = document.createElement(\"style\")\n style.id = stylesheetId\n style.textContent = `\n [${HTML_ATTRIBUTE_DATA_READER_ID}] [data-${HTML_PREFIX_VIEWPORT}] {\n margin: auto;\n width: 100%;\n max-width: var(${maxWidthCssVariable});\n }\n `\n\n document.head.appendChild(style)\n\n const viewportFitSubscription = combineLatest([\n settings.watch([\"viewportFit\", \"customWidth\"]),\n reader.settings.watch([\"computedPageTurnMode\"]),\n ])\n .pipe(\n map(([{ viewportFit, customWidth }, { computedPageTurnMode }]) => {\n if (computedPageTurnMode === \"scrollable\") {\n if (viewportFit === \"desktop\") {\n return \"800px\"\n }\n\n if (viewportFit === \"tablet\") {\n return \"600px\"\n }\n\n if (viewportFit === \"custom\") {\n return `${customWidth ?? 100}%`\n }\n }\n\n return \"100%\"\n }),\n distinctUntilChanged(),\n tap((maxWidth) => {\n document.documentElement.style.setProperty(\n maxWidthCssVariable,\n maxWidth,\n )\n reader.layout()\n }),\n )\n .subscribe()\n\n const destroy = () => {\n viewportFitSubscription.unsubscribe()\n document.head.removeChild(style)\n reader.destroy()\n }\n\n return {\n ...reader,\n __PROSE_READER_ENHANCER_REFIT: true,\n destroy,\n refit: {\n update: settings.update.bind(settings),\n settings$: settings,\n },\n }\n }\n"],"names":[],"mappings":";;;AA2BA,MAAM,iBAAiB,cAAA,CAAqC;AAAA,EAC1D,OAAO,QAAA,EAAgC;AACrC,IAAA,KAAA,CAAM,aAAa,QAAQ,CAAA;AAAA,EAC7B;AACF;AAEO,MAAM,aAAA,GACX,CACE,IAAA,KAEF,CACE,OAAA,KAGqC;AACrC,EAAA,MAAM,EAAE,KAAA,GAAQ,EAAC,EAAG,GAAG,MAAK,GAAI,OAAA;AAChC,EAAA,MAAM,MAAA,GAAS,KAAK,IAAsB,CAAA;AAC1C,EAAA,MAAM,QAAA,GAAW,IAAI,QAAA,CAAS,KAAK,CAAA;AACnC,EAAA,MAAM,YAAA,GAAe,CAAA,mBAAA,EAAsB,MAAA,CAAO,EAAE,CAAA,CAAA;AACpD,EAAA,MAAM,mBAAA,GAAsB,KAAK,YAAY,CAAA,UAAA,CAAA;AAE7C,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,EAAA,KAAA,CAAM,EAAA,GAAK,YAAA;AACX,EAAA,KAAA,CAAM,WAAA,GAAc;AAAA,OAAA,EACf,6BAA6B,WAAW,oBAAoB,CAAA;AAAA;AAAA;AAAA,uBAAA,EAG5C,mBAAmB,CAAA;AAAA;AAAA,IAAA,CAAA;AAIxC,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;AAE/B,EAAA,MAAM,0BAA0B,aAAA,CAAc;AAAA,IAC5C,QAAA,CAAS,KAAA,CAAM,CAAC,aAAA,EAAe,aAAa,CAAC,CAAA;AAAA,IAC7C,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,CAAC,sBAAsB,CAAC;AAAA,GAC/C,CAAA,CACE,IAAA;AAAA,IACC,GAAA,CAAI,CAAC,CAAC,EAAE,WAAA,EAAa,aAAY,EAAG,EAAE,oBAAA,EAAsB,CAAA,KAAM;AAChE,MAAA,IAAI,yBAAyB,YAAA,EAAc;AACzC,QAAA,IAAI,gBAAgB,SAAA,EAAW;AAC7B,UAAA,OAAO,OAAA;AAAA,QACT;AAEA,QAAA,IAAI,gBAAgB,QAAA,EAAU;AAC5B,UAAA,OAAO,OAAA;AAAA,QACT;AAEA,QAAA,IAAI,gBAAgB,QAAA,EAAU;AAC5B,UAAA,OAAO,CAAA,EAAG,eAAe,GAAG,CAAA,CAAA,CAAA;AAAA,QAC9B;AAAA,MACF;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,CAAC,CAAA;AAAA,IACD,oBAAA,EAAqB;AAAA,IACrB,GAAA,CAAI,CAAC,QAAA,KAAa;AAChB,MAAA,QAAA,CAAS,gBAAgB,KAAA,CAAM,WAAA;AAAA,QAC7B,mBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAA,CAAO,MAAA,EAAO;AAAA,IAChB,CAAC;AAAA,IAEF,SAAA,EAAU;AAEb,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,uBAAA,CAAwB,WAAA,EAAY;AACpC,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;AAC/B,IAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,EACjB,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,GAAG,MAAA;AAAA,IACH,6BAAA,EAA+B,IAAA;AAAA,IAC/B,OAAA;AAAA,IACA,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;AAAA,MACrC,SAAA,EAAW;AAAA;AACb,GACF;AACF;;;;"}
@@ -18,7 +18,7 @@
18
18
  const style = document.createElement("style");
19
19
  style.id = stylesheetId;
20
20
  style.textContent = `
21
- [${core.HTML_ATTRIBUTE_DATA_READER_ID}] .${core.HTML_ATTRIBUTE_VIEWPORT_CLASSNAME} {
21
+ [${core.HTML_ATTRIBUTE_DATA_READER_ID}] [data-${core.HTML_PREFIX_VIEWPORT}] {
22
22
  margin: auto;
23
23
  width: 100%;
24
24
  max-width: var(${maxWidthCssVariable});
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.cjs","sources":["../src/index.ts"],"sourcesContent":["import {\n HTML_ATTRIBUTE_DATA_READER_ID,\n HTML_ATTRIBUTE_VIEWPORT_CLASSNAME,\n ReactiveEntity,\n type Reader,\n} from \"@prose-reader/core\"\nimport {\n combineLatest,\n distinctUntilChanged,\n map,\n type Observable,\n tap,\n} from \"rxjs\"\n\nexport type RefitEnhancerAPI = {\n readonly __PROSE_READER_ENHANCER_REFIT: boolean\n refit: {\n update: (settings: Partial<RefitEnhancerOptions>) => void\n settings$: Observable<RefitEnhancerOptions>\n }\n}\n\nexport type RefitEnhancerOptions = {\n viewportFit?: \"desktop\" | \"tablet\" | \"fit\" | \"custom\"\n customWidth?: number\n}\n\nclass Settings extends ReactiveEntity<RefitEnhancerOptions> {\n update(settings: RefitEnhancerOptions) {\n super.mergeCompare(settings)\n }\n}\n\nexport const refitEnhancer =\n <InheritOptions, InheritOutput extends Reader>(\n next: (options: InheritOptions) => InheritOutput,\n ) =>\n (\n options: InheritOptions & {\n refit?: Partial<RefitEnhancerOptions>\n },\n ): InheritOutput & RefitEnhancerAPI => {\n const { refit = {}, ...rest } = options\n const reader = next(rest as InheritOptions)\n const settings = new Settings(refit)\n const stylesheetId = `prose-reader-refit-${reader.id}`\n const maxWidthCssVariable = `--${stylesheetId}-max-width`\n\n const style = document.createElement(\"style\")\n style.id = stylesheetId\n style.textContent = `\n [${HTML_ATTRIBUTE_DATA_READER_ID}] .${HTML_ATTRIBUTE_VIEWPORT_CLASSNAME} {\n margin: auto;\n width: 100%;\n max-width: var(${maxWidthCssVariable});\n }\n `\n\n document.head.appendChild(style)\n\n const viewportFitSubscription = combineLatest([\n settings.watch([\"viewportFit\", \"customWidth\"]),\n reader.settings.watch([\"computedPageTurnMode\"]),\n ])\n .pipe(\n map(([{ viewportFit, customWidth }, { computedPageTurnMode }]) => {\n if (computedPageTurnMode === \"scrollable\") {\n if (viewportFit === \"desktop\") {\n return \"800px\"\n }\n\n if (viewportFit === \"tablet\") {\n return \"600px\"\n }\n\n if (viewportFit === \"custom\") {\n return `${customWidth ?? 100}%`\n }\n }\n\n return \"100%\"\n }),\n distinctUntilChanged(),\n tap((maxWidth) => {\n document.documentElement.style.setProperty(\n maxWidthCssVariable,\n maxWidth,\n )\n reader.layout()\n }),\n )\n .subscribe()\n\n const destroy = () => {\n viewportFitSubscription.unsubscribe()\n document.head.removeChild(style)\n reader.destroy()\n }\n\n return {\n ...reader,\n __PROSE_READER_ENHANCER_REFIT: true,\n destroy,\n refit: {\n update: settings.update.bind(settings),\n settings$: settings,\n },\n }\n }\n"],"names":["ReactiveEntity","HTML_ATTRIBUTE_DATA_READER_ID","HTML_ATTRIBUTE_VIEWPORT_CLASSNAME","combineLatest","map","distinctUntilChanged","tap"],"mappings":";;;;;;EA2BA,MAAM,iBAAiBA,mBAAA,CAAqC;EAAA,EAC1D,OAAO,QAAA,EAAgC;EACrC,IAAA,KAAA,CAAM,aAAa,QAAQ,CAAA;EAAA;EAE/B;AAEO,QAAM,aAAA,GACX,CACE,IAAA,KAEF,CACE,OAAA,KAGqC;EACrC,EAAA,MAAM,EAAE,KAAA,GAAQ,EAAC,EAAG,GAAG,MAAK,GAAI,OAAA;EAChC,EAAA,MAAM,MAAA,GAAS,KAAK,IAAsB,CAAA;EAC1C,EAAA,MAAM,QAAA,GAAW,IAAI,QAAA,CAAS,KAAK,CAAA;EACnC,EAAA,MAAM,YAAA,GAAe,CAAA,mBAAA,EAAsB,MAAA,CAAO,EAAE,CAAA,CAAA;EACpD,EAAA,MAAM,mBAAA,GAAsB,KAAK,YAAY,CAAA,UAAA,CAAA;EAE7C,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;EAC5C,EAAA,KAAA,CAAM,EAAA,GAAK,YAAA;EACX,EAAA,KAAA,CAAM,WAAA,GAAc;AAAA,OAAA,EACfC,kCAA6B,MAAMC,sCAAiC,CAAA;AAAA;AAAA;AAAA,uBAAA,EAGpD,mBAAmB,CAAA;AAAA;AAAA,IAAA,CAAA;EAIxC,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;EAE/B,EAAA,MAAM,0BAA0BC,kBAAA,CAAc;EAAA,IAC5C,QAAA,CAAS,KAAA,CAAM,CAAC,aAAA,EAAe,aAAa,CAAC,CAAA;EAAA,IAC7C,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,CAAC,sBAAsB,CAAC;EAAA,GAC/C,CAAA,CACE,IAAA;EAAA,IACCC,QAAA,CAAI,CAAC,CAAC,EAAE,WAAA,EAAa,aAAY,EAAG,EAAE,oBAAA,EAAsB,CAAA,KAAM;EAChE,MAAA,IAAI,yBAAyB,YAAA,EAAc;EACzC,QAAA,IAAI,gBAAgB,SAAA,EAAW;EAC7B,UAAA,OAAO,OAAA;EAAA;EAGT,QAAA,IAAI,gBAAgB,QAAA,EAAU;EAC5B,UAAA,OAAO,OAAA;EAAA;EAGT,QAAA,IAAI,gBAAgB,QAAA,EAAU;EAC5B,UAAA,OAAO,CAAA,EAAG,eAAe,GAAG,CAAA,CAAA,CAAA;EAAA;EAC9B;EAGF,MAAA,OAAO,MAAA;EAAA,KACR,CAAA;EAAA,IACDC,yBAAA,EAAqB;EAAA,IACrBC,QAAA,CAAI,CAAC,QAAA,KAAa;EAChB,MAAA,QAAA,CAAS,gBAAgB,KAAA,CAAM,WAAA;EAAA,QAC7B,mBAAA;EAAA,QACA;EAAA,OACF;EACA,MAAA,MAAA,CAAO,MAAA,EAAO;EAAA,KACf;EAAA,IAEF,SAAA,EAAU;EAEb,EAAA,MAAM,UAAU,MAAM;EACpB,IAAA,uBAAA,CAAwB,WAAA,EAAY;EACpC,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;EAC/B,IAAA,MAAA,CAAO,OAAA,EAAQ;EAAA,GACjB;EAEA,EAAA,OAAO;EAAA,IACL,GAAG,MAAA;EAAA,IACH,6BAAA,EAA+B,IAAA;EAAA,IAC/B,OAAA;EAAA,IACA,KAAA,EAAO;EAAA,MACL,MAAA,EAAQ,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;EAAA,MACrC,SAAA,EAAW;EAAA;EACb,GACF;EACF;;;;;;;;;;"}
1
+ {"version":3,"file":"index.umd.cjs","sources":["../src/index.ts"],"sourcesContent":["import {\n HTML_ATTRIBUTE_DATA_READER_ID,\n HTML_PREFIX_VIEWPORT,\n ReactiveEntity,\n type Reader,\n} from \"@prose-reader/core\"\nimport {\n combineLatest,\n distinctUntilChanged,\n map,\n type Observable,\n tap,\n} from \"rxjs\"\n\nexport type RefitEnhancerAPI = {\n readonly __PROSE_READER_ENHANCER_REFIT: boolean\n refit: {\n update: (settings: Partial<RefitEnhancerOptions>) => void\n settings$: Observable<RefitEnhancerOptions>\n }\n}\n\nexport type RefitEnhancerOptions = {\n viewportFit?: \"desktop\" | \"tablet\" | \"fit\" | \"custom\"\n customWidth?: number\n}\n\nclass Settings extends ReactiveEntity<RefitEnhancerOptions> {\n update(settings: RefitEnhancerOptions) {\n super.mergeCompare(settings)\n }\n}\n\nexport const refitEnhancer =\n <InheritOptions, InheritOutput extends Reader>(\n next: (options: InheritOptions) => InheritOutput,\n ) =>\n (\n options: InheritOptions & {\n refit?: Partial<RefitEnhancerOptions>\n },\n ): InheritOutput & RefitEnhancerAPI => {\n const { refit = {}, ...rest } = options\n const reader = next(rest as InheritOptions)\n const settings = new Settings(refit)\n const stylesheetId = `prose-reader-refit-${reader.id}`\n const maxWidthCssVariable = `--${stylesheetId}-max-width`\n\n const style = document.createElement(\"style\")\n style.id = stylesheetId\n style.textContent = `\n [${HTML_ATTRIBUTE_DATA_READER_ID}] [data-${HTML_PREFIX_VIEWPORT}] {\n margin: auto;\n width: 100%;\n max-width: var(${maxWidthCssVariable});\n }\n `\n\n document.head.appendChild(style)\n\n const viewportFitSubscription = combineLatest([\n settings.watch([\"viewportFit\", \"customWidth\"]),\n reader.settings.watch([\"computedPageTurnMode\"]),\n ])\n .pipe(\n map(([{ viewportFit, customWidth }, { computedPageTurnMode }]) => {\n if (computedPageTurnMode === \"scrollable\") {\n if (viewportFit === \"desktop\") {\n return \"800px\"\n }\n\n if (viewportFit === \"tablet\") {\n return \"600px\"\n }\n\n if (viewportFit === \"custom\") {\n return `${customWidth ?? 100}%`\n }\n }\n\n return \"100%\"\n }),\n distinctUntilChanged(),\n tap((maxWidth) => {\n document.documentElement.style.setProperty(\n maxWidthCssVariable,\n maxWidth,\n )\n reader.layout()\n }),\n )\n .subscribe()\n\n const destroy = () => {\n viewportFitSubscription.unsubscribe()\n document.head.removeChild(style)\n reader.destroy()\n }\n\n return {\n ...reader,\n __PROSE_READER_ENHANCER_REFIT: true,\n destroy,\n refit: {\n update: settings.update.bind(settings),\n settings$: settings,\n },\n }\n }\n"],"names":["ReactiveEntity","HTML_ATTRIBUTE_DATA_READER_ID","HTML_PREFIX_VIEWPORT","combineLatest","map","distinctUntilChanged","tap"],"mappings":";;;;;;EA2BA,MAAM,iBAAiBA,mBAAA,CAAqC;EAAA,EAC1D,OAAO,QAAA,EAAgC;EACrC,IAAA,KAAA,CAAM,aAAa,QAAQ,CAAA;EAAA,EAC7B;EACF;AAEO,QAAM,aAAA,GACX,CACE,IAAA,KAEF,CACE,OAAA,KAGqC;EACrC,EAAA,MAAM,EAAE,KAAA,GAAQ,EAAC,EAAG,GAAG,MAAK,GAAI,OAAA;EAChC,EAAA,MAAM,MAAA,GAAS,KAAK,IAAsB,CAAA;EAC1C,EAAA,MAAM,QAAA,GAAW,IAAI,QAAA,CAAS,KAAK,CAAA;EACnC,EAAA,MAAM,YAAA,GAAe,CAAA,mBAAA,EAAsB,MAAA,CAAO,EAAE,CAAA,CAAA;EACpD,EAAA,MAAM,mBAAA,GAAsB,KAAK,YAAY,CAAA,UAAA,CAAA;EAE7C,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;EAC5C,EAAA,KAAA,CAAM,EAAA,GAAK,YAAA;EACX,EAAA,KAAA,CAAM,WAAA,GAAc;AAAA,OAAA,EACfC,kCAA6B,WAAWC,yBAAoB,CAAA;AAAA;AAAA;AAAA,uBAAA,EAG5C,mBAAmB,CAAA;AAAA;AAAA,IAAA,CAAA;EAIxC,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;EAE/B,EAAA,MAAM,0BAA0BC,kBAAA,CAAc;EAAA,IAC5C,QAAA,CAAS,KAAA,CAAM,CAAC,aAAA,EAAe,aAAa,CAAC,CAAA;EAAA,IAC7C,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,CAAC,sBAAsB,CAAC;EAAA,GAC/C,CAAA,CACE,IAAA;EAAA,IACCC,QAAA,CAAI,CAAC,CAAC,EAAE,WAAA,EAAa,aAAY,EAAG,EAAE,oBAAA,EAAsB,CAAA,KAAM;EAChE,MAAA,IAAI,yBAAyB,YAAA,EAAc;EACzC,QAAA,IAAI,gBAAgB,SAAA,EAAW;EAC7B,UAAA,OAAO,OAAA;EAAA,QACT;EAEA,QAAA,IAAI,gBAAgB,QAAA,EAAU;EAC5B,UAAA,OAAO,OAAA;EAAA,QACT;EAEA,QAAA,IAAI,gBAAgB,QAAA,EAAU;EAC5B,UAAA,OAAO,CAAA,EAAG,eAAe,GAAG,CAAA,CAAA,CAAA;EAAA,QAC9B;EAAA,MACF;EAEA,MAAA,OAAO,MAAA;EAAA,IACT,CAAC,CAAA;EAAA,IACDC,yBAAA,EAAqB;EAAA,IACrBC,QAAA,CAAI,CAAC,QAAA,KAAa;EAChB,MAAA,QAAA,CAAS,gBAAgB,KAAA,CAAM,WAAA;EAAA,QAC7B,mBAAA;EAAA,QACA;EAAA,OACF;EACA,MAAA,MAAA,CAAO,MAAA,EAAO;EAAA,IAChB,CAAC;EAAA,IAEF,SAAA,EAAU;EAEb,EAAA,MAAM,UAAU,MAAM;EACpB,IAAA,uBAAA,CAAwB,WAAA,EAAY;EACpC,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,KAAK,CAAA;EAC/B,IAAA,MAAA,CAAO,OAAA,EAAQ;EAAA,EACjB,CAAA;EAEA,EAAA,OAAO;EAAA,IACL,GAAG,MAAA;EAAA,IACH,6BAAA,EAA+B,IAAA;EAAA,IAC/B,OAAA;EAAA,IACA,KAAA,EAAO;EAAA,MACL,MAAA,EAAQ,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;EAAA,MACrC,SAAA,EAAW;EAAA;EACb,GACF;EACF;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/enhancer-refit",
3
- "version": "1.250.0",
3
+ "version": "1.252.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",
@@ -21,5 +21,5 @@
21
21
  "peerDependencies": {
22
22
  "@prose-reader/core": "^1.117.0"
23
23
  },
24
- "gitHead": "24449dafde74ee13fc386a22c76a36d253629ec8"
24
+ "gitHead": "e122abd2a9e5c28b760c3d6f819b6abb12a27bea"
25
25
  }