@deck.gl/widgets 9.0.0-alpha.7 → 9.0.0-beta.2
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/es5/components.js +3 -5
- package/dist/es5/components.js.map +1 -1
- package/dist/es5/fullscreen-widget.js +1 -1
- package/dist/es5/fullscreen-widget.js.map +1 -1
- package/dist/esm/components.js +0 -1
- package/dist/esm/components.js.map +1 -1
- package/dist/esm/fullscreen-widget.js +1 -1
- package/dist/esm/fullscreen-widget.js.map +1 -1
- package/package.json +2 -2
- package/src/components.tsx +0 -2
- package/src/fullscreen-widget.tsx +1 -1
- package/typed/components.d.ts +2 -2
- package/typed/components.d.ts.map +1 -1
package/dist/es5/components.js
CHANGED
|
@@ -5,20 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.IconButton = void 0;
|
|
7
7
|
|
|
8
|
-
var _preact = require("preact");
|
|
9
|
-
|
|
10
8
|
var IconButton = function IconButton(props) {
|
|
11
9
|
var className = props.className,
|
|
12
10
|
label = props.label,
|
|
13
11
|
onClick = props.onClick;
|
|
14
|
-
return
|
|
12
|
+
return h("div", {
|
|
15
13
|
className: "deck-widget-button-border"
|
|
16
|
-
},
|
|
14
|
+
}, h("button", {
|
|
17
15
|
className: "deck-widget-button ".concat(className),
|
|
18
16
|
type: "button",
|
|
19
17
|
onClick: onClick,
|
|
20
18
|
title: label
|
|
21
|
-
},
|
|
19
|
+
}, h("div", {
|
|
22
20
|
className: "deck-widget-icon"
|
|
23
21
|
})));
|
|
24
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components.tsx"],"names":["IconButton","props","className","label","onClick"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/components.tsx"],"names":["IconButton","props","className","label","onClick"],"mappings":";;;;;;;AAAO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK,EAAI;AACjC,MAAOC,SAAP,GAAoCD,KAApC,CAAOC,SAAP;AAAA,MAAkBC,KAAlB,GAAoCF,KAApC,CAAkBE,KAAlB;AAAA,MAAyBC,OAAzB,GAAoCH,KAApC,CAAyBG,OAAzB;AACA,SACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AACE,IAAA,SAAS,+BAAwBF,SAAxB,CADX;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAEE,OAHX;AAIE,IAAA,KAAK,EAAED;AAJT,KAME;AAAK,IAAA,SAAS,EAAC;AAAf,IANF,CADF,CADF;AAYD,CAdM","sourcesContent":["export const IconButton = props => {\n const {className, label, onClick} = props;\n return (\n <div className=\"deck-widget-button-border\">\n <button\n className={`deck-widget-button ${className}`}\n type=\"button\"\n onClick={onClick}\n title={label}\n >\n <div className=\"deck-widget-icon\" />\n </button>\n </div>\n );\n};\n"],"file":"components.js"}
|
|
@@ -82,7 +82,7 @@ var FullscreenWidget = function () {
|
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
var ui =
|
|
85
|
+
var ui = h(_components.IconButton, {
|
|
86
86
|
onClick: this.handleClick.bind(this),
|
|
87
87
|
label: this.fullscreen ? exitLabel : enterLabel,
|
|
88
88
|
className: this.fullscreen ? 'deck-widget-fullscreen-exit' : 'deck-widget-fullscreen-enter'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fullscreen-widget.tsx"],"names":["FullscreenWidget","props","id","placement","deck","element","fullscreen","enterLabel","exitLabel","style","onAdd","className","el","document","createElement","classList","add","Object","entries","map","key","value","setProperty","update","addEventListener","onFullscreenChange","bind","onRemove","undefined","removeEventListener","ui","handleClick","setProps","oldProps","remove","removeProperty","assign","getContainer","container","getCanvas","parentElement","prevFullscreen","fullscreenElement","exitFullscreen","requestFullscreen","navigationUI","togglePseudoFullscreen","toggle"],"mappings":";;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;IAuBaA,gB;AAUX,4BAAYC,KAAZ,EAA0C;AAAA;AAAA,SAT1CC,EAS0C,GATrC,YASqC;AAAA,SAR1CD,KAQ0C;AAAA,SAP1CE,SAO0C,GAPb,UAOa;AAAA,SAL1CC,IAK0C;AAAA,SAJ1CC,OAI0C;AAAA,SAF1CC,UAE0C,GAFpB,KAEoB;AACxC,SAAKJ,EAAL,GAAUD,KAAK,CAACC,EAAN,IAAY,YAAtB;AACA,SAAKC,SAAL,GAAiBF,KAAK,CAACE,SAAN,IAAmB,UAApC;AACAF,IAAAA,KAAK,CAACM,UAAN,GAAmBN,KAAK,CAACM,UAAN,IAAoB,kBAAvC;AACAN,IAAAA,KAAK,CAACO,SAAN,GAAkBP,KAAK,CAACO,SAAN,IAAmB,iBAArC;AACAP,IAAAA,KAAK,CAACQ,KAAN,GAAcR,KAAK,CAACQ,KAAN,IAAe,EAA7B;AACA,SAAKR,KAAL,GAAaA,KAAb;AACD;;;;SAEDS,K,GAAA,qBAA4C;AAAA,QAArCN,IAAqC,QAArCA,IAAqC;AAC1C,sBAA2B,KAAKH,KAAhC;AAAA,QAAOQ,KAAP,eAAOA,KAAP;AAAA,QAAcE,SAAd,eAAcA,SAAd;AACA,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,CAAaC,GAAb,CAAiB,aAAjB,EAAgC,wBAAhC;AACA,QAAIL,SAAJ,EAAeC,EAAE,CAACG,SAAH,CAAaC,GAAb,CAAiBL,SAAjB;;AACf,QAAIF,KAAJ,EAAW;AACTQ,MAAAA,MAAM,CAACC,OAAP,CAAeT,KAAf,EAAsBU,GAAtB,CAA0B;AAAA;AAAA,YAAEC,GAAF;AAAA,YAAOC,KAAP;;AAAA,eAAkBT,EAAE,CAACH,KAAH,CAASa,WAAT,CAAqBF,GAArB,EAA0BC,KAA1B,CAAlB;AAAA,OAA1B;AACD;;AACD,SAAKjB,IAAL,GAAYA,IAAZ;AACA,SAAKC,OAAL,GAAeO,EAAf;AACA,SAAKW,MAAL;AACAV,IAAAA,QAAQ,CAACW,gBAAT,CAA0B,kBAA1B,EAA8C,KAAKC,kBAAL,CAAwBC,IAAxB,CAA6B,IAA7B,CAA9C;AACA,WAAOd,EAAP;AACD,G;;SAEDe,Q,GAAA,oBAAW;AACT,SAAKvB,IAAL,GAAYwB,SAAZ;AACA,SAAKvB,OAAL,GAAeuB,SAAf;AACAf,IAAAA,QAAQ,CAACgB,mBAAT,CAA6B,kBAA7B,EAAiD,KAAKJ,kBAAL,CAAwBC,IAAxB,CAA6B,IAA7B,CAAjD;AACD,G;;SAEOH,M,GAAR,kBAAiB;AACf,uBAAgC,KAAKtB,KAArC;AAAA,QAAOM,UAAP,gBAAOA,UAAP;AAAA,QAAmBC,SAAnB,gBAAmBA,SAAnB;AACA,QAAMI,EAAE,GAAG,KAAKP,OAAhB;;AACA,QAAI,CAACO,EAAL,EAAS;AACP;AACD;;AAED,QAAMkB,EAAE,GACN,
|
|
1
|
+
{"version":3,"sources":["../../src/fullscreen-widget.tsx"],"names":["FullscreenWidget","props","id","placement","deck","element","fullscreen","enterLabel","exitLabel","style","onAdd","className","el","document","createElement","classList","add","Object","entries","map","key","value","setProperty","update","addEventListener","onFullscreenChange","bind","onRemove","undefined","removeEventListener","ui","handleClick","setProps","oldProps","remove","removeProperty","assign","getContainer","container","getCanvas","parentElement","prevFullscreen","fullscreenElement","exitFullscreen","requestFullscreen","navigationUI","togglePseudoFullscreen","toggle"],"mappings":"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","sourcesContent":["/* global document */\nimport {_deepEqual as deepEqual} from '@deck.gl/core';\nimport type {Deck, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\nimport {IconButton} from './components';\n\ninterface FullscreenWidgetProps {\n id: string;\n placement?: WidgetPlacement;\n /**\n * A [compatible DOM element](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen#Compatible_elements) which should be made full screen.\n * By default, the map container element will be made full screen.\n */\n /* eslint-enable max-len */\n container?: HTMLElement;\n /**\n * Tooltip message when out of fullscreen.\n */\n enterLabel?: string;\n /**\n * Tooltip message when fullscreen.\n */\n exitLabel?: string;\n style?: Partial<CSSStyleDeclaration>;\n className?: string;\n}\n\nexport class FullscreenWidget implements Widget<FullscreenWidgetProps> {\n id = 'fullscreen';\n props: FullscreenWidgetProps;\n placement: WidgetPlacement = 'top-left';\n\n deck?: Deck;\n element?: HTMLDivElement;\n\n fullscreen: boolean = false;\n\n constructor(props: FullscreenWidgetProps) {\n this.id = props.id || 'fullscreen';\n this.placement = props.placement || 'top-left';\n props.enterLabel = props.enterLabel || 'Enter Fullscreen';\n props.exitLabel = props.exitLabel || 'Exit Fullscreen';\n props.style = props.style || {};\n this.props = props;\n }\n\n onAdd({deck}: {deck: Deck}): HTMLDivElement {\n const {style, className} = this.props;\n const el = document.createElement('div');\n el.classList.add('deck-widget', 'deck-widget-fullscreen');\n if (className) el.classList.add(className);\n if (style) {\n Object.entries(style).map(([key, value]) => el.style.setProperty(key, value as string));\n }\n this.deck = deck;\n this.element = el;\n this.update();\n document.addEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n return el;\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n document.removeEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n }\n\n private update() {\n const {enterLabel, exitLabel} = this.props;\n const el = this.element;\n if (!el) {\n return;\n }\n\n const ui = (\n <IconButton\n onClick={this.handleClick.bind(this)}\n label={this.fullscreen ? exitLabel : enterLabel}\n className={this.fullscreen ? 'deck-widget-fullscreen-exit' : 'deck-widget-fullscreen-enter'}\n />\n );\n render(ui, el);\n }\n\n setProps(props: Partial<FullscreenWidgetProps>) {\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n if (oldProps.style) {\n Object.entries(oldProps.style).map(([key]) => el.style.removeProperty(key));\n }\n if (props.style) {\n Object.entries(props.style).map(([key, value]) =>\n el.style.setProperty(key, value as string)\n );\n }\n }\n }\n\n Object.assign(this.props, props);\n }\n\n getContainer() {\n return this.props.container || this.deck?.getCanvas()?.parentElement;\n }\n\n onFullscreenChange() {\n const prevFullscreen = this.fullscreen;\n const fullscreen = document.fullscreenElement === this.getContainer();\n if (prevFullscreen !== fullscreen) {\n this.fullscreen = !this.fullscreen;\n }\n this.update();\n }\n\n async handleClick() {\n if (this.fullscreen) {\n await this.exitFullscreen();\n } else {\n await this.requestFullscreen();\n }\n this.update();\n }\n\n async requestFullscreen() {\n const container = this.getContainer();\n if (container?.requestFullscreen) {\n await container.requestFullscreen({navigationUI: 'hide'});\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n async exitFullscreen() {\n if (document.exitFullscreen) {\n await document.exitFullscreen();\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n togglePseudoFullscreen() {\n this.getContainer()?.classList.toggle('deck-pseudo-fullscreen');\n }\n}\n"],"file":"fullscreen-widget.js"}
|
package/dist/esm/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/components.tsx"],"names":["IconButton","props","className","label","onClick"],"mappings":"AAAA,OAAO,MAAMA,UAAU,GAAGC,KAAK,IAAI;AACjC,QAAM;AAACC,IAAAA,SAAD;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA;AAAnB,MAA8BH,KAApC;AACA,SACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AACE,IAAA,SAAS,EAAG,sBAAqBC,SAAU,EAD7C;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAEE,OAHX;AAIE,IAAA,KAAK,EAAED;AAJT,KAME;AAAK,IAAA,SAAS,EAAC;AAAf,IANF,CADF,CADF;AAYD,CAdM","sourcesContent":["export const IconButton = props => {\n const {className, label, onClick} = props;\n return (\n <div className=\"deck-widget-button-border\">\n <button\n className={`deck-widget-button ${className}`}\n type=\"button\"\n onClick={onClick}\n title={label}\n >\n <div className=\"deck-widget-icon\" />\n </button>\n </div>\n );\n};\n"],"file":"components.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fullscreen-widget.tsx"],"names":["_deepEqual","deepEqual","
|
|
1
|
+
{"version":3,"sources":["../../src/fullscreen-widget.tsx"],"names":["_deepEqual","deepEqual","render","IconButton","FullscreenWidget","constructor","props","id","placement","deck","element","fullscreen","enterLabel","exitLabel","style","onAdd","className","el","document","createElement","classList","add","Object","entries","map","key","value","setProperty","update","addEventListener","onFullscreenChange","bind","onRemove","undefined","removeEventListener","ui","handleClick","setProps","oldProps","remove","removeProperty","assign","getContainer","container","getCanvas","parentElement","prevFullscreen","fullscreenElement","exitFullscreen","requestFullscreen","navigationUI","togglePseudoFullscreen","toggle"],"mappings":"AACA,SAAQA,UAAU,IAAIC,SAAtB,QAAsC,eAAtC;AAEA,SAAQC,MAAR,QAAqB,QAArB;AACA,SAAQC,UAAR,QAAyB,cAAzB;AAuBA,OAAO,MAAMC,gBAAN,CAAgE;AAUrEC,EAAAA,WAAW,CAACC,KAAD,EAA+B;AAAA,SAT1CC,EAS0C,GATrC,YASqC;AAAA,SAR1CD,KAQ0C;AAAA,SAP1CE,SAO0C,GAPb,UAOa;AAAA,SAL1CC,IAK0C;AAAA,SAJ1CC,OAI0C;AAAA,SAF1CC,UAE0C,GAFpB,KAEoB;AACxC,SAAKJ,EAAL,GAAUD,KAAK,CAACC,EAAN,IAAY,YAAtB;AACA,SAAKC,SAAL,GAAiBF,KAAK,CAACE,SAAN,IAAmB,UAApC;AACAF,IAAAA,KAAK,CAACM,UAAN,GAAmBN,KAAK,CAACM,UAAN,IAAoB,kBAAvC;AACAN,IAAAA,KAAK,CAACO,SAAN,GAAkBP,KAAK,CAACO,SAAN,IAAmB,iBAArC;AACAP,IAAAA,KAAK,CAACQ,KAAN,GAAcR,KAAK,CAACQ,KAAN,IAAe,EAA7B;AACA,SAAKR,KAAL,GAAaA,KAAb;AACD;;AAEDS,EAAAA,KAAK,CAAC;AAACN,IAAAA;AAAD,GAAD,EAAuC;AAC1C,UAAM;AAACK,MAAAA,KAAD;AAAQE,MAAAA;AAAR,QAAqB,KAAKV,KAAhC;AACA,UAAMW,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,CAAaC,GAAb,CAAiB,aAAjB,EAAgC,wBAAhC;AACA,QAAIL,SAAJ,EAAeC,EAAE,CAACG,SAAH,CAAaC,GAAb,CAAiBL,SAAjB;;AACf,QAAIF,KAAJ,EAAW;AACTQ,MAAAA,MAAM,CAACC,OAAP,CAAeT,KAAf,EAAsBU,GAAtB,CAA0B,CAAC,CAACC,GAAD,EAAMC,KAAN,CAAD,KAAkBT,EAAE,CAACH,KAAH,CAASa,WAAT,CAAqBF,GAArB,EAA0BC,KAA1B,CAA5C;AACD;;AACD,SAAKjB,IAAL,GAAYA,IAAZ;AACA,SAAKC,OAAL,GAAeO,EAAf;AACA,SAAKW,MAAL;AACAV,IAAAA,QAAQ,CAACW,gBAAT,CAA0B,kBAA1B,EAA8C,KAAKC,kBAAL,CAAwBC,IAAxB,CAA6B,IAA7B,CAA9C;AACA,WAAOd,EAAP;AACD;;AAEDe,EAAAA,QAAQ,GAAG;AACT,SAAKvB,IAAL,GAAYwB,SAAZ;AACA,SAAKvB,OAAL,GAAeuB,SAAf;AACAf,IAAAA,QAAQ,CAACgB,mBAAT,CAA6B,kBAA7B,EAAiD,KAAKJ,kBAAL,CAAwBC,IAAxB,CAA6B,IAA7B,CAAjD;AACD;;AAEOH,EAAAA,MAAM,GAAG;AACf,UAAM;AAAChB,MAAAA,UAAD;AAAaC,MAAAA;AAAb,QAA0B,KAAKP,KAArC;AACA,UAAMW,EAAE,GAAG,KAAKP,OAAhB;;AACA,QAAI,CAACO,EAAL,EAAS;AACP;AACD;;AAED,UAAMkB,EAAE,GACN,EAAC,UAAD;AACE,MAAA,OAAO,EAAE,KAAKC,WAAL,CAAiBL,IAAjB,CAAsB,IAAtB,CADX;AAEE,MAAA,KAAK,EAAE,KAAKpB,UAAL,GAAkBE,SAAlB,GAA8BD,UAFvC;AAGE,MAAA,SAAS,EAAE,KAAKD,UAAL,GAAkB,6BAAlB,GAAkD;AAH/D,MADF;AAOAT,IAAAA,MAAM,CAACiC,EAAD,EAAKlB,EAAL,CAAN;AACD;;AAEDoB,EAAAA,QAAQ,CAAC/B,KAAD,EAAwC;AAC9C,UAAMgC,QAAQ,GAAG,KAAKhC,KAAtB;AACA,UAAMW,EAAE,GAAG,KAAKP,OAAhB;;AACA,QAAIO,EAAJ,EAAQ;AACN,UAAIqB,QAAQ,CAACtB,SAAT,KAAuBV,KAAK,CAACU,SAAjC,EAA4C;AAC1C,YAAIsB,QAAQ,CAACtB,SAAb,EAAwBC,EAAE,CAACG,SAAH,CAAamB,MAAb,CAAoBD,QAAQ,CAACtB,SAA7B;AACxB,YAAIV,KAAK,CAACU,SAAV,EAAqBC,EAAE,CAACG,SAAH,CAAaC,GAAb,CAAiBf,KAAK,CAACU,SAAvB;AACtB;;AAED,UAAI,CAACf,SAAS,CAACqC,QAAQ,CAACxB,KAAV,EAAiBR,KAAK,CAACQ,KAAvB,EAA8B,CAA9B,CAAd,EAAgD;AAC9C,YAAIwB,QAAQ,CAACxB,KAAb,EAAoB;AAClBQ,UAAAA,MAAM,CAACC,OAAP,CAAee,QAAQ,CAACxB,KAAxB,EAA+BU,GAA/B,CAAmC,CAAC,CAACC,GAAD,CAAD,KAAWR,EAAE,CAACH,KAAH,CAAS0B,cAAT,CAAwBf,GAAxB,CAA9C;AACD;;AACD,YAAInB,KAAK,CAACQ,KAAV,EAAiB;AACfQ,UAAAA,MAAM,CAACC,OAAP,CAAejB,KAAK,CAACQ,KAArB,EAA4BU,GAA5B,CAAgC,CAAC,CAACC,GAAD,EAAMC,KAAN,CAAD,KAC9BT,EAAE,CAACH,KAAH,CAASa,WAAT,CAAqBF,GAArB,EAA0BC,KAA1B,CADF;AAGD;AACF;AACF;;AAEDJ,IAAAA,MAAM,CAACmB,MAAP,CAAc,KAAKnC,KAAnB,EAA0BA,KAA1B;AACD;;AAEDoC,EAAAA,YAAY,GAAG;AAAA;;AACb,WAAO,KAAKpC,KAAL,CAAWqC,SAAX,mBAAwB,KAAKlC,IAA7B,uEAAwB,WAAWmC,SAAX,EAAxB,yDAAwB,qBAAwBC,aAAhD,CAAP;AACD;;AAEDf,EAAAA,kBAAkB,GAAG;AACnB,UAAMgB,cAAc,GAAG,KAAKnC,UAA5B;AACA,UAAMA,UAAU,GAAGO,QAAQ,CAAC6B,iBAAT,KAA+B,KAAKL,YAAL,EAAlD;;AACA,QAAII,cAAc,KAAKnC,UAAvB,EAAmC;AACjC,WAAKA,UAAL,GAAkB,CAAC,KAAKA,UAAxB;AACD;;AACD,SAAKiB,MAAL;AACD;;AAEgB,QAAXQ,WAAW,GAAG;AAClB,QAAI,KAAKzB,UAAT,EAAqB;AACnB,YAAM,KAAKqC,cAAL,EAAN;AACD,KAFD,MAEO;AACL,YAAM,KAAKC,iBAAL,EAAN;AACD;;AACD,SAAKrB,MAAL;AACD;;AAEsB,QAAjBqB,iBAAiB,GAAG;AACxB,UAAMN,SAAS,GAAG,KAAKD,YAAL,EAAlB;;AACA,QAAIC,SAAJ,aAAIA,SAAJ,eAAIA,SAAS,CAAEM,iBAAf,EAAkC;AAChC,YAAMN,SAAS,CAACM,iBAAV,CAA4B;AAACC,QAAAA,YAAY,EAAE;AAAf,OAA5B,CAAN;AACD,KAFD,MAEO;AACL,WAAKC,sBAAL;AACD;AACF;;AAEmB,QAAdH,cAAc,GAAG;AACrB,QAAI9B,QAAQ,CAAC8B,cAAb,EAA6B;AAC3B,YAAM9B,QAAQ,CAAC8B,cAAT,EAAN;AACD,KAFD,MAEO;AACL,WAAKG,sBAAL;AACD;AACF;;AAEDA,EAAAA,sBAAsB,GAAG;AAAA;;AACvB,+BAAKT,YAAL,4EAAqBtB,SAArB,CAA+BgC,MAA/B,CAAsC,wBAAtC;AACD;;AA1HoE","sourcesContent":["/* global document */\nimport {_deepEqual as deepEqual} from '@deck.gl/core';\nimport type {Deck, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\nimport {IconButton} from './components';\n\ninterface FullscreenWidgetProps {\n id: string;\n placement?: WidgetPlacement;\n /**\n * A [compatible DOM element](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen#Compatible_elements) which should be made full screen.\n * By default, the map container element will be made full screen.\n */\n /* eslint-enable max-len */\n container?: HTMLElement;\n /**\n * Tooltip message when out of fullscreen.\n */\n enterLabel?: string;\n /**\n * Tooltip message when fullscreen.\n */\n exitLabel?: string;\n style?: Partial<CSSStyleDeclaration>;\n className?: string;\n}\n\nexport class FullscreenWidget implements Widget<FullscreenWidgetProps> {\n id = 'fullscreen';\n props: FullscreenWidgetProps;\n placement: WidgetPlacement = 'top-left';\n\n deck?: Deck;\n element?: HTMLDivElement;\n\n fullscreen: boolean = false;\n\n constructor(props: FullscreenWidgetProps) {\n this.id = props.id || 'fullscreen';\n this.placement = props.placement || 'top-left';\n props.enterLabel = props.enterLabel || 'Enter Fullscreen';\n props.exitLabel = props.exitLabel || 'Exit Fullscreen';\n props.style = props.style || {};\n this.props = props;\n }\n\n onAdd({deck}: {deck: Deck}): HTMLDivElement {\n const {style, className} = this.props;\n const el = document.createElement('div');\n el.classList.add('deck-widget', 'deck-widget-fullscreen');\n if (className) el.classList.add(className);\n if (style) {\n Object.entries(style).map(([key, value]) => el.style.setProperty(key, value as string));\n }\n this.deck = deck;\n this.element = el;\n this.update();\n document.addEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n return el;\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n document.removeEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n }\n\n private update() {\n const {enterLabel, exitLabel} = this.props;\n const el = this.element;\n if (!el) {\n return;\n }\n\n const ui = (\n <IconButton\n onClick={this.handleClick.bind(this)}\n label={this.fullscreen ? exitLabel : enterLabel}\n className={this.fullscreen ? 'deck-widget-fullscreen-exit' : 'deck-widget-fullscreen-enter'}\n />\n );\n render(ui, el);\n }\n\n setProps(props: Partial<FullscreenWidgetProps>) {\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n if (oldProps.style) {\n Object.entries(oldProps.style).map(([key]) => el.style.removeProperty(key));\n }\n if (props.style) {\n Object.entries(props.style).map(([key, value]) =>\n el.style.setProperty(key, value as string)\n );\n }\n }\n }\n\n Object.assign(this.props, props);\n }\n\n getContainer() {\n return this.props.container || this.deck?.getCanvas()?.parentElement;\n }\n\n onFullscreenChange() {\n const prevFullscreen = this.fullscreen;\n const fullscreen = document.fullscreenElement === this.getContainer();\n if (prevFullscreen !== fullscreen) {\n this.fullscreen = !this.fullscreen;\n }\n this.update();\n }\n\n async handleClick() {\n if (this.fullscreen) {\n await this.exitFullscreen();\n } else {\n await this.requestFullscreen();\n }\n this.update();\n }\n\n async requestFullscreen() {\n const container = this.getContainer();\n if (container?.requestFullscreen) {\n await container.requestFullscreen({navigationUI: 'hide'});\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n async exitFullscreen() {\n if (document.exitFullscreen) {\n await document.exitFullscreen();\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n togglePseudoFullscreen() {\n this.getContainer()?.classList.toggle('deck-pseudo-fullscreen');\n }\n}\n"],"file":"fullscreen-widget.js"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@deck.gl/widgets",
|
|
3
3
|
"description": "UI widgets for deck.gl",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "9.0.0-
|
|
5
|
+
"version": "9.0.0-beta.2",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@deck.gl/core": "^9.0.0-alpha"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "ed132efaf84a75ea71c89dd8555b6ffc1fe839d5"
|
|
41
41
|
}
|
package/src/components.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* global document */
|
|
2
2
|
import {_deepEqual as deepEqual} from '@deck.gl/core';
|
|
3
3
|
import type {Deck, Widget, WidgetPlacement} from '@deck.gl/core';
|
|
4
|
-
import {
|
|
4
|
+
import {render} from 'preact';
|
|
5
5
|
import {IconButton} from './components';
|
|
6
6
|
|
|
7
7
|
interface FullscreenWidgetProps {
|
package/typed/components.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const IconButton: (props: any) =>
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const IconButton: (props: any) => JSX.Element;
|
|
3
3
|
//# sourceMappingURL=components.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":";AAAA,eAAO,MAAM,UAAU,6BActB,CAAC"}
|