brew-js-react 0.1.0-beta → 0.1.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/brew-js-react.js +1122 -1059
- package/dist/brew-js-react.js.map +1 -1
- package/dist/brew-js-react.min.js +1 -1
- package/dist/brew-js-react.min.js.map +1 -1
- package/hooks.d.ts +0 -6
- package/hooks.js +0 -5
- package/i18n.d.ts +76 -0
- package/i18n.js +54 -0
- package/include/external/package.json +3 -0
- package/include/external/waterpipe.js +5 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/mixins/StatefulMixin.js +2 -4
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brew-js-react.min.js","mappings":"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","sources":["webpack://brew-js-react/webpack/universalModuleDefinition","webpack://brew-js-react/external umd \"zeta-dom-react\"","webpack://brew-js-react/external umd {\"commonjs\":\"brew-js\",\"commonjs2\":\"brew-js\",\"amd\":\"brew-js\",\"root\":\"brew\"}","webpack://brew-js-react/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack://brew-js-react/external umd {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","webpack://brew-js-react/external umd {\"commonjs\":\"zeta-dom\",\"commonjs2\":\"zeta-dom\",\"amd\":\"zeta-dom\",\"root\":\"zeta\"}","webpack://brew-js-react/webpack/bootstrap","webpack://brew-js-react/webpack/runtime/define property getters","webpack://brew-js-react/webpack/runtime/hasOwnProperty shorthand","webpack://brew-js-react/webpack/runtime/make namespace object","webpack://brew-js-react/./tmp/zeta-dom/util.js","webpack://brew-js-react/./tmp/zeta-dom/domUtil.js","webpack://brew-js-react/./tmp/zeta-dom/dom.js","webpack://brew-js-react/./src/include/zeta-dom/dom.js","webpack://brew-js-react/./src/dialog.js","webpack://brew-js-react/./src/app.js","webpack://brew-js-react/./src/hooks.js","webpack://brew-js-react/./src/mixins/StaticAttributeMixin.js","webpack://brew-js-react/./src/mixins/Mixin.js","webpack://brew-js-react/./src/mixins/StatefulMixin.js","webpack://brew-js-react/./src/mixins/ClassNameMixin.js","webpack://brew-js-react/./src/mixins/AnimateMixin.js","webpack://brew-js-react/./src/mixins/AnimateSequenceItemMixin.js","webpack://brew-js-react/./src/mixins/AnimateSequenceMixin.js","webpack://brew-js-react/./src/mixins/FlyoutMixin.js","webpack://brew-js-react/./src/mixins/FocusStateMixin.js","webpack://brew-js-react/./src/mixins/LoadingStateMixin.js","webpack://brew-js-react/./src/mixins/ScrollableMixin.js","webpack://brew-js-react/./src/mixin.js","webpack://brew-js-react/./src/view.js","webpack://brew-js-react/./src/entry.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"), require(\"brew-js\"), require(\"zeta-dom\"), require(\"zeta-dom-react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"brew-js-react\", [\"react\", \"react-dom\", \"brew-js\", \"zeta-dom\", \"zeta-dom-react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"brew-js-react\"] = factory(require(\"react\"), require(\"react-dom\"), require(\"brew-js\"), require(\"zeta-dom\"), require(\"zeta-dom-react\"));\n\telse\n\t\troot[\"brew-js-react\"] = factory(root[\"React\"], root[\"ReactDOM\"], root[\"brew\"], root[\"zeta\"], root[\"zeta-dom-react\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__359__, __WEBPACK_EXTERNAL_MODULE__318__, __WEBPACK_EXTERNAL_MODULE__80__, __WEBPACK_EXTERNAL_MODULE__654__, __WEBPACK_EXTERNAL_MODULE__103__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__103__;","module.exports = __WEBPACK_EXTERNAL_MODULE__80__;","module.exports = __WEBPACK_EXTERNAL_MODULE__359__;","module.exports = __WEBPACK_EXTERNAL_MODULE__318__;","module.exports = __WEBPACK_EXTERNAL_MODULE__654__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import zeta from \"zeta-dom\";const { noop, either, is, isUndefinedOrNull, isArray, isFunction, isThenable, isPlainObject, isArrayLike, makeArray, extend, each, map, grep, splice, any, single, kv, pick, exclude, mapGet, mapRemove, arrRemove, setAdd, equal, combineFn, executeOnce, createPrivateStore, setTimeoutOnce, setImmediate, setImmediateOnce, throwNotFunction, keys, values, hasOwnProperty, getOwnPropertyDescriptors, define, definePrototype, defineOwnProperty, defineGetterProperty, defineHiddenProperty, defineAliasProperty, defineObservableProperty, watch, watchOnce, watchable, inherit, deepFreeze, iequal, randomId, repeat, camel, hyphenate, ucfirst, lcfirst, trim, matchWord, htmlDecode, resolve, reject, always, resolveAll, catchAsync, setPromiseTimeout } = zeta.util; export { noop, either, is, isUndefinedOrNull, isArray, isFunction, isThenable, isPlainObject, isArrayLike, makeArray, extend, each, map, grep, splice, any, single, kv, pick, exclude, mapGet, mapRemove, arrRemove, setAdd, equal, combineFn, executeOnce, createPrivateStore, setTimeoutOnce, setImmediate, setImmediateOnce, throwNotFunction, keys, values, hasOwnProperty, getOwnPropertyDescriptors, define, definePrototype, defineOwnProperty, defineGetterProperty, defineHiddenProperty, defineAliasProperty, defineObservableProperty, watch, watchOnce, watchable, inherit, deepFreeze, iequal, randomId, repeat, camel, hyphenate, ucfirst, lcfirst, trim, matchWord, htmlDecode, resolve, reject, always, resolveAll, catchAsync, setPromiseTimeout };","import zeta from \"zeta-dom\";const { domReady, tagName, is, isVisible, matchSelector, comparePosition, connected, containsOrEquals, acceptNode, combineNodeFilters, iterateNode, iterateNodeToArray, getCommonAncestor, parentsAndSelf, selectIncludeSelf, selectClosestRelative, createNodeIterator, createTreeWalker, bind, bindUntil, dispatchDOMMouseEvent, removeNode, getClass, setClass, getScrollOffset, getScrollParent, getContentRect, scrollBy, scrollIntoView, createRange, rangeIntersects, rangeEquals, rangeCovers, compareRangePosition, makeSelection, getRect, getRects, toPlainRect, rectEquals, rectCovers, rectIntersects, pointInRect, mergeRect, elementFromPoint } = zeta.util; export { domReady, tagName, is, isVisible, matchSelector, comparePosition, connected, containsOrEquals, acceptNode, combineNodeFilters, iterateNode, iterateNodeToArray, getCommonAncestor, parentsAndSelf, selectIncludeSelf, selectClosestRelative, createNodeIterator, createTreeWalker, bind, bindUntil, dispatchDOMMouseEvent, removeNode, getClass, setClass, getScrollOffset, getScrollParent, getContentRect, scrollBy, scrollIntoView, createRange, rangeIntersects, rangeEquals, rangeCovers, compareRangePosition, makeSelection, getRect, getRects, toPlainRect, rectEquals, rectCovers, rectIntersects, pointInRect, mergeRect, elementFromPoint };","import zeta from \"zeta-dom\";const _defaultExport = zeta.dom; export default _defaultExport;const { textInputAllowed, beginDrag, beginPinchZoom, getShortcut, setShortcut, focusable, focused, setModal, retainFocus, releaseFocus, focus } = zeta.dom; export { textInputAllowed, beginDrag, beginPinchZoom, getShortcut, setShortcut, focusable, focused, setModal, retainFocus, releaseFocus, focus };","import dom from \"zeta-dom/dom\";\r\nexport * from \"zeta-dom/dom\";\r\nexport default dom;\r\n","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport brew from \"brew-js\";\r\nimport { always, either, extend, noop } from \"./include/zeta-dom/util.js\";\r\nimport { containsOrEquals, removeNode } from \"./include/zeta-dom/domUtil.js\";\r\nimport dom from \"./include/zeta-dom/dom.js\";\r\n\r\nexport function createDialog(props) {\r\n var root = document.createElement('div');\r\n var closing = false;\r\n var refresh = noop;\r\n var promise;\r\n\r\n function Component() {\r\n const forceRefresh = useState(0)[1];\r\n refresh = function () {\r\n forceRefresh(function (v) {\r\n return ++v;\r\n });\r\n };\r\n return props.onRender(extend({ root, closeDialog }, props));\r\n }\r\n\r\n function closeDialog(value) {\r\n if (!closing) {\r\n closing = true;\r\n brew.closeFlyout(root, value).then(function () {\r\n closing = false;\r\n removeNode(root);\r\n ReactDOM.unmountComponentAtNode(root);\r\n (props.onClose || noop)(root);\r\n });\r\n }\r\n }\r\n\r\n return {\r\n root: root,\r\n refresh: refresh,\r\n close: closeDialog,\r\n open: function () {\r\n if (promise) {\r\n return promise;\r\n }\r\n root.className = props.className;\r\n if (props.modal) {\r\n root.setAttribute('is-modal', '');\r\n }\r\n document.body.appendChild(root);\r\n if (props.modal) {\r\n dom.setModal(root);\r\n }\r\n dom.retainFocus(dom.activeElement, root);\r\n ReactDOM.render(React.createElement(Component), root);\r\n\r\n promise = brew.openFlyout(root);\r\n always(promise, function () {\r\n promise = null;\r\n });\r\n promise.then(props.onCommit);\r\n (props.onOpen || noop)(root);\r\n return promise;\r\n }\r\n };\r\n}\r\n\r\nexport function Dialog(props) {\r\n /** @type {import(\"./dialog\").DialogProps & { open: boolean }} */\r\n const _props = useState({ open: false })[0];\r\n extend(_props, props);\r\n if (props.children) {\r\n _props.onRender = function () {\r\n return React.createElement(Fragment, null, props.children);\r\n };\r\n }\r\n const dialog = useState(function () {\r\n return createDialog(_props);\r\n })[0];\r\n\r\n useEffect(function () {\r\n var opened = containsOrEquals(dom.root, dialog.root);\r\n if (either(opened, _props.open)) {\r\n if (!opened) {\r\n dialog.open();\r\n } else {\r\n dialog.close();\r\n }\r\n }\r\n }, [_props.open])\r\n useEffect(function () {\r\n return dialog.close;\r\n }, [dialog]);\r\n useEffect(function () {\r\n dialog.refresh();\r\n });\r\n return React.createElement(Fragment);\r\n}\r\n","import brew from \"brew-js\";\r\n\r\n/** @type {Brew.AppInstance<Brew.WithRouter & Brew.WithI18n>} */\r\nexport var app;\r\n\r\nbrew.install('react', function (app_) {\r\n // @ts-ignore: type inference issue\r\n app = app_;\r\n});\r\n\r\nbrew.defaults.react = true;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useObservableProperty } from \"zeta-dom-react\";\r\nimport { extend, kv } from \"./include/zeta-dom/util.js\";\r\nimport { app } from \"./app.js\";\r\n\r\nexport function useAppReady() {\r\n const sReady = useState(false);\r\n const ready = sReady[0], setReady = sReady[1];\r\n useEffect(function () {\r\n app.ready.then(function () {\r\n setReady(true);\r\n });\r\n }, []);\r\n return ready;\r\n}\r\n\r\nexport function useLanguage() {\r\n return useObservableProperty(app, 'language');\r\n}\r\n\r\nexport function useRouteParam(name, defaultValue) {\r\n const sValue = useState(app.route[name]);\r\n const value = sValue[0], setValue = sValue[1];\r\n useEffect(function () {\r\n var current = app.route[name];\r\n // route parameter might be changed after state initialization and before useEffect hook is called\r\n setValue(current);\r\n return app.route.watch(name, setValue);\r\n }, [name, defaultValue]);\r\n if (!value && defaultValue !== undefined) {\r\n app.navigate(app.route.getPath(extend({}, app.route, kv(name, defaultValue))), true);\r\n }\r\n return value || '';\r\n}\r\n","import { definePrototype, extend } from \"../include/zeta-dom/util.js\";\r\nimport Mixin from \"./Mixin.js\";\r\n\r\nexport default function StaticAttributeMixin(attributes) {\r\n Mixin.call(this);\r\n this.attributes = attributes || {};\r\n}\r\n\r\ndefinePrototype(StaticAttributeMixin, Mixin, {\r\n getCustomAttributes: function () {\r\n return extend({}, this.attributes);\r\n }\r\n});\r\n","import { classNames } from \"zeta-dom-react\";\r\nimport { combineFn, define, definePrototype, each, extend, makeArray, noop, watchable } from \"../include/zeta-dom/util.js\";\r\nimport StaticAttributeMixin from \"./StaticAttributeMixin.js\";\r\n\r\nexport default function Mixin() {\r\n}\r\n\r\ndefinePrototype(Mixin, {\r\n next: function () {\r\n },\r\n getRef: function () {\r\n return noop;\r\n },\r\n getClassNames: function () {\r\n return [];\r\n },\r\n getCustomAttributes: function () {\r\n return {};\r\n }\r\n});\r\nwatchable(Mixin.prototype);\r\n\r\ndefine(Mixin, {\r\n get scrollableTarget() {\r\n return new StaticAttributeMixin({ 'scrollable-target': '' });\r\n },\r\n use: function () {\r\n const args = makeArray(arguments);\r\n const ref = args[0];\r\n const props = {};\r\n const mixins = args.filter(function (v) {\r\n return v instanceof Mixin;\r\n });\r\n const refs = mixins.map(function (v) {\r\n return v.getRef();\r\n });\r\n if (ref && !(ref instanceof Mixin)) {\r\n if (typeof ref !== 'function') {\r\n refs.push(function (v) {\r\n ref.current = v;\r\n });\r\n } else {\r\n refs.push(ref);\r\n }\r\n args.shift();\r\n } else if (!ref) {\r\n args.shift();\r\n }\r\n each(mixins, function (i, v) {\r\n extend(props, v.getCustomAttributes());\r\n });\r\n extend(props, {\r\n ref: combineFn(refs),\r\n className: classNames.apply(null, args)\r\n });\r\n each(mixins, function (i, v) {\r\n v.next();\r\n });\r\n return props;\r\n }\r\n});\r\n","import { definePrototype, inherit, randomId, values } from \"../include/zeta-dom/util.js\";\r\nimport Mixin from \"./Mixin.js\";\r\n\r\nfunction MixinRefImpl(mixin) {\r\n this.mixin = mixin;\r\n}\r\n\r\ndefinePrototype(MixinRefImpl, {\r\n getMixin: function () {\r\n return this.mixin;\r\n }\r\n});\r\n\r\nexport default function StatefulMixin() {\r\n Mixin.call(this);\r\n this.states = {};\r\n this.prefix = '';\r\n this.counter = 0;\r\n}\r\n\r\ndefinePrototype(StatefulMixin, Mixin, {\r\n get ref() {\r\n const state = this.state;\r\n this.next();\r\n return state.ref || (state.ref = new MixinRefImpl(this.clone()));\r\n },\r\n get state() {\r\n const self = this;\r\n const key = self.prefix + self.counter;\r\n return self.states[key] || (self.states[key] = self.initState());\r\n },\r\n reset: function () {\r\n this.counter = 0;\r\n return this;\r\n },\r\n next: function () {\r\n this.counter++;\r\n return this;\r\n },\r\n getRef: function () {\r\n const self = this;\r\n const state = self.state;\r\n return function (current) {\r\n if (current !== state.element) {\r\n state.element = current;\r\n if (current) {\r\n self.initElement(current, state);\r\n }\r\n }\r\n };\r\n },\r\n elements: function () {\r\n return values(this.states).map(function (v) {\r\n return v.element;\r\n }).filter(function (v) {\r\n return v;\r\n });\r\n },\r\n initState: function () {\r\n return { element: null };\r\n },\r\n initElement: function (element, state) {\r\n },\r\n clone: function () {\r\n return inherit(Object.getPrototypeOf(this), {\r\n states: this.states,\r\n prefix: randomId() + '.',\r\n counter: 0\r\n });\r\n }\r\n});\r\n","import { definePrototype, each, equal, extend } from \"../include/zeta-dom/util.js\";\r\nimport dom from \"../include/zeta-dom/dom.js\";\r\nimport StatefulMixin from \"./StatefulMixin.js\";\r\n\r\nconst ClassNameMixinSuper = StatefulMixin.prototype;\r\n\r\nexport default function ClassNameMixin(classNames) {\r\n StatefulMixin.call(this);\r\n this.classNames = classNames || [];\r\n}\r\n\r\ndefinePrototype(ClassNameMixin, StatefulMixin, {\r\n getClassNames: function () {\r\n return [this.state.classNames];\r\n },\r\n initState: function () {\r\n return {\r\n element: null,\r\n classNames: {}\r\n };\r\n },\r\n initElement: function (element, state) {\r\n var self = this;\r\n dom.watchAttributes(element, ['class'], function (nodes) {\r\n if (nodes.includes(element)) {\r\n const prev = extend({}, state.classNames);\r\n each(self.classNames, function (i, v) {\r\n state.classNames[v] = element.classList.contains(v);\r\n });\r\n if (!equal(prev, state.classNames)) {\r\n self.onClassNameUpdated(element, prev, state.classNames);\r\n }\r\n }\r\n });\r\n },\r\n clone: function () {\r\n return extend(ClassNameMixinSuper.clone.call(this), { classNames: this.classNames });\r\n },\r\n onClassNameUpdated: function (element, prevState, state) {\r\n }\r\n});\r\n","import { definePrototype, extend, makeArray } from \"../include/zeta-dom/util.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst AnimateMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function AnimateMixin() {\r\n ClassNameMixin.call(this, ['tweening-in', 'tweening-out']);\r\n}\r\n\r\ndefinePrototype(AnimateMixin, ClassNameMixin, {\r\n next: function () {\r\n this.effects = undefined;\r\n this.trigger = undefined;\r\n return AnimateMixinSuper.next.call(this);\r\n },\r\n with: function (props) {\r\n this.effects = props.effects;\r\n this.trigger = props.trigger;\r\n return this;\r\n },\r\n withEffects: function () {\r\n this.effects = makeArray(arguments);\r\n return this;\r\n },\r\n getCustomAttributes: function () {\r\n return extend({}, AnimateMixinSuper.getCustomAttributes.call(this), {\r\n 'animate-in': (this.effects || []).join(' '),\r\n 'animate-on': this.trigger || 'show'\r\n });\r\n }\r\n});\r\n","import { definePrototype } from \"../include/zeta-dom/util.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst AnimateSequenceItemMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function AnimateSequenceItemMixin(className) {\r\n ClassNameMixin.call(this, ['tweening-in', 'tweening-out']);\r\n this.className = className;\r\n}\r\n\r\ndefinePrototype(AnimateSequenceItemMixin, ClassNameMixin, {\r\n getClassNames: function () {\r\n return [this.className].concat(AnimateSequenceItemMixinSuper.getClassNames.call(this));\r\n }\r\n});\r\n","import { definePrototype, extend } from \"../include/zeta-dom/util.js\";\r\nimport AnimateMixin from \"./AnimateMixin.js\";\r\nimport AnimateSequenceItemMixin from \"./AnimateSequenceItemMixin.js\";\r\n\r\nconst AnimateSequenceMixinSuper = AnimateMixin.prototype;\r\nvar animateSequenceMixinCounter = 0;\r\n\r\nexport default function AnimateSequenceMixin() {\r\n AnimateMixin.call(this);\r\n this.className = 'brew-anim-' + (++animateSequenceMixinCounter);\r\n this.item = new AnimateSequenceItemMixin(this.className);\r\n}\r\n\r\ndefinePrototype(AnimateSequenceMixin, AnimateMixin, {\r\n reset: function () {\r\n this.item.reset();\r\n return AnimateSequenceMixinSuper.reset.call(this);\r\n },\r\n getCustomAttributes: function () {\r\n return extend({}, AnimateSequenceMixinSuper.getCustomAttributes.call(this), {\r\n 'animate-sequence': '.' + this.className\r\n });\r\n },\r\n clone: function () {\r\n return extend(AnimateSequenceMixinSuper.clone.call(this), {\r\n item: this.item.ref.getMixin()\r\n });\r\n }\r\n});\r\n","import { defineAliasProperty, definePrototype, each, extend, makeArray } from \"../include/zeta-dom/util.js\";\r\nimport { app } from \"../app.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst FlyoutMixinSuper = ClassNameMixin.prototype;\r\nvar flyoutMixinCounter = 0;\r\n\r\nexport default function FlyoutMixin() {\r\n ClassNameMixin.call(this, ['open', 'closing', 'tweening-in', 'tweening-out']);\r\n this.isFlyoutOpened = false;\r\n this.animating = false;\r\n this.visible = false;\r\n this.toggle = new ClassNameMixin(['target-opened']);\r\n}\r\n\r\ndefinePrototype(FlyoutMixin, ClassNameMixin, {\r\n reset: function () {\r\n this.toggle.reset();\r\n return FlyoutMixinSuper.reset.call(this);\r\n },\r\n next: function () {\r\n this.effects = undefined;\r\n return FlyoutMixinSuper.next.call(this);\r\n },\r\n withEffects: function () {\r\n this.effects = makeArray(arguments);\r\n return this;\r\n },\r\n getCustomAttributes: function () {\r\n return extend({}, FlyoutMixinSuper.getCustomAttributes.call(this), {\r\n 'is-flyout': ''\r\n }, this.effects && {\r\n 'animate-on': 'open',\r\n 'animate-in': this.effects.join(' '),\r\n 'animate-out': ''\r\n });\r\n },\r\n onOpen: function (callback) {\r\n return this.onToggleState(function (opened) {\r\n if (opened) {\r\n return callback();\r\n }\r\n });\r\n },\r\n onToggleState: function (callback) {\r\n return this.watch('isFlyoutOpened', callback);\r\n },\r\n onVisibilityChanged: function (callback) {\r\n return this.watch('visible', callback);\r\n },\r\n initElement: function (element, state) {\r\n var self = this;\r\n FlyoutMixinSuper.initElement.call(self, element, state);\r\n if (!element.id) {\r\n element.id = 'flyout-' + (++flyoutMixinCounter);\r\n }\r\n app.on(element, {\r\n animationstart: function () {\r\n self.animating = true;\r\n },\r\n animationcomplete: function () {\r\n self.animating = false;\r\n },\r\n }, true);\r\n setImmediate(function () {\r\n each(self.toggle.elements(), function (i, v) {\r\n v.setAttribute('toggle', '#' + element.id);\r\n });\r\n });\r\n },\r\n clone: function () {\r\n var mixin = extend(FlyoutMixinSuper.clone.call(this), {\r\n toggle: this.toggle.ref.getMixin()\r\n });\r\n defineAliasProperty(mixin, 'isFlyoutOpened', this);\r\n return mixin;\r\n },\r\n onClassNameUpdated: function (element, prevState, state) {\r\n var self = this;\r\n var isAdded = function (v) {\r\n return prevState[v] !== state[v] && state[v];\r\n };\r\n var isRemoved = function (v) {\r\n return prevState[v] !== state[v] && !state[v];\r\n };\r\n if (isAdded('open')) {\r\n self.isFlyoutOpened = true;\r\n self.visible = true;\r\n } else if (isAdded('closing') || isAdded('tweening-out')) {\r\n self.isFlyoutOpened = false;\r\n } else if (isRemoved('open')) {\r\n self.visible = false;\r\n }\r\n }\r\n});\r\n","import { definePrototype } from \"../include/zeta-dom/util.js\";\r\nimport { setClass } from \"../include/zeta-dom/domUtil.js\";\r\nimport dom from \"../include/zeta-dom/dom.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst FocusStateMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function FocusStateMixin() {\r\n ClassNameMixin.call(this, ['focused']);\r\n}\r\n\r\ndefinePrototype(FocusStateMixin, ClassNameMixin, {\r\n initElement: function (element, state) {\r\n FocusStateMixinSuper.initElement.call(this, element, state);\r\n dom.on(element, {\r\n focusin: function () {\r\n setClass(element, 'focused', true);\r\n },\r\n focusout: function () {\r\n setClass(element, 'focused', false);\r\n }\r\n });\r\n }\r\n});\r\n","import { definePrototype } from \"../include/zeta-dom/util.js\";\r\nimport { setClass } from \"../include/zeta-dom/domUtil.js\";\r\nimport dom from \"../include/zeta-dom/dom.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst LoadingStateMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function LoadingStateMixin() {\r\n ClassNameMixin.call(this, ['loading']);\r\n}\r\n\r\ndefinePrototype(LoadingStateMixin, ClassNameMixin, {\r\n initElement: function (element, state) {\r\n LoadingStateMixinSuper.initElement.call(this, element, state);\r\n dom.on(element, {\r\n asyncStart: function () {\r\n setClass(element, 'loading', true);\r\n },\r\n asyncEnd: function () {\r\n setClass(element, 'loading', false);\r\n },\r\n cancelled: function () {\r\n setClass(element, 'loading', false);\r\n }\r\n });\r\n }\r\n});\r\n","import { defineAliasProperty, definePrototype, extend } from \"../include/zeta-dom/util.js\";\r\nimport { app } from \"../app.js\";\r\nimport Mixin from \"./Mixin.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst ScrollableMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function ScrollableMixin() {\r\n ClassNameMixin.call(this, ['scrollable-x', 'scrollable-x-l', 'scrollable-x-r', 'scrollable-y', 'scrollable-y-d', 'scrollable-y-u']);\r\n this.target = Mixin.scrollableTarget;\r\n this.pageIndex = 0;\r\n}\r\n\r\ndefinePrototype(ScrollableMixin, ClassNameMixin, {\r\n withOptions: function (options) {\r\n this.options = options;\r\n return this;\r\n },\r\n getCustomAttributes: function () {\r\n var options = this.options || {};\r\n return extend({}, ScrollableMixinSuper.getCustomAttributes.call(this), {\r\n 'scrollable': [options.direction || 'both', options.handle || 'auto'].join(' '),\r\n }, options.paged && {\r\n 'var': '{ pageIndex: 0 }',\r\n 'scroller-snap-page': options.paged,\r\n 'scroller-page': options.pagedItemSelector,\r\n 'scroller-state': 'pageIndex'\r\n });\r\n },\r\n onPageIndexChanged: function (callback) {\r\n return this.watch('pageIndex', callback);\r\n },\r\n initElement: function (element, state) {\r\n var self = this;\r\n app.on(element, 'statechange', function (e) {\r\n if ('pageIndex' in e.newValues) {\r\n extend(self, { pageIndex: e.newValues.pageIndex });\r\n }\r\n }, true);\r\n },\r\n clone: function () {\r\n var mixin = ScrollableMixinSuper.clone.call(this);\r\n defineAliasProperty(mixin, 'pageIndex', this);\r\n return mixin;\r\n }\r\n});\r\n","import { useState } from \"react\";\r\nimport Mixin from \"./mixins/Mixin.js\";\r\nimport AnimateMixin from \"./mixins/AnimateMixin.js\";\r\nimport AnimateSequenceItemMixin from \"./mixins/AnimateSequenceItemMixin.js\";\r\nimport AnimateSequenceMixin from \"./mixins/AnimateSequenceMixin.js\";\r\nimport ClassNameMixin from \"./mixins/ClassNameMixin.js\";\r\nimport FlyoutMixin from \"./mixins/FlyoutMixin.js\";\r\nimport FocusStateMixin from \"./mixins/FocusStateMixin.js\";\r\nimport LoadingStateMixin from \"./mixins/LoadingStateMixin.js\";\r\nimport StatefulMixin from \"./mixins/StatefulMixin.js\";\r\nimport ScrollableMixin from \"./mixins/ScrollableMixin.js\";\r\n\r\nexport function useScrollableMixin(options) {\r\n return useState(function () {\r\n return new ScrollableMixin();\r\n })[0].reset().withOptions(options);\r\n}\r\n\r\nexport function useFlyoutMixin() {\r\n return useState(function () {\r\n return new FlyoutMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useAnimateMixin() {\r\n return useState(function () {\r\n return new AnimateMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useAnimateSequenceMixin() {\r\n return useState(function () {\r\n return new AnimateSequenceMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useFocusStateMixin() {\r\n return useState(function () {\r\n return new FocusStateMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useLoadingStateMixin() {\r\n return useState(() => {\r\n return new LoadingStateMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useMixinRef(mixin) {\r\n return mixin.getMixin().reset();\r\n}\r\n\r\nexport {\r\n Mixin,\r\n AnimateMixin,\r\n AnimateSequenceItemMixin,\r\n AnimateSequenceMixin,\r\n ClassNameMixin,\r\n FlyoutMixin,\r\n FocusStateMixin,\r\n LoadingStateMixin,\r\n StatefulMixin,\r\n ScrollableMixin\r\n}\r\n","import React from \"react\";\r\nimport brew from \"brew-js\";\r\nimport { useAsyncContent } from \"zeta-dom-react\";\r\nimport { any, definePrototype, equal, exclude, extend, keys, makeArray, noop, pick, setImmediate } from \"./include/zeta-dom/util.js\";\r\nimport { app } from \"./app.js\";\r\n\r\nconst routeMap = new Map();\r\n\r\nfunction ViewContainer() {\r\n /** @type {any} */\r\n var self = this;\r\n React.Component.apply(self, arguments);\r\n self.mounted = false;\r\n self.componentWillUnmount = app.on('navigate', function () {\r\n if (self.mounted && self.getViewComponent()) {\r\n self.forceUpdate();\r\n }\r\n });\r\n}\r\n\r\ndefinePrototype(ViewContainer, React.Component, {\r\n componentDidMount: function () {\r\n this.mounted = true;\r\n },\r\n render: function () {\r\n /** @type {any} */\r\n var self = this;\r\n var V = self.getViewComponent();\r\n if (V && V !== self.currentViewComponent) {\r\n self.currentViewComponent = V;\r\n if (self.currentView && self.currentElement) {\r\n self.prevView = self.currentView;\r\n self.prevElement = self.currentElement;\r\n self.currentElement = undefined;\r\n brew.animateOut(self.prevElement, 'show').then(function () {\r\n self.prevElement = undefined;\r\n self.prevView = undefined;\r\n self.forceUpdate();\r\n });\r\n }\r\n self.currentView = React.createElement(V, {\r\n key: app.route.view,\r\n rootProps: exclude(self.props, ['views']),\r\n onComponentLoaded: function (element) {\r\n self.currentElement = element;\r\n setImmediate(function () {\r\n return brew.animateIn(element, 'show');\r\n });\r\n }\r\n });\r\n }\r\n return React.createElement(React.Fragment, null, self.prevView, self.currentView);\r\n },\r\n getViewComponent: function () {\r\n var views = this.props.views;\r\n var V = any(views, function (V) {\r\n var params = routeMap.get(V);\r\n return params && equal(params, pick(app.route, keys(params)));\r\n });\r\n return V || void app.navigate(linkTo(views[0]), true);\r\n }\r\n});\r\n\r\nexport function registerView(factory, routeParams) {\r\n var Component = function (props) {\r\n var childProps = exclude(props, ['rootProps', 'onComponentLoaded']);\r\n var Component = useAsyncContent(factory)[0];\r\n return React.createElement('div', extend({}, props.rootProps, {\r\n ref: function (element) {\r\n if (element && Component) {\r\n (props.onComponentLoaded || noop)(element);\r\n }\r\n },\r\n children: Component && React.createElement(Component.default, childProps)\r\n }));\r\n };\r\n routeMap.set(Component, routeParams);\r\n return Component;\r\n}\r\n\r\nexport function renderView() {\r\n var views = makeArray(arguments);\r\n var props;\r\n if (views[0] && typeof views[0] !== 'function') {\r\n props = views.shift();\r\n }\r\n return React.createElement(ViewContainer, extend({}, props, { views }));\r\n}\r\n\r\nexport function linkTo(view, params) {\r\n return app.route.getPath(extend({}, app.route, params, routeMap.get(view)));\r\n}\r\n","import * as all from \"./index.js\";\r\nexport default all;\r\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__359__","__WEBPACK_EXTERNAL_MODULE__318__","__WEBPACK_EXTERNAL_MODULE__80__","__WEBPACK_EXTERNAL_MODULE__654__","__WEBPACK_EXTERNAL_MODULE__103__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","zeta","noop","either","makeArray","is","isUndefinedOrNull","isArray","isFunction","isThenable","isPlainObject","isArrayLike","extend","each","any","map","grep","splice","kv","single","pick","exclude","equal","mapGet","mapRemove","arrRemove","setAdd","combineFn","setImmediate","executeOnce","createPrivateStore","setTimeoutOnce","keys","setImmediateOnce","throwNotFunction","values","getOwnPropertyDescriptors","definePrototype","defineAliasProperty","defineOwnProperty","defineGetterProperty","defineHiddenProperty","watchable","defineObservableProperty","watch","watchOnce","inherit","randomId","deepFreeze","iequal","always","repeat","camel","hyphenate","ucfirst","lcfirst","trim","matchWord","htmlDecode","resolve","reject","resolveAll","catchAsync","setPromiseTimeout","containsOrEquals","domReady","tagName","isVisible","matchSelector","comparePosition","connected","removeNode","acceptNode","combineNodeFilters","iterateNode","iterateNodeToArray","getCommonAncestor","parentsAndSelf","selectIncludeSelf","selectClosestRelative","createNodeIterator","createTreeWalker","bind","bindUntil","dispatchDOMMouseEvent","setClass","getClass","getScrollOffset","getScrollParent","getContentRect","scrollBy","scrollIntoView","createRange","rangeIntersects","rangeEquals","rangeCovers","compareRangePosition","makeSelection","getRect","getRects","toPlainRect","rectEquals","rectCovers","rectIntersects","pointInRect","mergeRect","elementFromPoint","textInputAllowed","beginDrag","beginPinchZoom","getShortcut","setShortcut","focusable","focused","setModal","retainFocus","releaseFocus","focus","createDialog","props","promise","document","createElement","closing","refresh","Component","forceRefresh","useState","v","onRender","closeDialog","brew","then","ReactDOM","onClose","close","open","className","modal","setAttribute","body","appendChild","dom","React","onCommit","onOpen","Dialog","_props","children","Fragment","dialog","useEffect","opened","app","useAppReady","sReady","ready","setReady","useLanguage","useObservableProperty","useRouteParam","name","defaultValue","sValue","route","setValue","current","navigate","getPath","StaticAttributeMixin","attributes","Mixin","this","MixinRefImpl","mixin","StatefulMixin","states","prefix","counter","app_","getCustomAttributes","next","getRef","getClassNames","scrollableTarget","use","args","arguments","ref","mixins","filter","refs","shift","push","i","classNames","getMixin","state","clone","initState","reset","element","initElement","elements","getPrototypeOf","ClassNameMixinSuper","ClassNameMixin","nodes","includes","prev","classList","contains","onClassNameUpdated","prevState","AnimateMixinSuper","AnimateMixin","effects","trigger","with","withEffects","join","AnimateSequenceItemMixinSuper","AnimateSequenceItemMixin","concat","AnimateSequenceMixinSuper","animateSequenceMixinCounter","AnimateSequenceMixin","item","FlyoutMixinSuper","flyoutMixinCounter","FlyoutMixin","isFlyoutOpened","animating","visible","toggle","callback","onToggleState","onVisibilityChanged","id","on","animationstart","animationcomplete","isAdded","FocusStateMixinSuper","FocusStateMixin","focusin","focusout","LoadingStateMixinSuper","LoadingStateMixin","asyncStart","asyncEnd","cancelled","ScrollableMixinSuper","ScrollableMixin","target","pageIndex","useScrollableMixin","options","withOptions","useFlyoutMixin","useAnimateMixin","useAnimateSequenceMixin","useFocusStateMixin","useLoadingStateMixin","useMixinRef","direction","handle","paged","pagedItemSelector","onPageIndexChanged","e","newValues","routeMap","Map","ViewContainer","mounted","componentWillUnmount","getViewComponent","forceUpdate","registerView","routeParams","childProps","useAsyncContent","rootProps","onComponentLoaded","set","renderView","views","linkTo","view","params","componentDidMount","render","V","currentViewComponent","currentView","currentElement","prevView","prevElement"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"brew-js-react.min.js","mappings":"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","sources":["webpack://brew-js-react/webpack/universalModuleDefinition","webpack://brew-js-react/external umd \"waterpipe\"","webpack://brew-js-react/external umd \"zeta-dom-react\"","webpack://brew-js-react/external umd {\"commonjs\":\"brew-js\",\"commonjs2\":\"brew-js\",\"amd\":\"brew-js\",\"root\":\"brew\"}","webpack://brew-js-react/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack://brew-js-react/external umd {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","webpack://brew-js-react/external umd {\"commonjs\":\"zeta-dom\",\"commonjs2\":\"zeta-dom\",\"amd\":\"zeta-dom\",\"root\":\"zeta\"}","webpack://brew-js-react/./src/include/external/waterpipe.js","webpack://brew-js-react/webpack/bootstrap","webpack://brew-js-react/webpack/runtime/define property getters","webpack://brew-js-react/webpack/runtime/hasOwnProperty shorthand","webpack://brew-js-react/webpack/runtime/make namespace object","webpack://brew-js-react/./tmp/zeta-dom/util.js","webpack://brew-js-react/./tmp/zeta-dom/domUtil.js","webpack://brew-js-react/./tmp/zeta-dom/dom.js","webpack://brew-js-react/./src/include/zeta-dom/dom.js","webpack://brew-js-react/./src/dialog.js","webpack://brew-js-react/./src/app.js","webpack://brew-js-react/./src/hooks.js","webpack://brew-js-react/./src/i18n.js","webpack://brew-js-react/./src/mixins/StaticAttributeMixin.js","webpack://brew-js-react/./src/mixins/Mixin.js","webpack://brew-js-react/./src/mixins/StatefulMixin.js","webpack://brew-js-react/./src/mixins/ClassNameMixin.js","webpack://brew-js-react/./src/mixins/AnimateMixin.js","webpack://brew-js-react/./src/mixins/AnimateSequenceItemMixin.js","webpack://brew-js-react/./src/mixins/AnimateSequenceMixin.js","webpack://brew-js-react/./src/mixins/FlyoutMixin.js","webpack://brew-js-react/./src/mixins/FocusStateMixin.js","webpack://brew-js-react/./src/mixins/LoadingStateMixin.js","webpack://brew-js-react/./src/mixins/ScrollableMixin.js","webpack://brew-js-react/./src/mixin.js","webpack://brew-js-react/./src/view.js","webpack://brew-js-react/./src/entry.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"), require(\"brew-js\"), require(\"zeta-dom\"), require(\"zeta-dom-react\"), require(\"waterpipe\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"brew-js-react\", [\"react\", \"react-dom\", \"brew-js\", \"zeta-dom\", \"zeta-dom-react\", \"waterpipe\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"brew-js-react\"] = factory(require(\"react\"), require(\"react-dom\"), require(\"brew-js\"), require(\"zeta-dom\"), require(\"zeta-dom-react\"), require(\"waterpipe\"));\n\telse\n\t\troot[\"brew-js-react\"] = factory(root[\"React\"], root[\"ReactDOM\"], root[\"brew\"], root[\"zeta\"], root[\"zeta-dom-react\"], root[\"waterpipe\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__359__, __WEBPACK_EXTERNAL_MODULE__318__, __WEBPACK_EXTERNAL_MODULE__80__, __WEBPACK_EXTERNAL_MODULE__654__, __WEBPACK_EXTERNAL_MODULE__103__, __WEBPACK_EXTERNAL_MODULE__28__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__28__;","module.exports = __WEBPACK_EXTERNAL_MODULE__103__;","module.exports = __WEBPACK_EXTERNAL_MODULE__80__;","module.exports = __WEBPACK_EXTERNAL_MODULE__359__;","module.exports = __WEBPACK_EXTERNAL_MODULE__318__;","module.exports = __WEBPACK_EXTERNAL_MODULE__654__;","// @ts-nocheck\r\n\r\n/** @type {Waterpipe} */\r\nconst waterpipe = window.waterpipe || require('waterpipe');\r\nmodule.exports = waterpipe;\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import zeta from \"zeta-dom\";const { noop, either, is, isUndefinedOrNull, isArray, isFunction, isThenable, isPlainObject, isArrayLike, makeArray, extend, each, map, grep, splice, any, single, kv, pick, exclude, mapGet, mapRemove, arrRemove, setAdd, equal, combineFn, executeOnce, createPrivateStore, setTimeoutOnce, setImmediate, setImmediateOnce, throwNotFunction, keys, values, hasOwnProperty, getOwnPropertyDescriptors, define, definePrototype, defineOwnProperty, defineGetterProperty, defineHiddenProperty, defineAliasProperty, defineObservableProperty, watch, watchOnce, watchable, inherit, deepFreeze, iequal, randomId, repeat, camel, hyphenate, ucfirst, lcfirst, trim, matchWord, htmlDecode, resolve, reject, always, resolveAll, catchAsync, setPromiseTimeout } = zeta.util; export { noop, either, is, isUndefinedOrNull, isArray, isFunction, isThenable, isPlainObject, isArrayLike, makeArray, extend, each, map, grep, splice, any, single, kv, pick, exclude, mapGet, mapRemove, arrRemove, setAdd, equal, combineFn, executeOnce, createPrivateStore, setTimeoutOnce, setImmediate, setImmediateOnce, throwNotFunction, keys, values, hasOwnProperty, getOwnPropertyDescriptors, define, definePrototype, defineOwnProperty, defineGetterProperty, defineHiddenProperty, defineAliasProperty, defineObservableProperty, watch, watchOnce, watchable, inherit, deepFreeze, iequal, randomId, repeat, camel, hyphenate, ucfirst, lcfirst, trim, matchWord, htmlDecode, resolve, reject, always, resolveAll, catchAsync, setPromiseTimeout };","import zeta from \"zeta-dom\";const { domReady, tagName, is, isVisible, matchSelector, comparePosition, connected, containsOrEquals, acceptNode, combineNodeFilters, iterateNode, iterateNodeToArray, getCommonAncestor, parentsAndSelf, selectIncludeSelf, selectClosestRelative, createNodeIterator, createTreeWalker, bind, bindUntil, dispatchDOMMouseEvent, removeNode, getClass, setClass, getScrollOffset, getScrollParent, getContentRect, scrollBy, scrollIntoView, createRange, rangeIntersects, rangeEquals, rangeCovers, compareRangePosition, makeSelection, getRect, getRects, toPlainRect, rectEquals, rectCovers, rectIntersects, pointInRect, mergeRect, elementFromPoint } = zeta.util; export { domReady, tagName, is, isVisible, matchSelector, comparePosition, connected, containsOrEquals, acceptNode, combineNodeFilters, iterateNode, iterateNodeToArray, getCommonAncestor, parentsAndSelf, selectIncludeSelf, selectClosestRelative, createNodeIterator, createTreeWalker, bind, bindUntil, dispatchDOMMouseEvent, removeNode, getClass, setClass, getScrollOffset, getScrollParent, getContentRect, scrollBy, scrollIntoView, createRange, rangeIntersects, rangeEquals, rangeCovers, compareRangePosition, makeSelection, getRect, getRects, toPlainRect, rectEquals, rectCovers, rectIntersects, pointInRect, mergeRect, elementFromPoint };","import zeta from \"zeta-dom\";const _defaultExport = zeta.dom; export default _defaultExport;const { textInputAllowed, beginDrag, beginPinchZoom, getShortcut, setShortcut, focusable, focused, setModal, retainFocus, releaseFocus, focus } = zeta.dom; export { textInputAllowed, beginDrag, beginPinchZoom, getShortcut, setShortcut, focusable, focused, setModal, retainFocus, releaseFocus, focus };","import dom from \"zeta-dom/dom\";\r\nexport * from \"zeta-dom/dom\";\r\nexport default dom;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport brew from \"brew-js\";\r\nimport { always, either, extend, noop } from \"./include/zeta-dom/util.js\";\r\nimport { containsOrEquals, removeNode } from \"./include/zeta-dom/domUtil.js\";\r\nimport dom from \"./include/zeta-dom/dom.js\";\r\n\r\n/**\r\n * @param {Partial<import(\"./dialog\").DialogOptions<any>>} props\r\n */\r\nexport function createDialog(props) {\r\n var root = document.createElement('div');\r\n var closing = false;\r\n var promise;\r\n\r\n function closeDialog(value) {\r\n if (!closing) {\r\n closing = true;\r\n brew.closeFlyout(root, value).then(function () {\r\n closing = false;\r\n removeNode(root);\r\n (props.onClose || noop)(root);\r\n if (props.onRender) {\r\n ReactDOM.unmountComponentAtNode(root);\r\n }\r\n });\r\n }\r\n }\r\n\r\n return {\r\n root: root,\r\n close: closeDialog,\r\n open: function () {\r\n if (promise) {\r\n return promise;\r\n }\r\n root.className = props.className || '';\r\n document.body.appendChild(root);\r\n dom.retainFocus(dom.activeElement, root);\r\n if (props.modal) {\r\n root.setAttribute('is-modal', '');\r\n dom.setModal(root);\r\n }\r\n if (props.onRender) {\r\n ReactDOM.render(React.createElement(props.onRender, extend({ closeDialog }, props)), root);\r\n }\r\n\r\n promise = brew.openFlyout(root);\r\n always(promise, function () {\r\n promise = null;\r\n });\r\n promise.then(props.onCommit);\r\n (props.onOpen || noop)(root);\r\n return promise;\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * @param {import(\"./dialog\").DialogProps} props\r\n */\r\nexport function Dialog(props) {\r\n const _props = useState(props)[0];\r\n const dialog = useState(function () {\r\n return createDialog(_props);\r\n })[0];\r\n extend(_props, props);\r\n\r\n useEffect(function () {\r\n var opened = containsOrEquals(dom.root, dialog.root);\r\n if (either(opened, _props.isOpen)) {\r\n if (!opened) {\r\n dialog.open();\r\n } else {\r\n dialog.close();\r\n }\r\n }\r\n }, [_props.isOpen])\r\n useEffect(function () {\r\n return dialog.close;\r\n }, [dialog]);\r\n return ReactDOM.createPortal(props.children, dialog.root);\r\n}\r\n","import brew from \"brew-js\";\r\n\r\n/** @type {Brew.AppInstance<Brew.WithRouter & Brew.WithI18n>} */\r\nexport var app;\r\n\r\nbrew.install('react', function (app_) {\r\n // @ts-ignore: type inference issue\r\n app = app_;\r\n});\r\n\r\nbrew.defaults.react = true;\r\n","import { useEffect, useState } from \"react\";\r\nimport { extend, kv } from \"./include/zeta-dom/util.js\";\r\nimport { app } from \"./app.js\";\r\n\r\nexport function useAppReady() {\r\n const sReady = useState(false);\r\n const ready = sReady[0], setReady = sReady[1];\r\n useEffect(function () {\r\n app.ready.then(function () {\r\n setReady(true);\r\n });\r\n }, []);\r\n return ready;\r\n}\r\n\r\nexport function useRouteParam(name, defaultValue) {\r\n const sValue = useState(app.route[name]);\r\n const value = sValue[0], setValue = sValue[1];\r\n useEffect(function () {\r\n var current = app.route[name];\r\n // route parameter might be changed after state initialization and before useEffect hook is called\r\n setValue(current);\r\n return app.route.watch(name, setValue);\r\n }, [name, defaultValue]);\r\n if (!value && defaultValue !== undefined) {\r\n app.navigate(app.route.getPath(extend({}, app.route, kv(name, defaultValue))), true);\r\n }\r\n return value || '';\r\n}\r\n","import { useObservableProperty } from \"zeta-dom-react\";\r\nimport waterpipe from \"./include/external/waterpipe.js\"\r\nimport { extend, makeArray, single } from \"./include/zeta-dom/util.js\";\r\nimport { app } from \"./app.js\";\r\n\r\nconst empty = Object.create(null);\r\n\r\nexport function useLanguage() {\r\n return useObservableProperty(app, 'language');\r\n}\r\n\r\nexport function makeTranslation(resources, defaultLang) {\r\n const re = new RegExp('^(' + Object.keys(resources[defaultLang]).join('|') + ')\\\\.');\r\n const cache = {};\r\n\r\n function getTranslation(prefix, name, data) {\r\n var str = ((resources[app.language] || empty)[prefix] || empty)[name] || ((resources[defaultLang] || empty)[prefix] || empty)[name] || '';\r\n return str && data !== undefined ? waterpipe(str, data) : str;\r\n }\r\n\r\n function createCallback(translate) {\r\n return extend(translate, {\r\n html: function (id, data) {\r\n return { __html: translate(id, data) };\r\n }\r\n });\r\n }\r\n\r\n function translate(key, data) {\r\n var prefix = re.test(key) ? RegExp.$1 : '';\r\n var name = prefix ? key.slice(RegExp.lastMatch.length) : key;\r\n return getTranslation(prefix, name, data) || key;\r\n }\r\n\r\n function useTranslation() {\r\n var prefix = makeArray(arguments);\r\n var language = useLanguage();\r\n var t = translate;\r\n if (prefix[0]) {\r\n var key = prefix.join(' ');\r\n t = cache[key] || (cache[key] = createCallback(function (key, data) {\r\n return single(prefix, function (v) {\r\n return getTranslation(v, key, data);\r\n }) || key;\r\n }));\r\n }\r\n return { language, t };\r\n }\r\n\r\n return {\r\n translate: createCallback(translate),\r\n useTranslation\r\n };\r\n}\r\n","import { definePrototype, extend } from \"../include/zeta-dom/util.js\";\r\nimport Mixin from \"./Mixin.js\";\r\n\r\nexport default function StaticAttributeMixin(attributes) {\r\n Mixin.call(this);\r\n this.attributes = attributes || {};\r\n}\r\n\r\ndefinePrototype(StaticAttributeMixin, Mixin, {\r\n getCustomAttributes: function () {\r\n return extend({}, this.attributes);\r\n }\r\n});\r\n","import { classNames } from \"zeta-dom-react\";\r\nimport { combineFn, define, definePrototype, each, extend, makeArray, noop, watchable } from \"../include/zeta-dom/util.js\";\r\nimport StaticAttributeMixin from \"./StaticAttributeMixin.js\";\r\n\r\nexport default function Mixin() {\r\n}\r\n\r\ndefinePrototype(Mixin, {\r\n next: function () {\r\n },\r\n getRef: function () {\r\n return noop;\r\n },\r\n getClassNames: function () {\r\n return [];\r\n },\r\n getCustomAttributes: function () {\r\n return {};\r\n }\r\n});\r\nwatchable(Mixin.prototype);\r\n\r\ndefine(Mixin, {\r\n get scrollableTarget() {\r\n return new StaticAttributeMixin({ 'scrollable-target': '' });\r\n },\r\n use: function () {\r\n const args = makeArray(arguments);\r\n const ref = args[0];\r\n const props = {};\r\n const mixins = args.filter(function (v) {\r\n return v instanceof Mixin;\r\n });\r\n const refs = mixins.map(function (v) {\r\n return v.getRef();\r\n });\r\n if (ref && !(ref instanceof Mixin)) {\r\n if (typeof ref !== 'function') {\r\n refs.push(function (v) {\r\n ref.current = v;\r\n });\r\n } else {\r\n refs.push(ref);\r\n }\r\n args.shift();\r\n } else if (!ref) {\r\n args.shift();\r\n }\r\n each(mixins, function (i, v) {\r\n extend(props, v.getCustomAttributes());\r\n });\r\n extend(props, {\r\n ref: combineFn(refs),\r\n className: classNames.apply(null, args)\r\n });\r\n each(mixins, function (i, v) {\r\n v.next();\r\n });\r\n return props;\r\n }\r\n});\r\n","import { definePrototype, inherit, randomId, values } from \"../include/zeta-dom/util.js\";\r\nimport Mixin from \"./Mixin.js\";\r\n\r\nfunction MixinRefImpl(mixin) {\r\n this.mixin = mixin;\r\n}\r\n\r\ndefinePrototype(MixinRefImpl, {\r\n getMixin: function () {\r\n return this.mixin;\r\n }\r\n});\r\n\r\nexport default function StatefulMixin() {\r\n Mixin.call(this);\r\n this.states = {};\r\n this.prefix = '';\r\n this.counter = 0;\r\n}\r\n\r\ndefinePrototype(StatefulMixin, Mixin, {\r\n get ref() {\r\n const state = this.state;\r\n this.next();\r\n return state.ref || (state.ref = new MixinRefImpl(this.clone()));\r\n },\r\n get state() {\r\n const self = this;\r\n const key = self.prefix + self.counter;\r\n return self.states[key] || (self.states[key] = self.initState());\r\n },\r\n reset: function () {\r\n this.counter = 0;\r\n return this;\r\n },\r\n next: function () {\r\n this.counter++;\r\n return this;\r\n },\r\n getRef: function () {\r\n const self = this;\r\n const state = self.state;\r\n return function (current) {\r\n if (current && current !== state.element) {\r\n state.element = current;\r\n self.initElement(current, state);\r\n }\r\n };\r\n },\r\n elements: function () {\r\n return values(this.states).map(function (v) {\r\n return v.element;\r\n }).filter(function (v) {\r\n return v;\r\n });\r\n },\r\n initState: function () {\r\n return { element: null };\r\n },\r\n initElement: function (element, state) {\r\n },\r\n clone: function () {\r\n return inherit(Object.getPrototypeOf(this), {\r\n states: this.states,\r\n prefix: randomId() + '.',\r\n counter: 0\r\n });\r\n }\r\n});\r\n","import { definePrototype, each, equal, extend } from \"../include/zeta-dom/util.js\";\r\nimport dom from \"../include/zeta-dom/dom.js\";\r\nimport StatefulMixin from \"./StatefulMixin.js\";\r\n\r\nconst ClassNameMixinSuper = StatefulMixin.prototype;\r\n\r\nexport default function ClassNameMixin(classNames) {\r\n StatefulMixin.call(this);\r\n this.classNames = classNames || [];\r\n}\r\n\r\ndefinePrototype(ClassNameMixin, StatefulMixin, {\r\n getClassNames: function () {\r\n return [this.state.classNames];\r\n },\r\n initState: function () {\r\n return {\r\n element: null,\r\n classNames: {}\r\n };\r\n },\r\n initElement: function (element, state) {\r\n var self = this;\r\n dom.watchAttributes(element, ['class'], function (nodes) {\r\n if (nodes.includes(element)) {\r\n const prev = extend({}, state.classNames);\r\n each(self.classNames, function (i, v) {\r\n state.classNames[v] = element.classList.contains(v);\r\n });\r\n if (!equal(prev, state.classNames)) {\r\n self.onClassNameUpdated(element, prev, state.classNames);\r\n }\r\n }\r\n });\r\n },\r\n clone: function () {\r\n return extend(ClassNameMixinSuper.clone.call(this), { classNames: this.classNames });\r\n },\r\n onClassNameUpdated: function (element, prevState, state) {\r\n }\r\n});\r\n","import { definePrototype, extend, makeArray } from \"../include/zeta-dom/util.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst AnimateMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function AnimateMixin() {\r\n ClassNameMixin.call(this, ['tweening-in', 'tweening-out']);\r\n}\r\n\r\ndefinePrototype(AnimateMixin, ClassNameMixin, {\r\n next: function () {\r\n this.effects = undefined;\r\n this.trigger = undefined;\r\n return AnimateMixinSuper.next.call(this);\r\n },\r\n with: function (props) {\r\n this.effects = props.effects;\r\n this.trigger = props.trigger;\r\n return this;\r\n },\r\n withEffects: function () {\r\n this.effects = makeArray(arguments);\r\n return this;\r\n },\r\n getCustomAttributes: function () {\r\n return extend({}, AnimateMixinSuper.getCustomAttributes.call(this), {\r\n 'animate-in': (this.effects || []).join(' '),\r\n 'animate-on': this.trigger || 'show'\r\n });\r\n }\r\n});\r\n","import { definePrototype } from \"../include/zeta-dom/util.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst AnimateSequenceItemMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function AnimateSequenceItemMixin(className) {\r\n ClassNameMixin.call(this, ['tweening-in', 'tweening-out']);\r\n this.className = className;\r\n}\r\n\r\ndefinePrototype(AnimateSequenceItemMixin, ClassNameMixin, {\r\n getClassNames: function () {\r\n return [this.className].concat(AnimateSequenceItemMixinSuper.getClassNames.call(this));\r\n }\r\n});\r\n","import { definePrototype, extend } from \"../include/zeta-dom/util.js\";\r\nimport AnimateMixin from \"./AnimateMixin.js\";\r\nimport AnimateSequenceItemMixin from \"./AnimateSequenceItemMixin.js\";\r\n\r\nconst AnimateSequenceMixinSuper = AnimateMixin.prototype;\r\nvar animateSequenceMixinCounter = 0;\r\n\r\nexport default function AnimateSequenceMixin() {\r\n AnimateMixin.call(this);\r\n this.className = 'brew-anim-' + (++animateSequenceMixinCounter);\r\n this.item = new AnimateSequenceItemMixin(this.className);\r\n}\r\n\r\ndefinePrototype(AnimateSequenceMixin, AnimateMixin, {\r\n reset: function () {\r\n this.item.reset();\r\n return AnimateSequenceMixinSuper.reset.call(this);\r\n },\r\n getCustomAttributes: function () {\r\n return extend({}, AnimateSequenceMixinSuper.getCustomAttributes.call(this), {\r\n 'animate-sequence': '.' + this.className\r\n });\r\n },\r\n clone: function () {\r\n return extend(AnimateSequenceMixinSuper.clone.call(this), {\r\n item: this.item.ref.getMixin()\r\n });\r\n }\r\n});\r\n","import { defineAliasProperty, definePrototype, each, extend, makeArray } from \"../include/zeta-dom/util.js\";\r\nimport { app } from \"../app.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst FlyoutMixinSuper = ClassNameMixin.prototype;\r\nvar flyoutMixinCounter = 0;\r\n\r\nexport default function FlyoutMixin() {\r\n ClassNameMixin.call(this, ['open', 'closing', 'tweening-in', 'tweening-out']);\r\n this.isFlyoutOpened = false;\r\n this.animating = false;\r\n this.visible = false;\r\n this.toggle = new ClassNameMixin(['target-opened']);\r\n}\r\n\r\ndefinePrototype(FlyoutMixin, ClassNameMixin, {\r\n reset: function () {\r\n this.toggle.reset();\r\n return FlyoutMixinSuper.reset.call(this);\r\n },\r\n next: function () {\r\n this.effects = undefined;\r\n return FlyoutMixinSuper.next.call(this);\r\n },\r\n withEffects: function () {\r\n this.effects = makeArray(arguments);\r\n return this;\r\n },\r\n getCustomAttributes: function () {\r\n return extend({}, FlyoutMixinSuper.getCustomAttributes.call(this), {\r\n 'is-flyout': ''\r\n }, this.effects && {\r\n 'animate-on': 'open',\r\n 'animate-in': this.effects.join(' '),\r\n 'animate-out': ''\r\n });\r\n },\r\n onOpen: function (callback) {\r\n return this.onToggleState(function (opened) {\r\n if (opened) {\r\n return callback();\r\n }\r\n });\r\n },\r\n onToggleState: function (callback) {\r\n return this.watch('isFlyoutOpened', callback);\r\n },\r\n onVisibilityChanged: function (callback) {\r\n return this.watch('visible', callback);\r\n },\r\n initElement: function (element, state) {\r\n var self = this;\r\n FlyoutMixinSuper.initElement.call(self, element, state);\r\n if (!element.id) {\r\n element.id = 'flyout-' + (++flyoutMixinCounter);\r\n }\r\n app.on(element, {\r\n animationstart: function () {\r\n self.animating = true;\r\n },\r\n animationcomplete: function () {\r\n self.animating = false;\r\n },\r\n }, true);\r\n setImmediate(function () {\r\n each(self.toggle.elements(), function (i, v) {\r\n v.setAttribute('toggle', '#' + element.id);\r\n });\r\n });\r\n },\r\n clone: function () {\r\n var mixin = extend(FlyoutMixinSuper.clone.call(this), {\r\n toggle: this.toggle.ref.getMixin()\r\n });\r\n defineAliasProperty(mixin, 'isFlyoutOpened', this);\r\n return mixin;\r\n },\r\n onClassNameUpdated: function (element, prevState, state) {\r\n var self = this;\r\n var isAdded = function (v) {\r\n return prevState[v] !== state[v] && state[v];\r\n };\r\n var isRemoved = function (v) {\r\n return prevState[v] !== state[v] && !state[v];\r\n };\r\n if (isAdded('open')) {\r\n self.isFlyoutOpened = true;\r\n self.visible = true;\r\n } else if (isAdded('closing') || isAdded('tweening-out')) {\r\n self.isFlyoutOpened = false;\r\n } else if (isRemoved('open')) {\r\n self.visible = false;\r\n }\r\n }\r\n});\r\n","import { definePrototype } from \"../include/zeta-dom/util.js\";\r\nimport { setClass } from \"../include/zeta-dom/domUtil.js\";\r\nimport dom from \"../include/zeta-dom/dom.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst FocusStateMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function FocusStateMixin() {\r\n ClassNameMixin.call(this, ['focused']);\r\n}\r\n\r\ndefinePrototype(FocusStateMixin, ClassNameMixin, {\r\n initElement: function (element, state) {\r\n FocusStateMixinSuper.initElement.call(this, element, state);\r\n dom.on(element, {\r\n focusin: function () {\r\n setClass(element, 'focused', true);\r\n },\r\n focusout: function () {\r\n setClass(element, 'focused', false);\r\n }\r\n });\r\n }\r\n});\r\n","import { definePrototype } from \"../include/zeta-dom/util.js\";\r\nimport { setClass } from \"../include/zeta-dom/domUtil.js\";\r\nimport dom from \"../include/zeta-dom/dom.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst LoadingStateMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function LoadingStateMixin() {\r\n ClassNameMixin.call(this, ['loading']);\r\n}\r\n\r\ndefinePrototype(LoadingStateMixin, ClassNameMixin, {\r\n initElement: function (element, state) {\r\n LoadingStateMixinSuper.initElement.call(this, element, state);\r\n dom.on(element, {\r\n asyncStart: function () {\r\n setClass(element, 'loading', true);\r\n },\r\n asyncEnd: function () {\r\n setClass(element, 'loading', false);\r\n },\r\n cancelled: function () {\r\n setClass(element, 'loading', false);\r\n }\r\n });\r\n }\r\n});\r\n","import { defineAliasProperty, definePrototype, extend } from \"../include/zeta-dom/util.js\";\r\nimport { app } from \"../app.js\";\r\nimport Mixin from \"./Mixin.js\";\r\nimport ClassNameMixin from \"./ClassNameMixin.js\";\r\n\r\nconst ScrollableMixinSuper = ClassNameMixin.prototype;\r\n\r\nexport default function ScrollableMixin() {\r\n ClassNameMixin.call(this, ['scrollable-x', 'scrollable-x-l', 'scrollable-x-r', 'scrollable-y', 'scrollable-y-d', 'scrollable-y-u']);\r\n this.target = Mixin.scrollableTarget;\r\n this.pageIndex = 0;\r\n}\r\n\r\ndefinePrototype(ScrollableMixin, ClassNameMixin, {\r\n withOptions: function (options) {\r\n this.options = options;\r\n return this;\r\n },\r\n getCustomAttributes: function () {\r\n var options = this.options || {};\r\n return extend({}, ScrollableMixinSuper.getCustomAttributes.call(this), {\r\n 'scrollable': [options.direction || 'both', options.handle || 'auto'].join(' '),\r\n }, options.paged && {\r\n 'var': '{ pageIndex: 0 }',\r\n 'scroller-snap-page': options.paged,\r\n 'scroller-page': options.pagedItemSelector,\r\n 'scroller-state': 'pageIndex'\r\n });\r\n },\r\n onPageIndexChanged: function (callback) {\r\n return this.watch('pageIndex', callback);\r\n },\r\n initElement: function (element, state) {\r\n var self = this;\r\n app.on(element, 'statechange', function (e) {\r\n if ('pageIndex' in e.newValues) {\r\n extend(self, { pageIndex: e.newValues.pageIndex });\r\n }\r\n }, true);\r\n },\r\n clone: function () {\r\n var mixin = ScrollableMixinSuper.clone.call(this);\r\n defineAliasProperty(mixin, 'pageIndex', this);\r\n return mixin;\r\n }\r\n});\r\n","import { useState } from \"react\";\r\nimport Mixin from \"./mixins/Mixin.js\";\r\nimport AnimateMixin from \"./mixins/AnimateMixin.js\";\r\nimport AnimateSequenceItemMixin from \"./mixins/AnimateSequenceItemMixin.js\";\r\nimport AnimateSequenceMixin from \"./mixins/AnimateSequenceMixin.js\";\r\nimport ClassNameMixin from \"./mixins/ClassNameMixin.js\";\r\nimport FlyoutMixin from \"./mixins/FlyoutMixin.js\";\r\nimport FocusStateMixin from \"./mixins/FocusStateMixin.js\";\r\nimport LoadingStateMixin from \"./mixins/LoadingStateMixin.js\";\r\nimport StatefulMixin from \"./mixins/StatefulMixin.js\";\r\nimport ScrollableMixin from \"./mixins/ScrollableMixin.js\";\r\n\r\nexport function useScrollableMixin(options) {\r\n return useState(function () {\r\n return new ScrollableMixin();\r\n })[0].reset().withOptions(options);\r\n}\r\n\r\nexport function useFlyoutMixin() {\r\n return useState(function () {\r\n return new FlyoutMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useAnimateMixin() {\r\n return useState(function () {\r\n return new AnimateMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useAnimateSequenceMixin() {\r\n return useState(function () {\r\n return new AnimateSequenceMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useFocusStateMixin() {\r\n return useState(function () {\r\n return new FocusStateMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useLoadingStateMixin() {\r\n return useState(() => {\r\n return new LoadingStateMixin();\r\n })[0].reset();\r\n}\r\n\r\nexport function useMixinRef(mixin) {\r\n return mixin.getMixin().reset();\r\n}\r\n\r\nexport {\r\n Mixin,\r\n AnimateMixin,\r\n AnimateSequenceItemMixin,\r\n AnimateSequenceMixin,\r\n ClassNameMixin,\r\n FlyoutMixin,\r\n FocusStateMixin,\r\n LoadingStateMixin,\r\n StatefulMixin,\r\n ScrollableMixin\r\n}\r\n","import React from \"react\";\r\nimport brew from \"brew-js\";\r\nimport { useAsync } from \"zeta-dom-react\";\r\nimport { any, definePrototype, equal, exclude, extend, keys, makeArray, noop, pick, setImmediate } from \"./include/zeta-dom/util.js\";\r\nimport { app } from \"./app.js\";\r\n\r\nconst routeMap = new Map();\r\n\r\nfunction ViewContainer() {\r\n /** @type {any} */\r\n var self = this;\r\n React.Component.apply(self, arguments);\r\n self.mounted = false;\r\n self.componentWillUnmount = app.on('navigate', function () {\r\n if (self.mounted && self.getViewComponent()) {\r\n self.forceUpdate();\r\n }\r\n });\r\n}\r\n\r\ndefinePrototype(ViewContainer, React.Component, {\r\n componentDidMount: function () {\r\n this.mounted = true;\r\n },\r\n render: function () {\r\n /** @type {any} */\r\n var self = this;\r\n var V = self.getViewComponent();\r\n if (V && V !== self.currentViewComponent) {\r\n self.currentViewComponent = V;\r\n if (self.currentView && self.currentElement) {\r\n self.prevView = self.currentView;\r\n self.prevElement = self.currentElement;\r\n self.currentElement = undefined;\r\n brew.animateOut(self.prevElement, 'show').then(function () {\r\n self.prevElement = undefined;\r\n self.prevView = undefined;\r\n self.forceUpdate();\r\n });\r\n }\r\n self.currentView = React.createElement(V, {\r\n key: app.route.view,\r\n rootProps: exclude(self.props, ['views']),\r\n onComponentLoaded: function (element) {\r\n self.currentElement = element;\r\n setImmediate(function () {\r\n return brew.animateIn(element, 'show');\r\n });\r\n }\r\n });\r\n }\r\n return React.createElement(React.Fragment, null, self.prevView, self.currentView);\r\n },\r\n getViewComponent: function () {\r\n var views = this.props.views;\r\n var V = any(views, function (V) {\r\n var params = routeMap.get(V);\r\n return params && equal(params, pick(app.route, keys(params)));\r\n });\r\n return V || void app.navigate(linkTo(views[0]), true);\r\n }\r\n});\r\n\r\nexport function registerView(factory, routeParams) {\r\n var Component = function (props) {\r\n var childProps = exclude(props, ['rootProps', 'onComponentLoaded']);\r\n var Component = useAsync(factory)[0];\r\n return React.createElement('div', extend({}, props.rootProps, {\r\n ref: function (element) {\r\n if (element && Component) {\r\n (props.onComponentLoaded || noop)(element);\r\n }\r\n },\r\n children: Component && React.createElement(Component.default, childProps)\r\n }));\r\n };\r\n routeMap.set(Component, routeParams);\r\n return Component;\r\n}\r\n\r\nexport function renderView() {\r\n var views = makeArray(arguments);\r\n var props;\r\n if (views[0] && typeof views[0] !== 'function') {\r\n props = views.shift();\r\n }\r\n return React.createElement(ViewContainer, extend({}, props, { views }));\r\n}\r\n\r\nexport function linkTo(view, params) {\r\n return app.route.getPath(extend({}, app.route, params, routeMap.get(view)));\r\n}\r\n","import * as all from \"./index.js\";\r\nexport default all;\r\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__359__","__WEBPACK_EXTERNAL_MODULE__318__","__WEBPACK_EXTERNAL_MODULE__80__","__WEBPACK_EXTERNAL_MODULE__654__","__WEBPACK_EXTERNAL_MODULE__103__","__WEBPACK_EXTERNAL_MODULE__28__","waterpipe","window","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","zeta","noop","either","makeArray","is","isUndefinedOrNull","isArray","isFunction","isThenable","isPlainObject","isArrayLike","extend","each","any","map","grep","splice","single","kv","pick","exclude","equal","mapGet","mapRemove","arrRemove","setAdd","combineFn","setImmediate","executeOnce","createPrivateStore","setTimeoutOnce","keys","setImmediateOnce","throwNotFunction","values","getOwnPropertyDescriptors","definePrototype","defineAliasProperty","defineOwnProperty","defineGetterProperty","defineHiddenProperty","watchable","defineObservableProperty","watch","watchOnce","inherit","randomId","deepFreeze","iequal","always","repeat","camel","hyphenate","ucfirst","lcfirst","trim","matchWord","htmlDecode","resolve","reject","resolveAll","catchAsync","setPromiseTimeout","containsOrEquals","domReady","tagName","isVisible","matchSelector","comparePosition","connected","removeNode","acceptNode","combineNodeFilters","iterateNode","iterateNodeToArray","getCommonAncestor","parentsAndSelf","selectIncludeSelf","selectClosestRelative","createNodeIterator","createTreeWalker","bind","bindUntil","dispatchDOMMouseEvent","setClass","getClass","getScrollOffset","getScrollParent","getContentRect","scrollBy","scrollIntoView","createRange","rangeIntersects","rangeEquals","rangeCovers","compareRangePosition","makeSelection","getRect","getRects","toPlainRect","rectEquals","rectCovers","rectIntersects","pointInRect","mergeRect","elementFromPoint","textInputAllowed","beginDrag","beginPinchZoom","getShortcut","setShortcut","focusable","focused","setModal","retainFocus","releaseFocus","focus","createDialog","props","promise","document","createElement","closing","closeDialog","brew","then","onClose","onRender","ReactDOM","close","open","className","body","appendChild","dom","modal","setAttribute","React","onCommit","onOpen","Dialog","_props","useState","dialog","useEffect","opened","isOpen","children","app","useAppReady","sReady","ready","setReady","useRouteParam","name","defaultValue","sValue","route","setValue","current","navigate","getPath","app_","empty","create","useLanguage","useObservableProperty","makeTranslation","resources","defaultLang","re","RegExp","join","cache","getTranslation","prefix","data","str","language","createCallback","translate","html","id","__html","test","$1","slice","lastMatch","length","useTranslation","arguments","t","v","StaticAttributeMixin","attributes","Mixin","this","MixinRefImpl","mixin","StatefulMixin","states","counter","getCustomAttributes","next","getRef","getClassNames","scrollableTarget","use","args","ref","mixins","filter","refs","shift","push","i","classNames","getMixin","state","clone","initState","reset","element","initElement","elements","getPrototypeOf","ClassNameMixinSuper","ClassNameMixin","nodes","includes","prev","classList","contains","onClassNameUpdated","prevState","AnimateMixinSuper","AnimateMixin","effects","trigger","with","withEffects","AnimateSequenceItemMixinSuper","AnimateSequenceItemMixin","concat","AnimateSequenceMixinSuper","animateSequenceMixinCounter","AnimateSequenceMixin","item","FlyoutMixinSuper","flyoutMixinCounter","FlyoutMixin","isFlyoutOpened","animating","visible","toggle","callback","onToggleState","onVisibilityChanged","on","animationstart","animationcomplete","isAdded","FocusStateMixinSuper","FocusStateMixin","focusin","focusout","LoadingStateMixinSuper","LoadingStateMixin","asyncStart","asyncEnd","cancelled","ScrollableMixinSuper","ScrollableMixin","target","pageIndex","useScrollableMixin","options","withOptions","useFlyoutMixin","useAnimateMixin","useAnimateSequenceMixin","useFocusStateMixin","useLoadingStateMixin","useMixinRef","direction","handle","paged","pagedItemSelector","onPageIndexChanged","e","newValues","routeMap","Map","ViewContainer","mounted","componentWillUnmount","getViewComponent","forceUpdate","registerView","routeParams","Component","childProps","useAsync","rootProps","onComponentLoaded","set","renderView","views","linkTo","view","params","componentDidMount","render","V","currentViewComponent","currentView","currentElement","prevView","prevElement"],"sourceRoot":""}
|
package/hooks.d.ts
CHANGED
|
@@ -5,12 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export function useAppReady(): boolean;
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* Returns the current language, and
|
|
10
|
-
* refresh the component when the language has changed.
|
|
11
|
-
*/
|
|
12
|
-
export function useLanguage(): string;
|
|
13
|
-
|
|
14
8
|
/**
|
|
15
9
|
* Returns the value of specified route parameter, and
|
|
16
10
|
* refresh the component when the route parameter has changed.
|
package/hooks.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
import { useObservableProperty } from "zeta-dom-react";
|
|
3
2
|
import { extend, kv } from "./include/zeta-dom/util.js";
|
|
4
3
|
import { app } from "./app.js";
|
|
5
4
|
|
|
@@ -14,10 +13,6 @@ export function useAppReady() {
|
|
|
14
13
|
return ready;
|
|
15
14
|
}
|
|
16
15
|
|
|
17
|
-
export function useLanguage() {
|
|
18
|
-
return useObservableProperty(app, 'language');
|
|
19
|
-
}
|
|
20
|
-
|
|
21
16
|
export function useRouteParam(name, defaultValue) {
|
|
22
17
|
const sValue = useState(app.route[name]);
|
|
23
18
|
const value = sValue[0], setValue = sValue[1];
|
package/i18n.d.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
type StringKeysOf<T> = Extract<keyof T, string>;
|
|
2
|
+
type ArrayMember<T> = { [P in Extract<keyof T, number>]: T[P] }[Extract<keyof T, number>];
|
|
3
|
+
|
|
4
|
+
export interface Translate<T> {
|
|
5
|
+
/**
|
|
6
|
+
* Returns a translation string.
|
|
7
|
+
* @param key Tranlsation key.
|
|
8
|
+
* @param data Data object to be passed to template engine.
|
|
9
|
+
*/
|
|
10
|
+
(key: T, data?: any): string;
|
|
11
|
+
/**
|
|
12
|
+
* Returns a object containing the translated HTML content that can be passed to {@link React.DOMAttributes.dangerouslySetInnerHTML}.
|
|
13
|
+
* @param key Tranlsation key.
|
|
14
|
+
* @param data Data object to be passed to template engine.
|
|
15
|
+
*/
|
|
16
|
+
html(key: T, data?: any): { __html: string };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface Translation<T> {
|
|
20
|
+
/**
|
|
21
|
+
* Current language.
|
|
22
|
+
*/
|
|
23
|
+
readonly language: string;
|
|
24
|
+
/**
|
|
25
|
+
* Translation callback which returns a translated string based on the given translation key.
|
|
26
|
+
*/
|
|
27
|
+
readonly t: Translate<T>
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Returns the current language, and
|
|
32
|
+
* refresh the component when the language has changed.
|
|
33
|
+
*/
|
|
34
|
+
export function useLanguage(): string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Creates translation callback and hook based on the given translation resource object.
|
|
38
|
+
* Type inference for translation keys is based on default language.
|
|
39
|
+
* @param resources Translation resource object, see example for object structure.
|
|
40
|
+
* @param defaultLang Default language when translation string is unavailable in the current language.
|
|
41
|
+
*
|
|
42
|
+
* @example A sample translation resource object.
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const resources = {
|
|
45
|
+
* en: {
|
|
46
|
+
* prefix1: { key1: 'Translation string' }
|
|
47
|
+
* },
|
|
48
|
+
* de: {
|
|
49
|
+
* prefix1: { key1: 'Übersetzungszeichenfolge' }
|
|
50
|
+
* }
|
|
51
|
+
* };
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function makeTranslation<T extends Zeta.Dictionary<object>, K extends keyof T>(resources: T, defaultLang: K) {
|
|
55
|
+
type ResourceObject = typeof resources[K];
|
|
56
|
+
type ResourcePrefix = StringKeysOf<ResourceObject>;
|
|
57
|
+
type ResourceKey<T extends ResourcePrefix> = StringKeysOf<ResourceObject[T]>;
|
|
58
|
+
type ResourceGlobalKey = { [P in ResourcePrefix]: `${P}.${StringKeysOf<ResourceObject[P]>}` }[ResourcePrefix];
|
|
59
|
+
|
|
60
|
+
interface UseTranslationHook {
|
|
61
|
+
/**
|
|
62
|
+
* Create translation callback which only looks up all prefixes.
|
|
63
|
+
* Translation key must include prefix.
|
|
64
|
+
*/
|
|
65
|
+
(): Translation<ResourceGlobalKey>;
|
|
66
|
+
/**
|
|
67
|
+
* Create translation callback which only looks up the given prefixes.
|
|
68
|
+
* Translation string will be looked up in prefixes of the specified order.
|
|
69
|
+
*/
|
|
70
|
+
<T extends readonly ResourcePrefix[]>(...args: T): Translation<ResourceKey<ArrayMember<T>>>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
declare const translate: Translate<ResourceGlobalKey>;
|
|
74
|
+
declare const useTranslation: UseTranslationHook;
|
|
75
|
+
return { translate, useTranslation };
|
|
76
|
+
}
|
package/i18n.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useObservableProperty } from "zeta-dom-react";
|
|
2
|
+
import waterpipe from "./include/external/waterpipe.js"
|
|
3
|
+
import { extend, makeArray, single } from "./include/zeta-dom/util.js";
|
|
4
|
+
import { app } from "./app.js";
|
|
5
|
+
|
|
6
|
+
const empty = Object.create(null);
|
|
7
|
+
|
|
8
|
+
export function useLanguage() {
|
|
9
|
+
return useObservableProperty(app, 'language');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function makeTranslation(resources, defaultLang) {
|
|
13
|
+
const re = new RegExp('^(' + Object.keys(resources[defaultLang]).join('|') + ')\\.');
|
|
14
|
+
const cache = {};
|
|
15
|
+
|
|
16
|
+
function getTranslation(prefix, name, data) {
|
|
17
|
+
var str = ((resources[app.language] || empty)[prefix] || empty)[name] || ((resources[defaultLang] || empty)[prefix] || empty)[name] || '';
|
|
18
|
+
return str && data !== undefined ? waterpipe(str, data) : str;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function createCallback(translate) {
|
|
22
|
+
return extend(translate, {
|
|
23
|
+
html: function (id, data) {
|
|
24
|
+
return { __html: translate(id, data) };
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function translate(key, data) {
|
|
30
|
+
var prefix = re.test(key) ? RegExp.$1 : '';
|
|
31
|
+
var name = prefix ? key.slice(RegExp.lastMatch.length) : key;
|
|
32
|
+
return getTranslation(prefix, name, data) || key;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function useTranslation() {
|
|
36
|
+
var prefix = makeArray(arguments);
|
|
37
|
+
var language = useLanguage();
|
|
38
|
+
var t = translate;
|
|
39
|
+
if (prefix[0]) {
|
|
40
|
+
var key = prefix.join(' ');
|
|
41
|
+
t = cache[key] || (cache[key] = createCallback(function (key, data) {
|
|
42
|
+
return single(prefix, function (v) {
|
|
43
|
+
return getTranslation(v, key, data);
|
|
44
|
+
}) || key;
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
return { language, t };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
translate: createCallback(translate),
|
|
52
|
+
useTranslation
|
|
53
|
+
};
|
|
54
|
+
}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
package/mixins/StatefulMixin.js
CHANGED
|
@@ -41,11 +41,9 @@ definePrototype(StatefulMixin, Mixin, {
|
|
|
41
41
|
const self = this;
|
|
42
42
|
const state = self.state;
|
|
43
43
|
return function (current) {
|
|
44
|
-
if (current !== state.element) {
|
|
44
|
+
if (current && current !== state.element) {
|
|
45
45
|
state.element = current;
|
|
46
|
-
|
|
47
|
-
self.initElement(current, state);
|
|
48
|
-
}
|
|
46
|
+
self.initElement(current, state);
|
|
49
47
|
}
|
|
50
48
|
};
|
|
51
49
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brew-js-react",
|
|
3
|
-
"version": "0.1.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -12,11 +12,13 @@
|
|
|
12
12
|
},
|
|
13
13
|
"author": "misonou",
|
|
14
14
|
"license": "ISC",
|
|
15
|
-
"
|
|
15
|
+
"homepage": "https://hackmd.io/@misonou/brew-js-react",
|
|
16
|
+
"repository": "github:misonou/brew-js-react",
|
|
16
17
|
"dependencies": {
|
|
17
18
|
"brew-js": "^0.2.1",
|
|
18
19
|
"react": "^16.14.0",
|
|
19
20
|
"react-dom": "^16.14.0",
|
|
21
|
+
"waterpipe": "^2.4.2",
|
|
20
22
|
"zeta-dom": "^0.1.13",
|
|
21
23
|
"zeta-dom-react": "^0.1.0-beta"
|
|
22
24
|
},
|