Jelajahi Sumber

access preact from bundled core

Adam Shaw 6 tahun lalu
induk
melakukan
10eb38e76b

+ 1 - 1
packages-premium

@@ -1 +1 @@
-Subproject commit 271df290cdc23e134735602b12ab1451556197a6
+Subproject commit bc50563f0597a9899f75507e9250497c4dabee08

+ 1 - 1
packages/core/src/Calendar.tsx

@@ -32,7 +32,7 @@ import EventClicking from './interactions/EventClicking'
 import EventHovering from './interactions/EventHovering'
 import StandardTheme from './theme/StandardTheme'
 import ComponentContext, { ComponentContextType, buildContext } from './component/ComponentContext'
-import { render, h, createRef } from 'preact'
+import { render, h, createRef } from './vdom'
 import { TaskRunner, DelayedRunner } from './util/runner'
 import ViewApi from './ViewApi'
 

+ 1 - 1
packages/core/src/CalendarComponent.tsx

@@ -13,7 +13,7 @@ import { DateMarker } from './datelib/marker'
 import { CalendarState } from './reducers/types'
 import { ViewPropsTransformerClass } from './plugin-system'
 import { __assign } from 'tslib'
-import { h, Fragment, createRef } from 'preact'
+import { h, Fragment, createRef } from './vdom'
 import { BaseComponent, subrenderer } from './view-framework-util'
 import { buildDelegationHandler } from './util/dom-event'
 import { capitaliseFirstLetter } from './util/misc'

+ 1 - 1
packages/core/src/Toolbar.tsx

@@ -1,4 +1,4 @@
-import { h, createRef } from 'preact'
+import { h, createRef } from './vdom'
 import { BaseComponent } from './view-framework-util'
 import { ToolbarModel, ToolbarWidget } from './toolbar-parse'
 

+ 2 - 2
packages/core/src/common/DayHeader.tsx

@@ -4,8 +4,8 @@ import { DateMarker } from '../datelib/marker'
 import { DateProfile } from '../DateProfileGenerator'
 import { createFormatter } from '../datelib/formatting'
 import { computeFallbackHeaderFormat } from './table-utils'
-import { VNode, h, createRef } from 'preact'
-import { TableDateCell } from '@fullcalendar/core'
+import { VNode, h, createRef } from '../vdom'
+import TableDateCell from './TableDateCell'
 
 export interface DayHeaderProps {
   dates: DateMarker[]

+ 1 - 1
packages/core/src/common/Scroller.tsx

@@ -1,6 +1,6 @@
 import { computeEdges } from '../util/dom-geom'
 import { ElementScrollController } from './scroll-controller'
-import { Component, h, ComponentChildren } from 'preact'
+import { Component, h, ComponentChildren } from '../vdom'
 import { __assign } from 'tslib'
 
 export interface ScrollbarWidths {

+ 1 - 1
packages/core/src/common/TableDateCell.tsx

@@ -4,7 +4,7 @@ import GotoAnchor from '../component/GotoAnchor'
 import { DateMarker, DAY_IDS } from '../datelib/marker'
 import { DateProfile } from '../DateProfileGenerator'
 import ComponentContext from '../component/ComponentContext'
-import { h } from 'preact'
+import { h } from '../vdom'
 import { __assign } from 'tslib'
 import { DateFormatter } from '../datelib/formatting'
 import { BaseComponent } from '../view-framework-util'

+ 1 - 1
packages/core/src/component/ComponentContext.ts

@@ -5,7 +5,7 @@ import { DateEnv } from '../datelib/env'
 import { parseFieldSpecs } from '../util/misc'
 import { createDuration, Duration } from '../datelib/duration'
 import { PluginHooks } from '../plugin-system'
-import { createContext } from 'preact'
+import { createContext } from '../vdom'
 import { parseToolbars, ToolbarModel } from '../toolbar-parse'
 
 

+ 1 - 1
packages/core/src/component/GotoAnchor.tsx

@@ -1,4 +1,4 @@
-import { h, ComponentChildren } from 'preact'
+import { h, ComponentChildren } from '../vdom'
 import { BaseComponent } from '../view-framework-util'
 import ComponentContext from './ComponentContext'
 import { __assign } from 'tslib'

+ 1 - 0
packages/core/src/main.ts

@@ -173,5 +173,6 @@ export { default as EventApi } from './api/EventApi'
 
 export { default as requestJson } from './util/requestJson'
 
+export * from './vdom'
 export { subrenderer, SubRenderer, BaseComponent, setRef, renderVNodes } from './view-framework-util'
 export { DelayedRunner } from './util/runner'

+ 2 - 0
packages/core/src/vdom.ts

@@ -0,0 +1,2 @@
+
+export { Component, render, h, createRef, VNode, Fragment, ComponentChildren, createContext, Ref } from 'preact'

+ 1 - 1
packages/core/src/view-framework-util.tsx

@@ -1,4 +1,4 @@
-import { Component, h, Fragment, Ref, ComponentChildren, render } from 'preact'
+import { Component, h, Fragment, Ref, ComponentChildren, render } from './vdom'
 import ComponentContext, { ComponentContextType } from './component/ComponentContext'
 import { __assign } from 'tslib'
 

+ 2 - 1
packages/daygrid/src/DayBgRow.tsx

@@ -1,4 +1,5 @@
 import {
+  h, VNode,
   ComponentContext,
   DateMarker,
   getDayClasses,
@@ -6,7 +7,7 @@ import {
   DateProfile,
   BaseComponent
 } from '@fullcalendar/core'
-import { h, VNode } from 'preact'
+
 
 export interface DayBgCell {
   date: DateMarker

+ 2 - 1
packages/daygrid/src/DayTable.tsx

@@ -1,4 +1,5 @@
 import {
+  h, createRef, VNode,
   DateProfile,
   EventStore,
   EventUiHash,
@@ -13,7 +14,7 @@ import {
   ComponentContext
 } from '@fullcalendar/core'
 import Table, { TableSeg  } from './Table'
-import { h, createRef, VNode } from 'preact'
+
 
 export interface DayTableProps {
   dateProfile: DateProfile | null

+ 1 - 1
packages/daygrid/src/DayTableView.tsx

@@ -1,4 +1,5 @@
 import {
+  h, createRef,
   DayHeader,
   ComponentContext,
   DateProfileGenerator,
@@ -10,7 +11,6 @@ import {
 } from '@fullcalendar/core'
 import TableView, { hasRigidRows } from './TableView'
 import DayTable from './DayTable'
-import { h, createRef } from 'preact'
 
 
 export default class DayTableView extends TableView {

+ 1 - 1
packages/daygrid/src/DayTile.tsx

@@ -1,4 +1,5 @@
 import {
+  h, createRef,
   DateComponent, Seg,
   Hit,
   addDays, DateMarker,
@@ -7,7 +8,6 @@ import {
   elementClosest
 } from '@fullcalendar/core'
 import DayTileEvents from './DayTileEvents'
-import { h, createRef } from 'preact'
 
 
 export interface DayTileProps {

+ 2 - 1
packages/daygrid/src/Popover.tsx

@@ -1,7 +1,8 @@
 import {
+  h, ComponentChildren, createRef,
   applyStyle, BaseComponent, ComponentContext, DelayedRunner
 } from '@fullcalendar/core'
-import { h, ComponentChildren, createRef } from 'preact'
+
 
 export interface PopoverProps {
   title: string

+ 1 - 1
packages/daygrid/src/Table.tsx

@@ -1,4 +1,5 @@
 import {
+  h, Ref, Fragment, createRef,
   insertAfterElement,
   findDirectChildren,
   removeElement,
@@ -19,7 +20,6 @@ import TableMirrorEvents from './TableMirrorEvents'
 import TableFills from './TableFills'
 import Popover from './Popover'
 import DayTile from './DayTile'
-import { h, Ref, Fragment, createRef } from 'preact'
 import TableSkeleton, { TableSkeletonProps } from './TableSkeleton'
 
 

+ 1 - 1
packages/daygrid/src/TableEvents.ts

@@ -1,4 +1,5 @@
 import {
+  VNode,
   removeElement,
   appendToElement,
   prependToElement,
@@ -10,7 +11,6 @@ import {
   renderVNodes
 } from '@fullcalendar/core'
 import CellEvents from './CellEvents'
-import { VNode } from 'preact'
 
 
 /* Event-rendering methods for the Table class

+ 1 - 1
packages/daygrid/src/TableFills.ts

@@ -1,4 +1,5 @@
 import {
+  VNode,
   htmlToElement,
   appendToElement,
   prependToElement,
@@ -10,7 +11,6 @@ import {
   subrenderer,
   renderVNodes
 } from '@fullcalendar/core'
-import { VNode } from 'preact'
 
 
 const EMPTY_CELL_HTML = '<td style="pointer-events:none"></td>'

+ 1 - 1
packages/daygrid/src/TableSkeleton.tsx

@@ -1,5 +1,5 @@
-import { VNode, h } from 'preact'
 import {
+  VNode, h,
   DateProfile,
   DateMarker,
   BaseComponent,

+ 2 - 1
packages/daygrid/src/TableView.tsx

@@ -1,4 +1,5 @@
 import {
+  VNode, h, createRef, ComponentChildren,
   findElements,
   matchCellWidths,
   uncompensateScroll,
@@ -15,7 +16,7 @@ import {
 } from '@fullcalendar/core'
 import Table from './Table'
 import TableDateProfileGenerator from './TableDateProfileGenerator'
-import { VNode, h, createRef, ComponentChildren } from 'preact'
+
 
 const WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' })
 

+ 1 - 1
packages/list/src/ListView.tsx

@@ -1,4 +1,5 @@
 import {
+  h, createRef,
   subtractInnerElHeight,
   View,
   ViewProps,
@@ -20,7 +21,6 @@ import {
   getViewClassNames
 } from '@fullcalendar/core'
 import ListViewEvents from './ListViewEvents'
-import { h, createRef } from 'preact'
 
 /*
 Responsible for the scroller, and forwarding event-related actions into the "grid".

+ 1 - 1
packages/list/src/ListViewEvents.tsx

@@ -1,4 +1,5 @@
 import {
+  h,
   htmlEscape,
   FgEventRenderer,
   Seg,
@@ -12,7 +13,6 @@ import {
   renderVNodes,
   GotoAnchor
 } from '@fullcalendar/core'
-import { h } from 'preact'
 
 
 export interface ListViewEventsProps extends BaseFgEventRendererProps {

+ 1 - 1
packages/timegrid/src/DayTimeCols.tsx

@@ -1,4 +1,5 @@
 import {
+  h, createRef, VNode,
   DateComponent,
   DateProfile,
   EventStore,
@@ -15,7 +16,6 @@ import {
   ComponentContext
 } from '@fullcalendar/core'
 import TimeCols, { TimeColsSeg } from './TimeCols'
-import { h, createRef, VNode } from 'preact'
 
 
 export interface DayTimeColsProps {

+ 1 - 1
packages/timegrid/src/DayTimeColsView.tsx

@@ -1,4 +1,5 @@
 import {
+  h, createRef,
   DateProfileGenerator, DateProfile,
   ComponentContext,
   DayHeader,
@@ -10,7 +11,6 @@ import {
 import { DayTable } from '@fullcalendar/daygrid'
 import TimeColsView from './TimeColsView'
 import DayTimeCols from './DayTimeCols'
-import { h, createRef } from 'preact'
 
 
 export default class DayTimeColsView extends TimeColsView {

+ 1 - 1
packages/timegrid/src/TimeCols.tsx

@@ -1,4 +1,5 @@
 import {
+  h, VNode, createRef, Ref,
   removeElement,
   applyStyle,
   PositionCache,
@@ -25,7 +26,6 @@ import TimeColsFills from './TimeColsFills'
 import TimeColsSlats from './TimeColsSlats'
 import TimeColsBg, { TimeColsCell } from './TimeColsBg'
 import TimeColsContentSkeleton, { TimeColsContentSkeletonContainers } from './TimeColsContentSkeleton'
-import { h, VNode, createRef, Ref } from 'preact'
 import { __assign } from 'tslib'
 
 

+ 1 - 1
packages/timegrid/src/TimeColsBg.tsx

@@ -1,4 +1,5 @@
 import {
+  h, VNode,
   BaseComponent,
   DateProfile,
   ComponentContext,
@@ -7,7 +8,6 @@ import {
   guid
 } from '@fullcalendar/core'
 import { DayBgRow } from '@fullcalendar/daygrid'
-import { h, VNode } from 'preact'
 
 
 export interface TimeColsBgProps {

+ 1 - 1
packages/timegrid/src/TimeColsContentSkeleton.tsx

@@ -1,10 +1,10 @@
 import {
+  h, VNode,
   BaseComponent,
   ComponentContext,
   findElements,
   guid,
 } from '@fullcalendar/core'
-import { h, VNode } from 'preact'
 
 
 export interface TimeColsContentSkeletonProps {

+ 2 - 1
packages/timegrid/src/TimeColsSlats.tsx

@@ -1,4 +1,5 @@
 import {
+  h, VNode,
   BaseComponent,
   DateProfile,
   ComponentContext,
@@ -14,7 +15,7 @@ import {
   findElements,
   guid
 } from '@fullcalendar/core'
-import { h, VNode } from 'preact'
+
 
 export interface TimeColsSlatsProps {
   dateProfile: DateProfile

+ 2 - 1
packages/timegrid/src/TimeColsView.tsx

@@ -1,4 +1,5 @@
 import {
+  h, ComponentChildren, createRef,
   findElements,
   matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight,
   Scroller,
@@ -13,7 +14,7 @@ import {
 import { Table } from '@fullcalendar/daygrid'
 import { TimeCols } from './main'
 import AllDaySplitter from './AllDaySplitter'
-import { h, ComponentChildren, createRef } from 'preact'
+
 
 const ALL_DAY_EVENT_LIMIT = 5
 const WEEK_HEADER_FORMAT = createFormatter({ week: 'short' })

+ 9 - 1
rollup.config.js

@@ -77,9 +77,17 @@ function buildPkgConfig(pkgStruct, ownBrowserGlobals, isDev) {
     pkgStruct.jsonObj.peerDependencies || {}
   ))
 
+  // embed typescript utils
+  let allowExternalBundled = [ 'tslib' ]
+
+  // embed preact only in the core package
+  if (pkgStruct.name === '@fullcalendar/core') {
+    allowExternalBundled.push('preact')
+  }
+
   let plugins = [
     nodeResolve({
-      only: [ 'tslib' ] // the only external module we want to bundle
+      only: allowExternalBundled
     }),
     replace({
       delimiters: [ '<%= ', ' %>' ],