arrmatura 4.2.2 → 5.0.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.
Files changed (93) hide show
  1. package/README.md +30 -25
  2. package/commons/auth/UserService.ts +107 -0
  3. package/commons/auth/index.ts +4 -0
  4. package/commons/auth/user.xml +66 -0
  5. package/commons/components/buttons.xml +23 -0
  6. package/commons/components/index.ts +13 -0
  7. package/commons/components/inputs.xml +33 -0
  8. package/commons/components/layouts.xml +77 -0
  9. package/commons/components/media.xml +21 -0
  10. package/commons/components/modal.xml +37 -0
  11. package/commons/components/navigation.xml +59 -0
  12. package/commons/components/popups.xml +12 -0
  13. package/commons/components/searchbar.xml +40 -0
  14. package/commons/components/table.xml +120 -0
  15. package/commons/components/toasts.xml +13 -0
  16. package/commons/components/viewport.xml +48 -0
  17. package/commons/forms/FieldItem.xml +20 -0
  18. package/commons/forms/FormController.ts +73 -0
  19. package/commons/forms/Item.ts +68 -0
  20. package/commons/forms/ItemCollection.ts +152 -0
  21. package/commons/forms/ItemController.ts +62 -0
  22. package/commons/forms/MetadataService.ts +45 -0
  23. package/commons/forms/MultiEnumField.xml +44 -0
  24. package/commons/forms/MultivalueController.ts +49 -0
  25. package/commons/forms/SmartareaField.xml +51 -0
  26. package/commons/forms/SuggestionController.ts +80 -0
  27. package/commons/forms/SuggestionField.xml +28 -0
  28. package/commons/forms/fields.xml +138 -0
  29. package/commons/forms/form.xml +37 -0
  30. package/commons/forms/index.ts +29 -0
  31. package/commons/index.ts +6 -0
  32. package/commons/pipes/index.ts +21 -0
  33. package/commons/pipes/showCounts.ts +16 -0
  34. package/commons/services/ErrorHandlingService.ts +11 -0
  35. package/commons/services/FirebaseService.ts +185 -0
  36. package/commons/services/GSheetsService.ts +92 -0
  37. package/commons/services/HeartbeatService.ts +35 -0
  38. package/commons/services/Invoke.ts +13 -0
  39. package/commons/services/JsonpService.ts +18 -0
  40. package/commons/services/Loader.ts +17 -0
  41. package/commons/services/LocalStorage.ts +46 -0
  42. package/commons/services/NavigationService.ts +55 -0
  43. package/commons/services/Service.ts +68 -0
  44. package/commons/services/ServiceWorker.ts +111 -0
  45. package/commons/services/ToastService.ts +49 -0
  46. package/commons/services/index.ts +14 -0
  47. package/core/Arrmatura.ts +79 -0
  48. package/core/CNode.ts +112 -0
  49. package/core/Component.ts +431 -0
  50. package/core/Platform.ts +3 -0
  51. package/core/cnodes/composition.ts +100 -0
  52. package/core/cnodes/conditionals.ts +51 -0
  53. package/core/cnodes/elementary.ts +45 -0
  54. package/core/cnodes/iterations.ts +94 -0
  55. package/core/cnodes/routing.ts +25 -0
  56. package/core/compileNode.ts +39 -0
  57. package/core/expression.ts +73 -0
  58. package/core/index.ts +2 -0
  59. package/core/register.ts +43 -0
  60. package/core/utils.ts +25 -0
  61. package/core-web/WebPlatform.ts +25 -0
  62. package/core-web/attributes.ts +197 -0
  63. package/core-web/elements.ts +64 -0
  64. package/core-web/index.ts +19 -0
  65. package/core-web/reflow.ts +30 -0
  66. package/core-web/type.ts +19 -0
  67. package/docs/index.js +191 -4077
  68. package/lib/arrayGroupBy.ts +19 -0
  69. package/lib/arraySortBy.ts +49 -0
  70. package/lib/arrayToObject.ts +18 -0
  71. package/lib/codus.ts +25 -0
  72. package/lib/consts.ts +3 -0
  73. package/lib/createListeners.ts +12 -0
  74. package/lib/curry.ts +8 -0
  75. package/lib/dateFormat.ts +69 -0
  76. package/lib/dateOf.ts +31 -0
  77. package/lib/dateParseISO8601.ts +27 -0
  78. package/lib/fx.ts +62 -0
  79. package/lib/guid.ts +7 -0
  80. package/lib/index.ts +19 -0
  81. package/lib/l10n.ts +40 -0
  82. package/lib/nextId.ts +9 -0
  83. package/lib/noop.ts +8 -0
  84. package/lib/obj.ts +62 -0
  85. package/lib/predicat.ts +26 -0
  86. package/lib/resources.ru.ts +20 -0
  87. package/lib/resources.ts +20 -0
  88. package/lib/scalar.ts +25 -0
  89. package/lib/str.ts +76 -0
  90. package/lib/urls.ts +91 -0
  91. package/lib/xml.ts +117 -0
  92. package/package.json +17 -8
  93. package/docs/index.js.map +0 -1
package/docs/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./index.js","webpack:///./lib/compile.expr.js","webpack:///./lib/compile.js","webpack:///./lib/component.js","webpack:///./lib/component.utils.js","webpack:///./lib/dom.attrs.js","webpack:///./lib/element.js","webpack:///./lib/index.js","webpack:///./lib/node.js","webpack:///./lib/register.js","webpack:///./lib/utils.js","webpack:///./lib/xml.js","webpack:///./lib/xml.utils.js","webpack:///./pipes/arr.js","webpack:///./pipes/date.js","webpack:///./pipes/index.js","webpack:///./pipes/obj.js","webpack:///./pipes/str.js","webpack:///./pipes/url.js","webpack:///./types/Form.js","webpack:///./types/NavigationService.js","webpack:///./types/Service.js","webpack:///./types/ServiceWorker.js","webpack:///./types/elements.html","webpack:///./types/fields.html","webpack:///./types/index.js","webpack:///./types/inputs.html","webpack:///./types/layouts.html","webpack:///./types/services.js","webpack:///./types/table.html","webpack:///./types/viewport.html"],"names":["RE_SINGLE_PLACEHOLDER","RE_PLACEHOLDER","pipe","value","key","split","id","args","fn","pipes","$","apply","impl","map","a","container","get","slice","parseValue","ex","console","error","withPipes","length","c","v","initialValue","reduce","r","pk","call","stringInterpolation","fnx","pattern","replace","_","expr","push","placeholder","s","idx","resourceExpression","trim","intrpltn","res","pipec","compileExpression","includes","vv","match","compiledNodeMap","nodes","compileNode","node","set","uid","Map","compileFor","extractAttr","itemName","prep","Node","compileIf","tag","filterMapKey","attrs","iff","ifNode","addPropertyConnector","condition","addPropertyResolver","slotId","hasSlot","$then","ifElse","find","e","ifThen","filter","then","Object","assign","getNodes","state","compileTag","uid0","compileRegularNode","wrapNode","forEach","k","addInitialState","refId","Function","ID","rr","addEmitter","nodeMap","has","compileTemplate","text","name","T","parseXML","Component","Ctor","parent","app","getInitialState","hidden","defer","resolveProps","Δ","force","isDone","upAsync","changes","entries","stateChanged","setter","methodName","recontent","notify","propId","propGetter","listeners","notifying","target","uuid","nextId","up","payload","cancel","applicator","ref","subscribe","applyValue","data","type","warn","method","result","log","initials","isInited","all","initializers","f","Promise","init","d","done","children","defered","COUNTERS","$weak","counter","stringifyComponent","content","last","first","requestReflow","Array","EMPTY","size","p","snode","clone","filterSlotNodes","setNodeMap","getByTag","Registered","Ctors","ContainerComponent","Element","next","constructor","getTemplate","ForComponent","items","itemNode","pkHash","datum","ItemComponent","emit","startsWith","COUNTER","fnId","x","pre","toUpperCase","promise","racer","raceCondition","akey","val","$propFnMap","instant","bound","bind","path","gettr","fn0","undefined","deep","resources","camelize","sep","jn","i","join","ATTR_SETTERS","textContent","disabled","className","selected","checked","$dataset","keys","dataset","click","setAttribute","ev","$attributes","blur","dblclick","scroll","touchstart","h","pageX","changedTouches","screenX","y","pageY","screenY","touch","hs","active","stop","xx","yy","dx","dy","getAttribute","keypress","keyCode","setTimeout","focus","enter","change","toggle","applyAttributes","elt","cleanupAttributes","fnValue","ekey","addEventListener","removeEventListener","removeAttribute","isElementary","document","createTextNode","createElement","parentElement","removeChild","launch","types","template","rootElement","body","props","$AppContext","commonPipes","reflow","arrangeElements","reflowId","registerTypes","commonTypes","top","window","UID","obj","decodeXmlEntities","getter","propKey","$propertyResolvers","acc","setKeyVal","values","initialState","connect","isInitial","$initializers","stringifyNode","fnName","ctor","exec","toString","Fragment","REGISTRY","reg","ctr","NAME","TEMPLATE","prototype","$template","ErrorType","Error","num","isNaN","n","appendElt","cursor","before","nextSibling","firstChild","appendChild","insertBefore","src","stringifyAttrs","tab","sattrs","ssubs","stext","RE_EMPTY","RE_XML_COMMENT","RE_XML_TAG","SINGLE_TAGS","_s","ctx","lastIndex","index","addChild","setText","input","Math","max","min","shift","sAttrs","parseAttrs","unshift","RE_ESCAPE_XML_ENTITY","ESCAPE_XML_ENTITY","FN_ESCAPE_XML_ENTITY","m","charCodeAt","RE_XML_ENTITY","RE_ATTRS","SUBST_XML_ENTITY","amp","gt","lt","quot","nbsp","FN_XML_ENTITY","substring","String","fromCharCode","escapeXml","skipQoutes","b","groupBy","list","field","fieldFn","iter","entry","slot","count","subs","isArray","sortBy","arr","property","order","substr","compare","aa","bb","sort","hash","idKey","valKey","isKeyFn","R","ru","monthNames","monthNamesShort","dayNames","dayNamesShort","en","DATE_FORMATTERS","hh","date","pad","getHours","ii","getMinutes","hi","dd","getDate","w","Date","l18n","getDay","ww","mmmm","monthName","getMonth","mmm","mm","yyyy","getFullYear","ll","getTime","z","formatTimezone","getTimezoneOffset","orNow","narrow","dig","LOCALE","daysInMonth","month","year","firstOfWeek","mode","fractions","getSeconds","getMilliseconds","parseISO8601","assert","timebits","tz","parseInt","utcdate","UTC","parseFloat","toDate","seconds","nanoseconds","tzOffset","toNumber","Number","format","dateKey","ms","track","dot","wrap","o","steps","not","isUndefined","isTrue","isFalse","or","and","equals","greater","less","plus","alt","minus","multiply","compose","ff","x0","reduceRight","swap","curry","_curry","args0","lengthLimit","fx","guid","s4","floor","random","str","freeze","isEmpty","decode","decodeURIComponent","indexOf","JSON","parse","decodePrimitive","encode","encodeURIComponent","stringify","capitalize","t","params","tail","pos","lastIndexOf","lastTail","head","fill","mirror","snakeCase","proper","upper","param","Obj","FIELD_TYPES","bool","FormField","form","fields","caption","Form","NavigationService","prevHash","hashchange","location","url","reset","update","Service","message","code","handler","lookupService","handleError","source","def","ServiceWorker","api","scope","register","registration","registered","ready","onMessage","fallback","pushManager","withPushManager","getSubscription","ss","unsubscribe","saveSubscription","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","Uint8Array","from","char","Notification","permission","applicationServerKey","vapidPublicKey","userVisibleOnly","subscription","toJSON","err","navigator","serviceWorker","formTypes","services","elements","table","viewport","layouts","inputs","Invoke","delay","action","Loader","reload","trigger","into","callback","ErrorHandlingService","show","ToastService","close","closeAfter"],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","export * from './lib'\n","import { parseValue } from './utils'\n\nconst RE_SINGLE_PLACEHOLDER = /^\\{([^}]+)\\}$/\nconst RE_PLACEHOLDER = /\\{([^}]+)\\}/g\n\nfunction pipe (value, key) {\n const [id, ...args] = key.split(':')\n try {\n const fn = this.pipes(id)\n const $ = this\n return fn.apply($.impl, [value, ...args.map(a => a[0] === '@' ? $.container.get(a.slice(1)) : parseValue(a))])\n } catch (ex) {\n console.error('ERROR: pipe ' + id, ex)\n return value\n }\n}\n\nexport function withPipes (pipes) {\n return !pipes.length ? (c, v) => v : (c, initialValue) => pipes.reduce((r, pk) => pipe.call(c, r, pk), initialValue)\n}\n\nfunction stringInterpolation (v, fnx = []) {\n const pattern = v.replace(RE_PLACEHOLDER, (_, expr) => { fnx.push(placeholder(expr)); return '{{' + (fnx.length - 1) + '}}' })\n return c => !fnx.length ? pattern : pattern.replace(/\\{\\{(\\d+)\\}\\}/g, (s, idx) => {\n const r = fnx[idx](c)\n return !r && r !== 0 ? '' : r\n })\n}\n\nfunction resourceExpression (expr) {\n const [key, ...pipes] = expr.split('|').map(s => s.trim())\n const intrpltn = stringInterpolation(key)\n return !pipes.length ? c => c.res(intrpltn(c)) : (pipec => c => pipec(c, c.res(intrpltn(c))))(withPipes(pipes))\n}\n\nfunction placeholder (expr) {\n const [key, ...pipes] = expr.split('|').map(s => s.trim())\n const fn = key[0] === ':' ? c => c.res(key.slice(1)) : c => c.container.get(key)\n if (!pipes.length) return fn\n return c => pipes.reduce((r, pk) => pipe.call(c, r, pk), fn(c))\n}\n\nexport function compileExpression (v) {\n if (typeof v !== 'string') { return () => v }\n if (v[0] === ':') { return resourceExpression(v.slice(1).trim()) }\n if (!v.includes('{')) { const vv = parseValue(v); return () => vv }\n if (v.match(RE_SINGLE_PLACEHOLDER)) { return placeholder(v.slice(1, -1).trim()) }\n return stringInterpolation(v)\n}\n","import { Node } from './node'\nimport { compileExpression } from './compile.expr'\nimport { parseXML } from './xml.js'\nimport { filterMapKey, hasSlot, wrapNode } from './utils'\n\nexport const compiledNodeMap = nodes => nodes ? nodes.map(compileNode).reduce((map, node) => map.set(node.uid, node), new Map()) : null\n\nexport function compileFor (r) {\n const [itemName, prep, expr = prep] = r.extractAttr('ui:for').split(' ')\n return compileNode(new Node(\n 'ui:for',\n new Map([['items', '{:<'.includes(expr[0]) ? expr : `{${expr}}`]]),\n [new Node(\n 'ui:item',\n new Map([['itemName', itemName]]),\n [r]\n )]))\n}\n\nexport function compileIf (r) {\n const { tag, nodes } = r\n const [expr, attrs] = filterMapKey(r.attrs, 'ui:if')\n const iff = {}\n const ifNode = new Node('ui:fragment')\n if (expr[0] === '<' && expr[1] === '-') {\n ifNode.addPropertyConnector(expr, condition => ({ condition }))\n } else if ((expr.slice(0, 5) === 'slot(')) {\n ifNode.addPropertyResolver((slotId => c => hasSlot(c, slotId))(expr.slice(5, -1)), 'condition')\n } else {\n ifNode.addPropertyResolver(compileExpression(expr[0] === '{' ? expr : `{${expr}}`), 'condition')\n }\n const $then = new Node(tag, attrs, nodes)\n if (nodes && nodes.length) {\n const ifElse = nodes.find(e => e.tag === 'ui:else')\n const ifThen = nodes.find(e => e.tag === 'ui:then')\n if (ifElse) {\n iff.else = compiledNodeMap(ifElse.nodes)\n $then.nodes = ifThen ? ifThen.nodes : nodes.filter(e => e !== ifElse)\n } else if (ifThen) {\n $then.nodes = ifThen.nodes\n }\n }\n iff.then = compiledNodeMap([$then])\n return Object.assign(ifNode, {\n getNodes: ($) => $.state.condition ? iff.then : iff.else\n })\n}\n\nexport function compileTag (r) {\n const { uid: uid0, nodes } = r\n const [expr, attrs] = filterMapKey(r.attrs, 'tag')\n const node = compileRegularNode(new Node('', attrs, nodes))\n if (expr[0] === '<' && expr[1] === '-') {\n r.addPropertyConnector(expr, tag => ({ tag }))\n } else {\n r.addPropertyResolver(compileExpression(expr), 'tag')\n }\n return Object.assign(r, {\n tag: 'ui:fragment',\n getNodes: ($, tag = $.state.tag, uid = uid0 + ':' + tag) => wrapNode(Object.assign(node, { tag, uid }))\n })\n}\n\nexport function compileRegularNode (r) {\n r.attrs.forEach((v, k) => {\n if (k === 'id') {\n r.id = v\n r.addInitialState({ [k]: v })\n } else if (k === 'ui:ref') {\n r.refId = v\n } else if (k === 'ui:props') {\n if (v[0] === '<' && v[1] === '-') {\n r.addPropertyConnector(v, Function.ID)\n } else {\n r.addPropertyResolver(compileExpression(v))\n }\n } else {\n if (typeof v !== 'string') {\n r.addInitialState({ [k]: v })\n } else {\n if (v[0] === '<' && v[1] === '-') {\n r.addPropertyConnector(v, rr => ({ [k]: rr }))\n } else if (v[0] === '-' && v[1] === '>') {\n r.addEmitter(v, k)\n } else {\n if (!v.includes('{') && v[0] !== ':') {\n r.addInitialState({ [k]: v })\n } else {\n r.addPropertyResolver(compileExpression(v), k)\n }\n }\n }\n }\n })\n return Object.assign(r, {\n nodeMap: compiledNodeMap(r.nodes)\n })\n}\nexport function compileNode (node) {\n if (node.attrs.has('ui:for')) { return compileFor(node) }\n if (node.attrs.has('ui:if')) { return compileIf(node) }\n if (node.tag === 'ui:tag') { return compileTag(node) }\n return compileRegularNode(node)\n}\n\nexport function compileTemplate (text, name) {\n try {\n const T = compiledNodeMap(text ? parseXML(text, name).nodes : [])\n return T\n } catch (ex) {\n // eslint-disable-next-line no-console\n console.error('compile ' + name, ex)\n }\n return []\n}\n","/* eslint-disable no-console */\nimport { applyValue, nextId, propGetter, upAsync, res, pipes, methodName } from './component.utils'\nimport {\n setNodeMap,\n stringifyComponent,\n filterSlotNodes\n} from './utils.js'\nimport { getByTag } from './register.js'\nimport { Element } from './element'\n\n/**\n * Component class.\n */\nclass Component {\n constructor (Ctor, node, parent, container) {\n Object.assign(this, { node, uid: node.uid, tag: node.tag, id: node.id, state: {}, parent, container })\n if (parent) {\n this.parent = parent\n this.app = parent.app\n this.impl = new Ctor(this.getInitialState(), this)\n } else {\n this.impl = this.app = new Ctor(this.getInitialState(), this)\n }\n this.impl.$ = this\n\n if (this.refId) {\n const hidden = this.app[this.refId]\n this.app[this.refId] = this\n this.defer(() => {\n this.app[this.refId] = hidden\n })\n }\n }\n\n get refId () {\n return this.node.refId\n }\n\n getInitialState () {\n return this.node.resolveProps(this, true)\n }\n // --- State\n\n up (Δ = {}, force) {\n if (this.isDone) {\n return null\n }\n if (Δ.then && Δ.catch) {\n return upAsync(this, Δ)\n }\n\n const changes = []\n Object.entries(Δ).forEach(([k, v]) => {\n if (v && v.then && v.catch) {\n upAsync(this, v, k)\n } else if (k && typeof v !== 'undefined' && v !== this.state[k]) {\n changes.push([v, k])\n this.state[k] = v\n }\n })\n\n if (changes.length || force) {\n if (this.impl.stateChanged) {\n this.impl.stateChanged(changes)\n } else {\n changes.forEach(([v, k]) => {\n const setter = this.impl[methodName(k, 'set')]\n if (setter) {\n setter.call(this.impl, v)\n } else {\n this.impl[k] = v\n }\n })\n }\n this.recontent()\n if (this.refId) {\n this.notify()\n }\n }\n }\n\n get (propId) {\n return propGetter(this, propId)()\n }\n\n // --- Left Arrow.\n\n notify () {\n if (this.listeners && !this.notifying) {\n this.notifying = true\n this.listeners.forEach((e) => e())\n this.notifying = false\n }\n }\n\n subscribe (target, fn) {\n const uuid = nextId()\n const listeners = this.listeners || (this.listeners = new Map())\n listeners.set(uuid, () => {\n try {\n target.up(fn(this))\n } catch (ex) {\n console.error(this.tag + this.uid + ' notify ', ex)\n }\n })\n return { payload: fn(this), cancel: () => listeners.delete(uuid) }\n }\n\n connect (key, applicator) {\n const [refId, propId] = key.split('.')\n const ref = refId === 'this' ? this.impl : this.app[refId]\n if (!ref) {\n return console.error('connect: No such ref ' + refId, key)\n }\n\n return ref.subscribe(this, (c) => applyValue(c.get(propId), applicator))\n }\n\n // --- Right Arrow.\n\n emit (key, data) {\n const $ = this\n\n if (!key || !key.includes('.')) {\n return $.up(key ? { [key]: data } : data)\n }\n\n const [type, target] = key.split('.')\n // const event = { data, ...data }\n\n const ref = type === 'this' ? $ : $.app[type]\n if (!ref) {\n console.warn('emit: No such ref ' + type)\n return\n }\n\n try {\n const propId = methodName(target, 'on')\n const impl = ref.impl\n const method = impl[propId]\n\n if (!method) { Function.throw('emit ' + type + ': No such method ' + propId) }\n\n const result = method.call(impl, data, impl, ref)\n\n this.log(type + ':' + propId, result, data, impl)\n if (result) {\n ref.up(result)\n }\n } catch (ex) {\n console.error('emit ' + key + ':', ex)\n }\n }\n\n // --- Life-cycle hooks.\n\n init (initials) {\n if (this.isDone || this.isInited) {\n return\n }\n this.isInited = true\n const all = []\n const initializers = this.node.initializers\n if (initializers && initializers.length) {\n initializers\n .map((f) => f(this))\n .forEach((r) => {\n if (!r) return\n const { payload, cancel } = r\n this.defer(cancel)\n if (payload && payload.then) {\n all.push(payload)\n } else {\n Object.assign(initials, payload)\n }\n })\n }\n\n if (all.length) {\n Promise.all(all).then((args) => {\n this.up(args.reduce((r, e) => Object.assign(r, e), initials), true)\n if (this.impl.init) {\n const d = this.impl.init(this)\n if (d) {\n this.up(d)\n }\n }\n })\n } else {\n this.up(initials, true)\n if (this.impl.init) {\n const d = this.impl.init(this)\n if (d) {\n this.up(d)\n }\n }\n }\n return this\n }\n\n done () {\n if (this.isDone) {\n return\n }\n this.isDone = true\n if (this.impl.done) {\n this.impl.done(this)\n }\n if (this.children) {\n this.children.forEach((c) => {\n c.parent = null\n c.done()\n })\n }\n if (this.parent) {\n this.parent.children.delete(this.uid)\n }\n if (this.defered) {\n this.defered.forEach((f) => f(this))\n delete this.defered\n }\n this.impl.$ = null;\n ['parent', 'app', 'children', 'container', 'impl', 'state'].forEach((k) => {\n delete this[k]\n })\n }\n\n // --- Routines.\n\n raceCondition (key) {\n const COUNTERS = this.$weak || (this.$weak = new Map())\n let counter = 1 + (COUNTERS.get(key) || 0)\n COUNTERS.set(key, counter)\n return (fn) => {\n if (counter === COUNTERS.get(key)) {\n counter = 0\n fn()\n }\n }\n }\n\n defer (fn) {\n if (fn && typeof fn === 'function') {\n (this.defered || (this.defered = [])).push(fn)\n }\n }\n\n log (...args) {\n console.log('' + this.tag + '@' + this.uid, ...args)\n }\n\n res (key) {\n return res(this.app, key)\n }\n\n pipes (key) {\n return pipes(this.app, key)\n }\n\n toString () {\n return stringifyComponent(this)\n }\n\n // --- Content Reconciliation.\n\n get content () {\n return this.node.getNodes ? this.node.getNodes(this) : this.node.nodeMap\n }\n\n recontent () {\n recontent(this, this.container, this.content)\n }\n}\n\nfunction recontent (parent, container, content) {\n parent.last = parent.first = null\n\n container.app.requestReflow();\n\n (parent.children || Array.EMPTY)\n .forEach((c) => (!content || !content.has(c.uid) ? c.done() : 0))\n\n if (!content || !content.size) return\n const children = parent.children || (parent.children = new Map())\n let p = null\n\n content.forEach((node, uid) => {\n let c = null\n if (node.tag === 'ui:slot') {\n const snode = node.clone(node.uid)\n snode.id = node.id\n snode.nodeMap = filterSlotNodes(node.id, container)\n c = children.get(uid) || setNodeMap(children, new Component(getByTag('ui:fragment'), snode, parent, container.container))\n } else {\n const Registered = getByTag(node.tag)\n const Ctor = Ctors[node.tag] || (Registered ? ContainerComponent : Component)\n c = children.get(uid) || setNodeMap(children, new Ctor(Registered || Element, node, parent, container))\n }\n c.next = null\n p = (p || parent)[p ? 'next' : 'first'] = c\n })\n\n children.forEach((c) => !c.isInited ? c.init(c.node.resolveProps(c, true)) : c.up(c.node.resolveProps(c, false), true))\n}\n\nexport class ContainerComponent extends Component {\n recontent () {\n recontent(this, this, this.impl.constructor.getTemplate())\n }\n}\n\nclass ForComponent extends Component {\n recontent () {\n const nodes = new Map()\n const { items } = this.state\n if (items && items.length) {\n if (!items.forEach) { Function.throw('[ui:for] Items has no forEach() ' + items) }\n const itemNode = this.node.nodes[0]\n const itemName = itemNode.get('itemName')\n const pkHash = {}\n items.forEach((datum) => {\n const pk = `${datum.id || ''}`\n if (!pk || pkHash[pk]) {\n console.error('ERROR: wrong item id: ' + pk, datum)\n return\n }\n pkHash[pk] = pk\n setNodeMap(\n nodes,\n itemNode.clone(pk).addPropertyResolver((c) => datum, itemName)\n )\n })\n }\n recontent(this, this.container, nodes)\n }\n}\n\nclass ItemComponent extends Component {\n recontent () {\n recontent(this, this, this.content)\n }\n\n emit (key, data) {\n return this.container.emit(key, data)\n }\n\n get (propId) {\n return propId.startsWith(this.state.itemName) ? super.get(propId) : this.container.get(propId)\n }\n}\n\nconst Ctors = {\n 'ui:fragment': Component,\n 'ui:for': ForComponent,\n 'ui:item': ItemComponent\n}\n","let COUNTER = 1\nconst fnId = e => e\nexport const nextId = (p = '') => p + (COUNTER++)\nexport const applyValue = (value, fn = fnId) => value && value.then ? value.then(fn) : fn(value)\n\nexport const methodName = (x, pre = '') => {\n if (!x) { return pre }\n const s = `${x}`\n return pre + s[0].toUpperCase() + s.slice(1)\n}\n\nexport const upAsync = ($, promise, key) => {\n const racer = $.raceCondition('set:' + (key || 'up'))\n const up = r => racer(() => $.up(r))\n if (key && key !== '...') {\n const akey = key.replace('Promise', '')\n promise.then(val => up({ [akey + 'Error']: null, [akey]: val }), error => up({ [akey + 'Error']: error }))\n } else {\n promise.then(up, error => up({ error }))\n }\n return promise\n}\n\nexport const propGetter = ($, key) => {\n const map = $.$propFnMap || ($.$propFnMap = {})\n let fn = map[key]\n if (fn) { return fn }\n\n const impl = $.impl\n const instant = impl[key]\n if (instant && (typeof instant === 'function')) {\n const bound = instant.bind(impl)\n fn = () => bound\n } else {\n const [pk, ...path] = key.split('.')\n const gettr = impl[methodName(pk, 'get')]\n\n const fn0 = gettr\n ? () => gettr.call(impl)\n : () => impl[pk]\n\n fn = !path.length\n ? fn0\n : () => path.reduce((r, p) => (r && (p in r) ? r[p] : undefined), fn0())\n }\n\n map[key] = fn\n\n return fn\n}\n\nexport const res = (app, key) => {\n const [id, ...deep] = key.split('.')\n const target = id === 'app' ? app : app.resources[id]\n if (!target || deep.length === 0) {\n return target\n }\n if (deep.length === 1) {\n return target[deep[0]]\n }\n return deep.reduce((r, k) => r ? r[k] : null, target)\n}\n\nexport const pipes = (app, key) => {\n const [id, ...deep] = key.split('.')\n const target = app.pipes && app.pipes[id]\n if (!target || deep.length === 0) {\n return target\n }\n if (deep.length === 1) {\n return target[deep[0]]\n }\n return deep.reduce((r, k) => r ? r[k] : null, target)\n}\n","const camelize = (key, sep = '_', jn = ' ') => ('' + key).split(sep).map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(jn)\n\n// DOM\nconst ATTR_SETTERS = {\n '#text': (e, v) => (e.textContent = v == null ? '' : v),\n disabled: (e, v) => (e.disabled = v ? true : null),\n class: (e, v) => {\n e.className = v\n },\n selected: (e, v) => (e.selected = v ? true : null),\n value: (e, v) => (e.value = v == null ? '' : v),\n checked: (e, v) => (e.checked = !!v),\n init: function (e, v) {\n this.init = () => v(e, this)\n },\n data: function (e, v) {\n if (v && e.$dataset) {\n Object.keys(e.$dataset).forEach(k => { if (v[k] == null) { e.dataset[camelize(k, '-', '')] = null } })\n e.$dataset = { ...e.$dataset, ...v }\n } else {\n e.$dataset = v ? { ...v } : (e.$dataset || {})\n }\n if (v) {\n Object.keys(v).forEach(k => { e.dataset[camelize(k, '-', '')] = v[k] })\n }\n },\n click: function (e, v) {\n setAttribute.call(this, 'click:click', !v ? null : (ev) => {\n this.$attributes.click({ ...e.$dataset }, ev)\n return false\n })\n },\n 'bubble-click': function (e, v) {\n setAttribute.call(this, 'bubbled-click:click', !v ? null : (ev) => {\n this.$attributes['bubble-click']({ ...e.$dataset }, ev)\n return true\n })\n },\n blur: function (e, v) {\n setAttribute.call(this, 'blur:blur', !v ? null : (ev) => {\n this.$attributes.blur({ ...e.$dataset }, ev)\n return false\n })\n },\n dblclick: function (e, v) {\n setAttribute.call(this, 'dblclick:dblclick', !v ? null : (ev) => {\n this.$attributes.dblclick({ ...e.$dataset }, ev)\n return false\n })\n },\n scroll: function (e, v) {\n setAttribute.call(this, 'scroll:scroll', !v ? null : (ev) => {\n this.$attributes.scroll({ ...e.$dataset }, ev)\n return false\n })\n },\n touchstart: function (e, v) {\n const h = !v ? null : (ev) => {\n this.$attributes.touchstart({\n ...e.$dataset,\n x: ev.pageX || ev.changedTouches[0].screenX,\n y: ev.pageY || ev.changedTouches[0].screenY\n }, ev)\n return false\n }\n setAttribute.call(this, 'touchstart:touchstart', h)\n setAttribute.call(this, 'touchstart:mousedown', h)\n },\n touch: function (e, v) {\n const data = { ...e.$dataset }\n const hs = !v ? null : (ev) => {\n data.active = true\n data.x = ev.pageX || ev.changedTouches[0].screenX\n data.y = ev.pageY || ev.changedTouches[0].screenY\n return false\n }\n setAttribute.call(this, 'touch:touchstart', hs)\n setAttribute.call(this, 'touch:mousedown', hs)\n const h = !v ? () => null : stop => (ev) => {\n if (data.active) {\n data.active = !stop\n\n data.xx = ev.pageX || ev.changedTouches[0].screenX\n data.yy = ev.pageY || ev.changedTouches[0].screenY\n data.dx = data.xx - data.x\n data.dy = data.yy - data.y\n this.$attributes.touch(data, ev)\n }\n\n return false\n }\n setAttribute.call(this, 'touch:touchcancel', h(true))\n setAttribute.call(this, 'touch:touchend', h(true))\n setAttribute.call(this, 'touch:mouseup', h(true))\n setAttribute.call(this, 'touch:touchmove', h(false))\n setAttribute.call(this, 'touch:mousemove', h(false))\n },\n error: function (e, v) {\n setAttribute.call(this, 'error:error', !v ? null : (ev) => {\n const fn = this.getAttribute('error')\n fn && fn({ ...e.$dataset }, ev)\n return false\n })\n },\n keypress: function (e, v) {\n setAttribute.call(this, 'keypress:keyup', !v ? null : (ev) => {\n if (ev.keyCode !== 13 && ev.keyCode !== 27) {\n const fn = this.$attributes.keypress\n fn && fn({ value: e.value, ...e.$dataset }, ev)\n setTimeout(() => e.focus(), 0)\n }\n return false\n })\n },\n enter: function (e, v) {\n setAttribute.call(this, 'enter:keyup', !v ? null : (ev) => {\n if (ev.keyCode === 13) {\n this.$attributes.enter({ value: e.value, ...e.$dataset }, ev)\n }\n if (ev.keyCode === 13 || ev.keyCode === 27) {\n e.blur()\n }\n return false\n })\n },\n change: function (e, v) {\n setAttribute.call(this, 'change:change', !v ? null : (ev) => {\n this.$attributes.change({ value: e.value, ...e.$dataset }, ev)\n return false\n })\n },\n toggle: function (e, v) {\n setAttribute.call(this, 'toggle:change', !v ? null : (ev) => {\n this.$attributes.toggle({ value: e.checked, ...e.$dataset }, ev)\n return false\n })\n }\n}\n\nexport function applyAttributes (changes, attrs = this.$attributes || (this.$attributes = {})) {\n const e = this.elt\n changes.forEach(([value, key]) => {\n if (value !== attrs[key]) {\n const setter = ATTR_SETTERS[key]\n if (setter) {\n setter.call(this, e, value)\n } else {\n setAttribute.call(this, key, value)\n }\n }\n attrs[key] = value\n })\n}\n\nexport function cleanupAttributes () {\n this.$attributes = null\n}\n\nfunction setAttribute (key, value) {\n if (value != null) {\n if (typeof value === 'function') {\n const fnValue = (...args) => { if (!this.isDone) { value(...args) } }\n if (!this.listeners) {\n this.listeners = new Map()\n }\n if (!this.listeners.has(key)) {\n const [akey, ekey = akey] = key.split(':')\n this.elt.addEventListener(ekey, fnValue, false)\n this.listeners.set(key, fnValue)\n }\n } else {\n this.elt.setAttribute(key, value)\n }\n } else {\n if (this.listeners && this.listeners.has(key)) {\n const [akey, ekey = akey] = key.split(':')\n this.elt.removeEventListener(ekey, this.listeners.get(key))\n this.listeners.delete(key)\n } else {\n this.elt.removeAttribute(key)\n }\n }\n}\n","import { applyAttributes, cleanupAttributes } from './dom.attrs'\n\nexport class Element {\n constructor (attrs, $, elt) {\n this.$ = $\n this.$.isElementary = true\n this.elt = elt || ($.tag === '#text' ? document.createTextNode('') : document.createElement($.tag))\n this.elt.impl = this\n }\n\n done () {\n this.elt.parentElement && this.elt.parentElement.removeChild(this.elt)\n cleanupAttributes.call(this)\n this.elt = null\n }\n\n stateChanged (attrs) {\n applyAttributes.call(this, attrs)\n }\n}\n","import { ContainerComponent } from './component.js'\nimport { registerTypes } from './register.js'\nimport { Node } from './node'\nimport commonTypes from '../types'\nimport commonPipes from '../pipes'\nimport { arrangeElements } from './utils.js'\n\nexport function launch ({ types, template = '<App/>', rootElement = document.body, pipes, ...props } = {}) {\n class $AppContext {\n constructor () {\n this.elt = rootElement\n this.app = this\n this.pipes = { ...commonPipes, ...pipes }\n this.reflow = () => {\n arrangeElements(this.$, this.elt)\n this.reflowId = null\n }\n }\n\n requestReflow () {\n if (this.reflowId) return\n this.reflowId = setTimeout(this.reflow, 10)\n }\n }\n\n registerTypes([Object.assign($AppContext, { template }), ...commonTypes, ...types])\n const top = new ContainerComponent($AppContext, new Node('#top'))\n top.up(props)\n return top.impl\n}\n\nif (typeof window === 'object') {\n window.launch = launch\n}\n","import { withPipes } from './compile.expr'\nimport { decodeXmlEntities, stringifyNode } from './xml.utils'\nimport { setKeyVal } from './utils'\n\nlet UID = 1\n\nexport class Node {\n constructor (tag, attrs = new Map(), nodes = []) {\n this.uid = '' + UID++\n this.tag = tag || ''\n this.attrs = attrs\n this.nodes = nodes\n }\n\n // --- attrs\n\n updateAttrs (attrs) {\n attrs.forEach((v, k) => this.attrs.set(k, v))\n return this\n }\n\n updateAttrsFormObject (obj) {\n Object.entries(obj).forEach(([k, v]) => this.attrs.set(k, v))\n return this\n }\n\n setAttrs (attrs = []) {\n this.attrs = attrs\n return this\n }\n\n get (key) {\n const val = this.attrs.get(key)\n return val\n }\n\n extractAttr (key) {\n const val = this.get(key)\n this.attrs.delete(key)\n return val\n }\n\n // --- Nodes\n\n setNodes (nodes = []) {\n this.nodes = nodes\n return this\n }\n\n get firstChild () {\n return this.nodes.values().next\n }\n\n addChild (tag, attrs) {\n const e = new Node(tag, attrs)\n this.nodes.push(e)\n return e\n }\n\n // --- text\n\n setText (text) {\n this.attrs.set('#text', decodeXmlEntities(text))\n }\n\n // --- compiled\n\n addPropertyResolver (getter, propKey) {\n (this.$propertyResolvers || (this.$propertyResolvers = [])).push(\n propKey\n ? (c, acc) => setKeyVal(acc, propKey, getter(c))\n : (c, acc) => Object.entries(getter(c) || {}).forEach(([key, val]) => setKeyVal(acc, key, val))\n )\n return this\n }\n\n addInitialState (values) {\n const obj = this.initialState || (this.initialState = {})\n Object.entries(values).forEach(([key, val]) => setKeyVal(obj, key, val))\n return this\n }\n\n get initializers () {\n return this.$initializers || (this.$initializers = [])\n }\n\n addPropertyConnector (v, getter) {\n const [key, ...pipes] = v.slice(2).split('|').map(s => s.trim())\n const pipec = withPipes(pipes)\n this.initializers.push(c => c.connect(key, rr => (getter(pipec(c, rr)))))\n }\n\n addEmitter (v, k) {\n const [key, ...pipes] = v.slice(2).split('|').map(s => s.trim())\n const pipec = withPipes(pipes)\n this.initializers.push(c => ({ payload: { [k]: data => c.container.emit(key, pipec(c, data)) } }))\n }\n\n resolveProps (c, isInitial) {\n let props = this.$propertyResolvers ? this.$propertyResolvers.reduce((r, fn) => { fn(c, r); return r }, {}) : {}\n const initialState = this.initialState\n if (isInitial && initialState) {\n props = { ...initialState, ...props }\n }\n if (props.data && initialState && initialState.data) {\n props.data = { ...initialState.data, ...props.data }\n }\n return props\n }\n\n // --- utils\n\n clone (uid, tag = this.tag) {\n return Object.assign(new Node(this.tag), {\n uid,\n tag,\n attrs: this.attrs,\n nodes: this.nodes,\n nodeMap: this.nodeMap,\n getNodes: this.getNodes,\n $propertyResolvers: this.$propertyResolvers ? [...this.$propertyResolvers] : null,\n initialState: this.initialState ? { ...this.initialState } : null,\n $initializers: this.$initializers ? [...this.$initializers] : null\n })\n }\n\n toString () {\n return stringifyNode(this)\n }\n}\n","import { compileTemplate } from './compile.js'\n\nlet COUNTER = 1\n\nconst nextId = (p = '') => p + (COUNTER++)\n\nconst fnName = ctor => (/^function\\s+([\\w$]+)\\s*\\(/.exec(ctor.toString()) || [])[1] || nextId('$C')\n\nclass Fragment {}\n\nconst REGISTRY = new Map([\n ['ui:fragment', Fragment],\n ['ui:for', Fragment],\n ['ui:item', Fragment],\n ['ui:slot', Fragment]\n])\n\nconst reg = ctr => {\n if (typeof ctr === 'string') {\n ctr.replace(/<component\\sid=\"(.+)\">([\\s\\S]*?)<\\/component>/gm, (_, NAME, TEMPLATE) => reg({ NAME, TEMPLATE }))\n return\n }\n const ctor = typeof ctr === 'function' ? ctr : Object.assign(function () { }, ctr)\n const name = ctor.NAME || ctor.name || fnName(ctor)\n const text = ctor.TEMPLATE || ctor.template || ctor.prototype.TEMPLATE\n ctor.getTemplate = () => (ctor.$template || (ctor.$template = compileTemplate(text, name)))\n REGISTRY.set(name, ctor)\n}\n\nexport const registerTypes = types => types.forEach(reg)\n\nexport const getByTag = tag => REGISTRY.get(tag)\n","Array.EMPTY = []\nObject.assign(Function, {\n ID: x => x,\n next: (COUNTER => (p = '') => p + (COUNTER++))(1),\n // system\n throw: (error, ErrorType = Error) => { throw typeof error === 'string' ? new ErrorType(error) : error }\n})\n\nexport const parseValue = (map => value => {\n if (value && '1234567890+-'.includes(value[0]) && value.length <= 17) {\n const num = +value\n return isNaN(num) ? value : num\n }\n return value in map ? map[value] : value\n})({\n true: true,\n false: false,\n null: null,\n undefined\n})\n\nexport const setNodeMap = (map = new Map(), node) => {\n if (node) {\n map.set(node.uid, node)\n }\n return node\n}\n\nexport const wrapNode = n => new Map([[n.uid, n]])\n\nfunction appendElt (e, p, cursor) {\n const before = cursor ? cursor.nextSibling : p.firstChild\n if (!before) {\n if (p !== e.parentElement) {\n p.appendChild(e)\n }\n } else if (e !== before) {\n p.insertBefore(e, before)\n }\n return e\n}\n\nexport function arrangeElements ($, parent, cursor = null) {\n for (let p = $.first; p; p = p.next) {\n if (p.isElementary) {\n const e = p.impl.elt\n if (e) {\n arrangeElements(p, e)\n cursor = appendElt(e, parent, cursor)\n }\n } else {\n cursor = arrangeElements(p, parent, cursor)\n }\n }\n return cursor\n}\n\nexport const hasSlot = (c, id) => {\n let r = false\n const { tag, content } = c.container\n if (!content) return r\n if (id && id !== 'default') {\n content.forEach((e) => { r = r || (e.tag === tag + ':' + id) })\n } else {\n content.forEach((e) => { r = r || (e.tag.slice(0, tag.length + 1) !== tag + ':') })\n }\n return r\n}\n\nexport const filterMapKey = (src, key) => {\n const r = new Map()\n src.forEach((v, k) => { if (k !== key) { r.set(k, v) } })\n return [src.get(key), r]\n}\n\nexport const setKeyVal = (acc, k, val) => {\n if (k.slice(0, 5) === 'data-') {\n acc.data = acc.data ? { ...acc.data, [k.slice(5)]: val } : { [k.slice(5)]: val }\n } else {\n acc[k] = val\n }\n}\n\nconst stringifyAttrs = (attrs) => {\n if (!attrs) {\n return ''\n }\n const r = []\n Object.entries(attrs).forEach(([k, v]) => {\n if (v && k !== '#text') {\n r.push(' ' + k + '=\"' + (v) + '\"')\n }\n })\n return r.join('')\n}\n\nexport function stringifyComponent ({ uid, tag, state, container, children = new Map() }, tab = '') {\n const sattrs = stringifyAttrs(state)\n const ssubs = [...children.values()].map(c => stringifyComponent(c, ` ${tab}`)).join('\\n')\n const text = state && state['#text']\n const stext = text ? ` ${tab}${text}` : ''\n if (tag === '#text') {\n return stext.trim()\n }\n return `${tab}<${tag}#${uid} ${container ? container.uid : '-'}${sattrs}` + (!ssubs && !stext ? '/>' : `>\\n${ssubs}${stext}\\n${tab}</${tag}#${uid}>`)\n}\n\nexport function filterSlotNodes (slotId, container) {\n const { content, tag } = container\n if (!content) return null\n const r = new Map()\n content.forEach((v) => {\n if (slotId) {\n if ((v.tag === tag + ':' + slotId)) {\n v.nodeMap.forEach(vv => setNodeMap(r, vv))\n }\n } else if (v.tag.slice(0, tag.length + 1) !== tag + ':') {\n setNodeMap(r, v)\n }\n })\n return r\n}\n","import { Node } from './node'\nimport { parseAttrs } from './xml.utils'\n\n// XML Parse for templates. XML -> NodeTree\n\nconst RE_EMPTY = /^\\s*$/\nconst RE_XML_COMMENT = /<!--((?!-->)[\\s\\S])*-->/g\nconst RE_XML_TAG = /(<)(\\/?)([a-zа-я][a-zа-я0-9-:]*)((?:\\s+[a-z][a-z0-9-:]+(?:=\"[^\"]*\"|={[^}]*})?)*)\\s*(\\/?)>/gi\nconst SINGLE_TAGS = 'img input br col'.split(' ').reduce((r, e) => { r[e] = 1; return r }, {})\n\nexport const parseXML = (_s, key) => {\n const s = ('' + _s).trim().replace(RE_XML_COMMENT, '')\n const ctx = [new Node()]\n let lastIndex = 0\n // head text omitted\n for (let e = RE_XML_TAG.exec(s); e; e = RE_XML_TAG.exec(s)) {\n // preceding text\n const text = e.index && s.slice(lastIndex, e.index)\n if (text && !text.match(RE_EMPTY)) {\n ctx[0].addChild('#text').setText(text)\n }\n // closing tag\n if (e[2]) {\n if (ctx[0].tag !== e[3]) {\n throw new Error(\n (key || '') + ' XML Parse closing tag does not match at: ' + e.index +\n ' near ' +\n e.input.slice(Math.max(e.index - 150, 0), e.index) +\n '^^^^' +\n e.input.slice(e.index, Math.min(e.index + 150, e.input.length))\n )\n }\n ctx.shift()\n } else {\n const sAttrs = e[4].trim()\n const elt = ctx[0].addChild(e[3], sAttrs ? parseAttrs(sAttrs) : undefined)\n // not single tag\n if (!(e[5] || (e[3] in SINGLE_TAGS))) {\n ctx.unshift(elt)\n if (ctx.length === 1) {\n throw new Error('Parse error at: ' + e[0])\n }\n }\n }\n // up past index\n lastIndex = RE_XML_TAG.lastIndex\n }\n // tail text omitted\n return ctx[0]\n}\n","import { parseValue } from './utils'\n\nconst RE_ESCAPE_XML_ENTITY = /[\"'&<>]/g\nconst ESCAPE_XML_ENTITY = {\n 34: '&quot;',\n 38: '&amp;',\n 39: '&#39;',\n 60: '&lt;',\n 62: '&gt;'\n}\nconst FN_ESCAPE_XML_ENTITY = m => ESCAPE_XML_ENTITY[m.charCodeAt(0)]\nconst RE_XML_ENTITY = /&#?[0-9a-z]{3,5};/g\n\nconst RE_ATTRS = /([a-z][a-zA-Z0-9-:]+)(=\"[^\"]*\"|={[^}]*})?/g\n\nconst SUBST_XML_ENTITY = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n nbsp: ' '\n}\n\nconst FN_XML_ENTITY = function (_) {\n const s = _.substring(1, _.length - 1)\n return s[0] === '#' ? String.fromCharCode(+s.slice(1)) : (SUBST_XML_ENTITY[s] || ' ')\n}\nexport const escapeXml = (s) => !s ? '' : ('' + s).replace(RE_ESCAPE_XML_ENTITY, FN_ESCAPE_XML_ENTITY)\nexport const skipQoutes = (s) => s[0] === '\"' && s[s.length - 1] === '\"' ? s.slice(1, -1) : s\nexport const decodeXmlEntities = (s = '') => s.replace(RE_XML_ENTITY, FN_XML_ENTITY)\n\nexport const parseAttrs = (s, r = new Map()) => {\n for (let e = RE_ATTRS.exec(s); e; e = RE_ATTRS.exec(s)) {\n r.set(e[1], !e[2] ? true : parseValue(decodeXmlEntities(skipQoutes(e[2].slice(1)))))\n }\n return r\n}\n\nconst stringifyAttrs = (attrs) => {\n if (!attrs || !attrs.size) {\n return ''\n }\n const r = []\n attrs.forEach((v, k) => {\n if (v && k !== '#text') {\n r.push(' ' + k + '=\"' + escapeXml(v) + '\"')\n }\n })\n return r.join('')\n}\n\nexport function stringifyNode ({ tag, attrs, nodes = [] }, tab = '') {\n const sattrs = stringifyAttrs(attrs)\n const ssubs = nodes.map(c => stringifyNode(c, ` ${tab}`)).join('\\n')\n const text = attrs && attrs.get('#text')\n const stext = text ? ` ${tab}${escapeXml(text)}` : ''\n if (tag === '#text') {\n return stext.trim()\n }\n return `${tab}<${tag}${sattrs}` + (!ssubs && !stext ? '/>' : `>\\n${ssubs}${stext}\\n${tab}</${tag}>`)\n}\n","/** ***********************\n * Arrays.\n */\n\nexport default {\n slice: (x, b = 0, e) => x ? x.slice(b, e) : [],\n\n /**\n * Builds histogram on given field for given list.\n *\n * @param {*} list source\n * @param {*} field to be used as group key\n */\n groupBy: function (list, field = 'type') {\n const result = {}\n const fieldFn = typeof field === 'string' ? e => e[field] : field\n const iter = (v, entry) => {\n const slot = result[v] || (result[v] = { id: v, count: 0, subs: [] })\n slot.count++;\n (slot.items || (slot.items = slot.subs)).push(entry)\n };\n (list || []).forEach((e) => {\n const value = fieldFn(e)\n if (Array.isArray(value)) {\n value.forEach(v => iter(v, e))\n } else {\n iter(value, e)\n }\n })\n return result\n },\n\n /**\n * Sorts array by element property.\n *\n * @param {*} arr source\n * @param {*} property element property to sort by\n * @param {*} order\n */\n sortBy: function sortBy (arr, property = 'name', order = 1) {\n let fn = property\n if (typeof property === 'string') {\n if (property[0] === '-') {\n /* eslint-disable */\n order = -1;\n property = property.substr(1);\n }\n fn = e => e[property];\n }\n\n function compare(a, b) {\n const aa = fn(a);\n const bb = fn(b);\n /* eslint-disable */\n return (aa < bb) ? -order : (aa > bb) ? order : 0;\n }\n return (arr || []).slice(0).sort(compare);\n },\n\n /**\n * Produces key/value index on given array.\n * \n * @param {*} arr source array\n * @param {*} idKey id key\n * @param {*} valKey value key\n */\n hash: (arr, idKey = 'id', valKey) => {\n const r = {};\n if (arr) {\n const isKeyFn = typeof idKey === 'string' ? e => e[idKey] : idKey\n arr.forEach((e) => { r[isKeyFn(e)] = valKey ? e[valKey] : e; });\n }\n return r;\n }\n}","\nconst R = {\n ru: {\n monthNames: ['', 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],\n monthNamesShort: ['', 'Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],\n dayNames: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],\n dayNamesShort: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']\n },\n en: {\n monthNames: ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n }\n}\nconst DATE_FORMATTERS = {\n hh: (date) => (String.pad(date.getHours())),\n ii: (date) => (String.pad(date.getMinutes())),\n hi: (date) => (String.pad(date.getHours()) + ':' + String.pad(date.getMinutes())),\n dd: (date) => (String.pad(date.getDate())),\n w: (date) => ('' + Date.l18n(`dayNames.${date.getDay()}`)),\n ww: (date) => ('' + Date.l18n(`dayNamesShort.${date.getDay()}`)),\n d: (date) => ('' + date.getDate()),\n mmmm: (date) => (Date.monthName(date.getMonth() + 1, '')),\n mmm: (date) => (Date.monthName(date.getMonth() + 1, 'Short')),\n mm: (date) => (String.pad(date.getMonth() + 1)),\n yyyy: (date) => (`${date.getFullYear()}`),\n ll: (date) => (`${date.getTime()}`),\n z: (date) => (`Z${Date.formatTimezone(date.getTimezoneOffset())}`)\n}\n\nexport default {\n orNow: x => x ? Date.narrow(x) : (new Date()),\n\n l18n: (key) => Object.dig(R[Date.LOCALE || 'ru'], key),\n\n daysInMonth: (month, year) => new Date(year, month + 1, 0).getDate(),\n\n firstOfWeek: (d, x = Date.narrow(d)) => (new Date(x.getFullYear(), x.getMonth(), x.getDate() - x.getDay())),\n\n monthName: (m, mode = '') => Date.l18n(`monthNames${mode}.${m}`),\n\n fractions: (x = new Date()) => [x.getFullYear(), x.getMonth(), x.getDate(), x.getHours(), x.getMinutes(), x.getSeconds(), x.getMilliseconds()],\n\n parseISO8601 (x) {\n Function.assert(typeof x === 'string', `Date.parseISO8601: not a string: ${x}`)\n\n if (x.length === 10) {\n x += 'T12:00'\n }\n const timebits = /^([0-9]{4})-([0-9]{2})-([0-9]{2})[ T]([0-9]{2}):([0-9]{2})(?::([0-9]*)(\\.[0-9]*)?)?(Z?)(([+-])([0-9]{2})([0-9]{2}))?/\n const m = timebits.exec(x)\n if (!m) {\n return null\n }\n const tz = m[8]\n ? !m[9] ? 0 : (m[10] === '+' ? -1 : +1) * ((parseInt(m[11]) * 60) + parseInt(m[12]))\n : (new Date().getTimezoneOffset())\n // utcdate is milliseconds since the epoch\n const utcdate = Date.UTC(\n parseInt(m[1]),\n parseInt(m[2]) - 1, // months are zero-offset (!)\n parseInt(m[3]),\n parseInt(m[4]), parseInt(m[5]), // hh:mm\n ((m[6] && parseInt(m[6])) || 0), // optional seconds\n ((m[7] && parseFloat(m[7]))) || 0\n )\n\n return new Date(utcdate + tz * 60000)\n },\n /**\n * Universal all-weather converter to Date.\n *\n * @param {*} x any value to be converted to date\n * @returns Date instance or null\n */\n narrow (x) {\n const type = typeof x\n if (x == null) { return null }\n // eslint-disable-next-line eqeqeq\n if (type === 'number' || +x == x) { return new Date(+x) }\n if (type === 'object') {\n // Date already\n if (x.getTime) { return x }\n // having a date re-presentation method\n if (x.toDate) { return x.toDate() }\n // firestore timestamp for web\n if (x.seconds && x.nanoseconds != null) { return new Date((x.seconds * 1000) + x.nanoseconds) }\n }\n return Date.parseISO8601(x)\n },\n formatTimezone (tzOffset) {\n const toNumber = Number(tzOffset)\n return toNumber\n ? toNumber >= 0\n ? `+${String.pad(toNumber / 60)}:${String.pad(toNumber % 60)}`\n : `-${String.pad(-toNumber / 60)}:${String.pad(-toNumber % 60)}`\n : ''\n },\n\n format (x, format = 'yyyy-mm-dd') {\n if (!x) {\n return ''\n }\n const date = Date.narrow(x)\n return !date ? '' : format\n .replace(/[_]/g, '\\n')\n .replace(/[hidwmylz]+/g, (key) => {\n const fn = DATE_FORMATTERS[key]\n return fn ? fn(date) : key\n })\n },\n\n dateKey: d => { const ms = Date.narrow(d).getTime(); return Date.format(ms - ms % (24 * 3600000) + 12 * 3600000, 'yyyy-mm-dd') }\n}\n","import obj from './obj.js'\nimport str from './str.js'\nimport arr from './arr.js'\nimport date from './date.js'\n\n// useful pipes\nexport default {\n ID: x => x,\n next: (COUNTER => (p = '') => p + (COUNTER++))(1),\n\n // system\n throw: (error, ErrorType = Error) => { throw typeof error === 'string' ? new ErrorType(error) : error },\n assert: (b, error, ErrorType = Error) => { if (!b) { throw typeof error === 'string' ? new ErrorType(error) : error } },\n log: (x, pre) => { console.log(pre || 'pipe', x); return x },\n track: (fn, x, y) => (...args) => { console.log('track', x || y); return (fn || Function.ID)(...args) },\n // eslint-disable-next-line no-debugger\n debugger: () => { debugger },\n\n // data structures\n dot: (x, k) => x && k in x ? x[k] : undefined,\n wrap: (x, k) => ({ [k]: x }),\n includes: (x, p) => x.includes && x.includes(p),\n dig: (o, steps) => (steps.reduce ? steps : steps.split('.')).reduce((r, e) => r ? r[e] : undefined, o),\n\n // logical\n then: (x, p = '', n = '') => x ? p : n,\n not: x => !x,\n isUndefined: x => typeof x === 'undefined',\n isTrue: x => x === true,\n isFalse: x => x === false,\n or: (x, s) => x || s,\n and: (x, s) => x && s,\n\n // math\n // eslint-disable-next-line eqeqeq\n equals: (x, p) => x == p,\n greater: (x, p) => x > p,\n less: (x, p) => x < p,\n plus: (x, alt) => (+x) + (+alt),\n minus: (x, alt) => (+x) - (+alt),\n multiply: (x, alt) => (+x) * (+alt),\n compose: (...ff) => x0 => ff.reduceRight((x, f) => f(x), x0),\n swap: f => (a, b) => f(b, a),\n curry: (() => {\n const _curry = (fn, args0, lengthLimit) => {\n const fx = (args) => args.length >= lengthLimit\n ? fn(...args)\n : _curry(fn, args, lengthLimit - args.length)\n\n return (...args) => fx([...args0, ...args])\n }\n return (f, ...args) => _curry(f, args, f.length)\n })(),\n /* Simple GUID generator. */\n guid: (s4 => () => `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`)(() => Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1)),\n /* Simple hash function. */\n hash: function (s) {\n let a = 1; let c = 0; let h; let o\n if (s) {\n a = 0\n /* jshint plusplus:false bitwise:false */\n for (h = s.length - 1; h >= 0; h--) {\n o = s.charCodeAt(h)\n a = (a << 6 & 268435455) + o + (o << 14)\n c = a & 266338304\n a = c !== 0 ? a ^ c >> 21 : a\n }\n }\n return String(a)\n },\n\n str,\n arr,\n obj,\n date: Object.assign((s, format) => date.format(s, format), date)\n}\n","Object.EMPTY = Object.freeze({})\nexport default {\n/**\n * Checks if argument is empty .\n */\n isEmpty (x) {\n if (!x) {\n return true\n }\n if (x instanceof Object) {\n // (zero-length array)\n if (Array.isArray(x)) {\n return x.length === 0\n }\n // (zero-size map)\n if (x instanceof Map) {\n return x.size === 0\n }\n // (has no props)\n return Object.keys(x).length === 0\n }\n return false\n },\n\n decode (val) {\n const value = decodeURIComponent(val)\n if ('{['.indexOf(value[0]) > -1) {\n return JSON.parse(value)\n }\n return Object.decodePrimitive(val)\n },\n\n decodePrimitive: (map => value => {\n if (value && '1234567890+-'.includes(value[0]) && value.length <= 17) {\n const num = +value\n return isNaN(num) ? value : num\n }\n return value in map ? map[value] : value\n })({\n true: true,\n false: false,\n null: null,\n undefined\n }),\n\n encode (value) {\n return encodeURIComponent((typeof value === 'object') ? JSON.stringify(value) : `${value}`)\n }\n}\n","\nfunction capitalize (x) {\n if (!x) {\n return x\n }\n const s = `${x}`\n\n return s[0].toUpperCase() + s.slice(1)\n}\nfunction camelize (s, sep = '_') {\n return ((s && s.length && s.split(sep).map((t, i) => (i ? capitalize(t) : t)).join('')) || '')\n}\n\n/**\n * Formats given string template with params.\n *\n * Template should contain placeholders like `{someKey}`,\n * which will be replaced with value by key from params.\n *\n * @param {string} template string template\n * @param {object} params hash with parameters\n */\nexport default {\n format: (template, params) => {\n return `${template || ''}`.replace(/\\{([\\S]+)\\}/i, (_, key) => ((params && params[key]) != null) ? params[key] : '')\n },\n wrap: (x, template) => {\n return !x ? '' : `${template || '*'}`.replace('*', x)\n },\n\n tail: (x, sep = '.') => {\n if (!x) {\n return ''\n }\n const pos = x.lastIndexOf(sep)\n\n return pos === -1 ? x : x.slice(pos + sep.length)\n },\n\n lastTail: (key, sep = '.') => ('' + key).split(sep).slice(-1)[0],\n\n head: (x, sep = '.') => {\n if (!x) {\n return ''\n }\n const pos = x.indexOf(sep)\n\n return pos === -1 ? x : x.slice(0, pos)\n },\n\n pad: (x, size = 2, fill = '0') => {\n let s = String(x)\n while (s.length < (size)) { s = `${fill}${s}` }\n return s\n },\n capitalize: capitalize,\n camelize: camelize,\n mirror: (x) => (x || '').split('').reduce((r, c) => (c + r), ''),\n snakeCase: (x) => (x || '').replace(/([a-z])([A-Z])/g, '$1_$2'),\n proper: (s) => capitalize(camelize(s)),\n upper: s => ('' + s).toUpperCase()\n}\n","import Obj from './obj.js'\n\nexport default {\n\n /**\n * Parses string into URL object like `{type, target, path, params, data }`.\n *\n * @param {string} s string in format: `type:target/path?params#data`\n * @param {object} r optional target object\n * @returns URL object\n */\n parse (s, r = {}) {\n if (!s) {\n return { path: [], params: {}, target: '', ...r }\n }\n if (typeof s === 'object') {\n return { path: [], params: {}, target: '', ...r, ...s }\n }\n let p\n // extract type:\n p = s.indexOf(':')\n if (p > -1) {\n r.type = s.slice(0, p)\n s = s.slice(p + 1)\n }\n // extract data:\n p = s.indexOf('#')\n if (p > -1) {\n r.data = Object.decode(s.slice(p + 1))\n s = s.slice(0, p)\n }\n // extract query params:\n p = s.indexOf('?')\n r.params = r.params || {}\n if (p > -1) {\n for (const param of s.slice(p + 1).split('&')) {\n const [key, value] = param.split('=')\n if (value) {\n r.params[key] = Obj.decode(value)\n }\n }\n s = s.slice(0, p)\n }\n // target and path:\n const path = r.path = s.split('/').map(decodeURIComponent)\n while (path.length && !r.target) {\n r.target = path.shift()\n }\n return r\n },\n\n /**\n* Represents an URL object as a string\n*\n* @param {object} r URL object like `{type, target, path, params, data }`\n* @returns string in format `type://target/path?params#data`\n*/\n stringify (r) {\n let result = ''\n if (!r) {\n return result\n }\n if (typeof r === 'string') {\n return r\n }\n if (r.target) {\n if (r.type) {\n result += `${r.type}://`\n }\n result += r.target\n }\n if (r.path) {\n result += `/${Array.isArray(r.path) ? r.path.map(encodeURIComponent).join('/') : r.path}`\n }\n const params = r.params\n if (params) {\n const keys = Object.keys(params).filter(key => (params[key] != null))\n if (keys.length) {\n result += `?${keys.map(key => (`${key}=${Obj.encode(params[key])}`)).join('&')}`\n }\n }\n if (r.data) {\n result += `#${Obj.encode(r.data)}`\n }\n return result\n }\n\n}\n","\nconst FIELD_TYPES = {\n bool: 'SwitchField'\n}\n\nexport class FormField {\n get TEMPLATE () {\n return /* html */ `\n <ui:fragment>\n <ui:tag tag={fieldType} ui:props={fieldProps} onChange={onChange}/>\n </ui:fragment>`\n }\n\n onChange ({ value }) {\n const form = this.form\n const field = this.field\n const id = field.id\n form.data = { ...form.data, [id]: value }\n form.change && form.change(form.data)\n }\n\n get fieldType () {\n const type = this.field.type || 'text'\n return FIELD_TYPES[type] || (String.capitalize(type) + 'Field')\n }\n\n get fieldProps () {\n const field = this.field\n const form = this.form\n const id = field.id\n const data = form.data || {}\n const value = data[id]\n return {\n ...field,\n error: (form.error && form.error.fields && form.error.fields[id]) || null,\n get disabled () { return field.disabled && field.disabled(this.value, this.data) },\n value: value === undefined ? null : value,\n caption: field.caption || field.name,\n data\n }\n }\n}\n\nexport class Form {\n get TEMPLATE () {\n return /* html */ `\n <div autocomplete=\"off\" class=\"form-horizontal\">\n <FormField ui:for=\"field of fields\" field={field} form={form}/>\n </div>`\n }\n\n getForm () {\n return this\n }\n\n getFields () {\n return this.fields || Object.keys(this.data).map(id => ({ id, caption: id }))\n }\n}\n","import { Service } from './Service'\nimport url from '../pipes/url'\n\nexport class NavigationService extends Service {\n init () {\n this.prevHash = ''\n this.hashchange = () => {\n const hash = window.location.hash.slice(1)\n if (hash[0] === '/' && hash !== this.prevHash) {\n this.emit('this.hash', { value: hash.slice(1) })\n this.prevHash = hash\n } else if (!this.prevHash) {\n this.emit('this.hash', { value: 'main' })\n this.prevHash = '/main'\n }\n }\n window.addEventListener('hashchange', this.hashchange)\n setTimeout(() => this.hashchange(), 0)\n }\n\n done () {\n window.removeEventListener('hashchange', this.hashchange)\n }\n\n update (d) {\n const { target, path = ['*'], params } = url.parse(d)\n const state = {\n target: (!target || target === '*' ? this.target : target) || 'main',\n path: path[0] === '*' ? this.path : path,\n params: params.reset ? { ...params, reset: null } : { ...this.params, ...params }\n }\n window.location.hash = this.prevHash = '/' + url.stringify(state)\n return state\n }\n\n getRoute () {\n return {\n target: this.target,\n path: this.path,\n params: this.params\n }\n }\n\n onHash ({ value }) { return this.update(value) }\n onParams (params) { return this.update({ params: { ...params, data: null } }) }\n}\n","export class Service {\n constructor (state, $) {\n this.state = state\n this.$ = $\n }\n\n /**\n * Framework\n */\n lookupService (ref) {\n return this.$.app && this.$.app[ref] ? this.$.app[ref].impl : null\n }\n\n up (...args) {\n return this.$.up(...args)\n }\n\n defer (...args) {\n return this.$.defer(...args)\n }\n\n emit (...args) {\n return this.$.emit(...args)\n }\n\n log (...args) {\n console.log(this.$.ref + ': ', ...args)\n return args[0]\n }\n\n /**\n * Error handling\n */\n\n handleError ({ message = '', code = '' }) {\n // may overriden from props\n const handler = this.lookupService('errorHandler')\n if (handler) {\n handler.handleError({ message, code, source: this.$.ref })\n } else {\n console.error(this.$.ref + ': ERROR: ', message, code)\n }\n }\n\n safe (p, def) {\n return p.catch(error => {\n this.handleError(error)\n return def ? def(error) : { error }\n })\n }\n\n onClearError () {\n return { error: null }\n }\n}\n","import { Service } from './Service'\n\nexport class ServiceWorker extends Service {\n get api () {\n return navigator.serviceWorker\n }\n\n init () {\n try {\n Function.assert(this.api, 'Service Workers are not supported')\n\n const { source = '/service-worker.js', scope = '/', push } = this\n\n this.api.register(source, { scope })\n .then((registration) => this.registered(registration))\n .then(() => this.ready(() => this.log('Service Worker Ready')))\n\n this.api.addEventListener('message', ev => this.onMessage(ev))\n\n if (push) {\n this.subscribe()\n }\n } catch (error) {\n this.fallback(error)\n }\n }\n\n // ensures that `fn` executed when api is ready\n ready (fn) {\n return this.api.ready.then(fn)\n }\n\n fallback (error) {\n this.log(error)\n }\n\n // hook on registered\n registered (registration) {\n this.log('Service Worker Registered')\n return registration\n }\n /**\n * Push\n */\n\n withPushManager (fn) {\n return this.ready(({ pushManager }) => pushManager).then(fn)\n }\n\n unsubscribe () {\n this.withPushManager(pushManager => pushManager.getSubscription())\n .then((ss) => ss && ss.unsubscribe())\n .then(() => this.saveSubscription())\n .catch(function (e) {\n console.log('Error thrown while unsubscribing from push messaging.', e)\n })\n }\n\n subscribe () {\n function urlBase64ToUint8Array (base64String) {\n const padding = '='.repeat((4 - base64String.length % 4) % 4)\n const base64 = (base64String + padding)\n .replace(/-/g, '+')\n .replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n return Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n }\n if (Notification.permission === 'granted') {\n /* do our magic */\n } else if (Notification.permission === 'blocked') {\n /* the user has previously denied push. Can't reprompt. */\n } else {\n /* show a prompt to the user */\n }\n const applicationServerKey = urlBase64ToUint8Array(this.vapidPublicKey)\n this.withPushManager(pushManager => pushManager.getSubscription()\n // .then((ss) => ss && ss.unsubscribe())\n .then(ss => ss || pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey\n }))\n .then((subscription) => this.saveSubscription(subscription.toJSON()))\n .catch((err) => {\n if (Notification.permission === 'denied') {\n this.log('The user has blocked notifications.')\n }\n this.handleError(err)\n })\n )\n }\n\n // to be overriden from props\n saveSubscription (ss) {\n this.subscription = ss\n }\n\n /**\n * Intercommunication between service worker.\n */\n\n // handles a message posted from Service worker.\n onMessage (payload) {\n this.log('onMessage', payload)\n }\n}\n","export default \"<component id=\\\"Icon\\\">\\n <i class=\\\"fa{bundle|or:s} fa-{type} {class}\\\" style={style} data={data} click={click}></i>\\n</component>\\n\\n<component id=\\\"Img\\\">\\n <img src={src|or:@default} alt={alt} class=\\\"img {class}\\\" style={style} />\\n</component>\\n\\n<component id=\\\"Avatar\\\">\\n <figure class=\\\"avatar {large|then:avatar-lg}\\\">\\n <Img src={src}\\n alt={alt}\\n default=\\\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\\\" />\\n </figure>\\n</component>\\n\\n<component id=\\\"Button\\\">\\n <button class=\\\"btn btn-{mode} {primary|then:btn-primary} {disabled|or:@busy|then:disabled} {class} {large|then:btn-lg} {link|then:btn-link} c-hand\\\"\\n style={style}\\n data={data}\\n click={action|track:@trackId:@caption}>\\n <i ui:if={busy} class=\\\"loading mx-2\\\"></i>\\n <Icon ui:if={icon} bundle={iconBundle} type={icon} class=\\\"mx-2\\\" />\\n <span ui:if={caption} style=\\\"white-space:nowrap; overflow: hidden; text-overflow: ellipsis;\\\">{caption}</span>\\n </button>\\n</component>\\n\\n<component id=\\\"FAB\\\">\\n <button class=\\\"btn2 {tooltip|then:tooltip} tooltip-left fixed bg-primary circle c-hand {class}\\\"\\n style=\\\"position: fixed;border:none; right:1.5rem; bottom:1.5rem; width: 2.5rem; height: 2.5rem; z-index:5;\\\"\\n data={data} data-tooltip={tooltip|or:} click={action|track:@trackId:big}>\\n <Icon type={icon|or:plus} />\\n </button>\\n</component>\\n\\n<component id=\\\"Modal\\\">\\n <div class=\\\"modal modal {open|then:active}\\\">\\n <a class=\\\"modal-overlay\\\" aria-label=\\\"Close\\\" data={data} click={close}></a>\\n <div class=\\\"modal-container\\\">\\n <div class=\\\"modal-header\\\">\\n <a class=\\\"btn btn-clear float-right\\\" aria-label=\\\":close\\\" data={data} click={close}></a>\\n <div class=\\\"modal-title h5\\\" ui:if={title}>{title}</div>\\n <ui:slot id=\\\"header\\\" />\\n </div>\\n <div class=\\\"modal-body\\\" style=\\\"max-height: 70vh;\\\">\\n <div class=\\\"content\\\">\\n <ui:slot />\\n </div>\\n </div>\\n <div class=\\\"modal-footer\\\">\\n <ui:slot id=\\\"footer\\\" />\\n </div>\\n </div>\\n </div>\\n</component>\\n\\n<component id=\\\"Tabs\\\">\\n <ul class=\\\"tab tab-block\\\">\\n <li class=\\\"tab-item {item.id|equals:@value|then:active} c-hand\\\" ui:for=\\\"item of items\\\">\\n <a data={data} data-id={item.id} click={action}>\\n <Icon ui:if={item.icon} type={item.icon} bundle={item.iconBundle} class=\\\"mx-2\\\" />\\n {item.name}\\n </a>\\n </li>\\n </ul>\\n</component>\";","export default \"<component id=\\\"FieldItem\\\">\\n <div class=\\\"columns form-group {error|then:has-error} {class}\\\">\\n <div class=\\\" col-4 col-sm-12\\\">\\n <label class=\\\"form-label\\\" for=\\\"input-example-1\\\">\\n {caption}\\n <sup ui:if={required}\\n class=\\\"text-error\\\">✱</sup>\\n </label>\\n </div>\\n <div class=\\\"col-8 col-sm-12\\\">\\n <ui:slot />\\n <p class=\\\"form-input-hint\\\" ui:if={error}>{error}</p>\\n </div>\\n </div>\\n</component>\\n\\n<component id=\\\"TextField\\\">\\n <FieldItem caption={caption} error={error} required={required}>\\n <input class=\\\"form-input\\\"\\n type=\\\"text\\\"\\n disabled={disabled}\\n placeholder={placeholder|or:@caption}\\n value={value}\\n change={onChange}>\\n </FieldItem>\\n</component>\\n\\n<component id=\\\"DateField\\\">\\n <FieldItem caption={caption} error={error} required={required}>\\n <input class=\\\"form-input\\\"\\n disabled={disabled}\\n type=\\\"date\\\"\\n placeholder={caption}\\n value={value}\\n change={onChange}>\\n </FieldItem>\\n</component>\\n\\n<component id=\\\"DateTimeField\\\">\\n <FieldItem caption=\\\"{caption}\\\" error={error} required={required}>\\n <input class=\\\"form-input\\\"\\n disabled={disabled}\\n type=\\\"datetime-local\\\"\\n placeholder={caption}\\n value={value|date:yyyy-mm-ddTt}\\n change={onChange}>\\n </FieldItem>\\n</component>\\n\\n<component id=\\\"NumberField\\\">\\n <FieldItem caption={caption} error={error} required={required}>\\n <input class=\\\"form-input\\\"\\n disabled={disabled}\\n type=\\\"number\\\"\\n placeholder={caption}\\n value={value}\\n change={onChange}>\\n </FieldItem>\\n</component>\\n\\n<component id=\\\"TextareaField\\\">\\n <FieldItem caption={caption} error={error} required={required}>\\n <textarea\\n class=\\\"form-input\\\"\\n style=\\\"min-height: 15vw\\\"\\n disabled={disabled} placeholder={caption} rows=\\\"3\\\" change={onChange} value={value}></textarea>\\n </FieldItem>\\n</component>\\n\\n<component id=\\\"SwitchField\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-12\\\">\\n <label class=\\\"form-switch\\\">\\n <span>{caption}</span>\\n <input type=\\\"checkbox\\\" toggle={onChange} data={data} checked={value|not|not}>\\n <i class=\\\"form-icon\\\"></i>\\n </label>\\n </div>\\n </div>\\n</component>\\n\\n<component id=\\\"EnumField\\\">\\n <FieldItem caption={caption} class={class} error={error} required={required}>\\n <Select class=\\\"form-select\\\"\\n change={onChange}\\n value={value|or:@defaultValue}\\n data={data}\\n options=\\\":enums.{typeSpec}\\\"\\n emptyCaption={emptyCaption}\\n disabled={disabled} />\\n </FieldItem>\\n</component>\\n\\n<component id=\\\"SelectField\\\">\\n <FieldItem caption={caption} class={class} error={error} required={required}>\\n <Select class=\\\"form-select\\\"\\n change={onChange}\\n value={value|or:@defaultValue}\\n data={data}\\n options={options}\\n emptyCaption={emptyCaption}\\n disabled={disabled} />\\n </FieldItem>\\n</component>\\n\\n<component id=\\\"RadioField\\\">\\n <FieldItem caption={caption} error={error} required={required}>\\n <RadioGroup change={onChange}\\n value={value} data={data} options=\\\":enums.{typeSpec}\\\"\\n disabled={disabled} />\\n </FieldItem>\\n</component>\";","import elements from './elements.html'\nimport table from './table.html'\nimport inputs from './inputs.html'\nimport fields from './fields.html'\nimport layouts from './layouts.html'\nimport viewport from './viewport.html'\n\nimport { NavigationService } from './NavigationService'\nimport { ServiceWorker } from './ServiceWorker'\n\nimport * as formTypes from './Form'\nimport * as services from './services'\n\nexport default [\n ServiceWorker,\n NavigationService,\n ...Object.values(formTypes),\n ...Object.values(services),\n elements, table, fields, viewport, layouts, inputs\n]\n","export default \"<component id=\\\"Select\\\">\\n <select class=\\\"{class}\\\" change={change} disabled={disabled} data={data}>\\n <option selected={value|not} value=\\\"\\\" ui:if={value|not|or:@emptyCaption}>{emptyCaption}</option>\\n <option ui:for=\\\"option of options\\\" selected={option.id|equals:@value} value={option.id}>\\n {option.name}\\n </option>\\n </select>\\n</component>\\n\\n<component id=\\\"RadioGroup\\\">\\n <div class=\\\"{class}\\\">\\n <label class=\\\"form-radio\\\" ui:for=\\\"option of options\\\">\\n <input type=\\\"radio\\\" name={id|or:rg}\\n value={option.id}\\n checked={option.id|equals:@value} change={change} data={data}\\n disabled={disabled}>\\n <i class=\\\"form-icon\\\"></i>{option.name}\\n </label>\\n </div>\\n</component>\\n\\n<component id=\\\"Dropdown\\\">\\n <div class=\\\"dropdown\\\">\\n <a href=\\\"#\\\" class=\\\"btn btn-link dropdown-toggle\\\" tabindex=\\\"0\\\">\\n {data|selectedName}<i class=\\\"icon icon-caret\\\"></i>\\n </a>\\n <!-- menu component -->\\n <ul class=\\\"menu\\\" style=\\\"right:0;left:auto;\\\">\\n <li ui:for=\\\"item of data\\\" class=\\\"menu-item {item.id|equals:@value|then:active}\\\"\\n data-id={item.id}\\n data-name={item.name}\\n click={change}>\\n <a>{item.name}</a>\\n </li>\\n </ul>\\n </div>\\n</component>\\n\\n<component id=\\\"DateTimeInput\\\">\\n <input class=\\\"form-input flatpickr-input\\\"\\n init={:support.initFlatpickr}\\n disabled={disabled}\\n type=\\\"text\\\"\\n placeholder={placeholder}\\n value={value|support.setFlatpickrValue}\\n change={change}>\\n</component>\\n\\n<component id=\\\"SearchBar\\\">\\n <span class=\\\"ant-input-search ant-input-affix-wrapper\\\">\\n <input placeholder=\\\"Поиск...\\\" class=\\\"ant-input\\\" type=\\\"text\\\"\\n value={value} enter={action}\\n style=\\\"min-height:40px;\\\">\\n <span class=\\\"ant-input-suffix\\\">\\n <i class=\\\"anticon anticon-search ant-input-search-icon\\\" style=\\\"margin-top: 4px;\\\"></i>\\n </span>\\n </span>\\n</component>\";","export default \"<component id=\\\"LoadingIndicator\\\">\\n <div class=\\\"loading {large|then:loading-lg} {class}\\\" />\\n</component>\\n\\n<component id=\\\"EmptyData\\\">\\n <div class=\\\"empty {class}\\\">\\n <div class=\\\"empty-icon\\\">\\n <Icon type={icon|or:people} />\\n </div>\\n <p class=\\\"empty-title h5\\\">{title}</p>\\n <p ui:if={subtitle} class=\\\"empty-subtitle\\\">{subtitle}</p>\\n <div class=\\\"empty-action\\\">\\n <ui:slot />\\n </div>\\n </div>\\n</component>\\n\\n<component id=\\\"Panel\\\">\\n <h6 class=\\\"mt-2 pt-2 px-2 text-gray\\\" ui:if=\\\"caption\\\">{caption}</h6>\\n <div class=\\\"panel {class}\\\" style={style}>\\n <small class=\\\"p-2 bg-secondary\\\" ui:if={hint}>{hint}</small>\\n <div class=\\\"panel-header\\\" ui:if=\\\"slot(title)\\\">\\n <div class=\\\"panel-title\\\">\\n <ui:slot id=\\\"title\\\" key=\\\"panel-title\\\" />\\n </div>\\n </div>\\n <div class=\\\"panel-nav\\\" ui:if=\\\"slot(nav)\\\">\\n <ui:slot id=\\\"nav\\\" />\\n </div>\\n <div class=\\\"panel-body p-2\\\">\\n <ui:slot />\\n </div>\\n <div class=\\\"panel-footer\\\" ui:if=\\\"slot(footer)\\\">\\n <ui:slot id=\\\"footer\\\" />\\n </div>\\n </div>\\n</component>\\n\\n<component id=\\\"Grid\\\">\\n <div class=\\\"columns {class}\\\">\\n <ui:slot />\\n </div>\\n</component>\\n\\n<component id=\\\"Col\\\">\\n <div class=\\\"col-{size|or:6} col-sm-12 {class}\\\">\\n <ui:slot />\\n </div>\\n</component>\\n<component id=\\\"Centroid\\\">\\n <div class=\\\"{class}\\\" style=\\\"display: flex;align-items: center;justify-content: center;{style}\\\">\\n <ui:slot />\\n </div>\\n</component>\\n\\n<component id=\\\"FlexBox\\\">\\n <div class=\\\"{class}\\\" style=\\\"display: flex;align-items: stretch;justify-content:space-around;{style}\\\">\\n <ui:slot />\\n </div>\\n</component>\\n\\n<component id=\\\"Tile\\\">\\n <div class=\\\"tile {centered|then:tile-centered} m-2 {class}\\\">\\n <div class=\\\"tile-icon\\\" ui:if={image}>\\n <Avatar src={image} />\\n </div>\\n <div class=\\\"tile-icon\\\" ui:if={icon}>\\n <Icon type={icon} />\\n </div>\\n <div class=\\\"tile-content\\\">\\n <div class=\\\"tile-title text-bold\\\" ui:if={title}>{title}</div>\\n <div class=\\\"tile-subtitle\\\" ui:if={subtitle}>{subtitle}</div>\\n <ui:slot />\\n </div>\\n <div class=\\\"tile-action btn-group\\\" ui:if=\\\"slot(actions)\\\">\\n <ui:slot id=\\\"actions\\\" />\\n </div>\\n </div>\\n</component>\\n\\n\\n<component id=\\\"Card\\\">\\n <div class=\\\"card\\\" style={style}>\\n <div class=\\\"card-image\\\" ui:if={image}>\\n <img src={image} class=\\\"img-responsive\\\" />\\n </div>\\n <div class=\\\"card-header\\\">\\n <a ui:if={title} href={link}>\\n <h5 class=\\\"card-title\\\">{title}</h5>\\n </a>\\n <div ui:if={subtitle} class=\\\"card-subtitle text-gray\\\">{subtitle}</div>\\n <ui:slot id=\\\"header\\\" />\\n </div>\\n <div class=\\\"card-body\\\">\\n <ui:slot />\\n </div>\\n <div class=\\\"card-footer\\\">\\n <ui:slot id=\\\"footer\\\" />\\n </div>\\n </div>\\n</component>\\n\\n<component id=\\\"Popover\\\">\\n <div class=\\\"popover popover-right\\\">\\n <ui:slot />\\n <div class=\\\"popover-container\\\">\\n <div class=\\\"card\\\">\\n <div class=\\\"card-header\\\">\\n <ui:slot id=\\\"body\\\" />\\n </div>\\n </div>\\n </div>\\n </div>\\n</component>\";","import { Service } from './Service'\n\nexport class Invoke {\n init () {\n if (this.delay) {\n setTimeout(() => { if (!this.isDone) { this.action(this.data) } }, (this.delay) * 1000)\n } else {\n this.action(this.data)\n }\n }\n}\n\nexport class Loader {\n init () {\n this.reload()\n }\n\n setTrigger (val) {\n this.trigger = val\n this.reload()\n }\n\n reload () {\n const { from, data, into } = this\n if (from && into) {\n from({ data, callback: (error, result) => into({ error, ...result }) })\n }\n }\n}\n\nexport class ErrorHandlingService extends Service {\n handleError ({ message = '', code, source = {} }) {\n this.show({ message: source + ': ' + message, code, mode: 'error' })\n }\n\n show ({ message = '', code = '', source }) {\n console.error(source + ': ERROR: ', code, message)\n }\n}\n\nexport class ToastService extends Service {\n onSend ({ data }) {\n return {\n top: { ...data, close: () => this.emit('this.close'), closeAfter: 5 }\n }\n }\n\n onClose () {\n return {\n top: null\n }\n }\n}\n","export default \"<component id=\\\"LoadableItems\\\">\\n <LoadingIndicator class=\\\"empty\\\" ui:if=\\\"data|not\\\">\\n <ui:else>\\n <h5 class=\\\"error text-error\\\" ui:if=\\\"data.error\\\">{data.error.message|or:@data.error}</h5>\\n <EmptyData title={emptyCaption|or:Empty} ui:if=\\\"data.length|not\\\">\\n <ui:else>\\n <div style={style} ui:for=\\\"item of data\\\">\\n <ui:tag tag={itemType} ui:props={item} item={item} context={context} action={action} />\\n </div>\\n </ui:else>\\n </EmptyData>\\n </ui:else>\\n </LoadingIndicator>\\n</component>\\n\\n<component id=\\\"LoadableEntity\\\">\\n <LoadingIndicator class=\\\"empty\\\" ui:if=\\\"data|not\\\">\\n <ui:else>\\n <h5 class=\\\"error text-error\\\" ui:if=\\\"data.error\\\">\\n <span>{data.error.message|or:@data.error}</span>\\n <ui:else>\\n <EmptyData title={emptyCaption|or:Empty} ui:if=\\\"data.id|not\\\">\\n <ui:else>\\n <ui:tag tag={type} data={data} context={context} action={action} />\\n </ui:else>\\n </EmptyData>\\n </ui:else>\\n </h5>\\n </ui:else>\\n </LoadingIndicator>\\n</component>\\n\\n<component id=\\\"Cell\\\">\\n <span class=\\\"\\\" style=\\\"padding-left: 0px;\\\">{value}</span>\\n</component>\\n\\n<component id=\\\"EnumCell\\\">\\n <span class=\\\"\\\"\\n style=\\\"padding-left: 0px;\\\">:map.{typeSpec}.{value}</span>\\n</component>\\n\\n<component id=\\\"DateCell\\\">\\n <span class=\\\"\\\" style=\\\"padding-left: 0px;\\\">{value|date}</span>\\n</component>\\n\\n<component id=\\\"Table\\\">\\n <table style=\\\"position: relative;\\\">\\n <thead class=\\\"table-thead\\\">\\n <tr>\\n <th class=\\\"col-index\\\" style=\\\"position: sticky; top: -1;\\\"></th>\\n <th class=\\\"col-index\\\" style=\\\"position: sticky; top: -1;\\\" ui:for=\\\"item of columns\\\">\\n <span>{item.name}</span>\\n <div class=\\\"table-column-sorter\\\" ui:if=\\\"item.sortable\\\">\\n <span class=\\\"table-column-sorter-up off\\\" title=\\\"↑\\\" data-id=\\\"-{item.id}\\\"\\n click={doSort}><i class=\\\"anticon anticon-caret-up\\\"></i></span>\\n <span class=\\\"table-column-sorter-down off\\\" title=\\\"↓\\\" data-id={item.id} click={doSort}><i\\n class=\\\"anticon anticon-caret-down\\\"></i></span>\\n </div>\\n </th>\\n </tr>\\n </thead>\\n <TableRow ui:for=\\\"item of data\\\" data={item} selected={item.selected} columns={columns} kind={kind} />\\n </table>\\n</component>\\n\\n<component id=\\\"TableRow\\\">\\n <tbody class=\\\"table-tbody\\\">\\n <tr class=\\\"table-row table-row-level-0\\\" style=\\\"position:sticky;\\\">\\n <td class=\\\"col-index\\\" data-id={data.id} click={doItem}>\\n <div ui:if={expandable}\\n role=\\\"button\\\"\\n class=\\\"table-row-expand-icon table-row-expanded\\\"\\n aria-label=\\\"Collapse row\\\"\\n data-selected=\\\"false\\\" click=\\\"->\\\">\\n <ui:else>\\n <div role=\\\"button\\\"\\n class=\\\"table-row-expand-icon table-row-collapsed\\\"\\n aria-label=\\\"Expand row\\\"\\n data-selected=\\\"true\\\" click=\\\"->\\\"></div>\\n </ui:else>\\n </div>\\n </td>\\n <td class=\\\"col-index\\\" ui:for=\\\"col of columns\\\">\\n <ui:tag tag=\\\"{col.type|str.capitalize}Cell\\\" ui:props={col} value={col.id|propObjectValueByKey}\\n data={data} />\\n </td>\\n </tr>\\n <tr ui:if={expanded} class=\\\"table-expanded-row table-expanded-row-level-1\\\">\\n <td class=\\\"\\\"></td>\\n <td class=\\\"\\\" colspan=\\\"100\\\">\\n <ui:tag tag=\\\"{kind|str.capitalize}RowInsider\\\" data={data} />\\n </td>\\n </tr>\\n </tbody>\\n</component>\";","export default \"<component id=\\\"ViewPort\\\">\\n <ToastService ui:ref=\\\"toaster\\\" />\\n <ErrorHandlingService ui:ref=\\\"errorHandler\\\" show=\\\"-> toaster.send\\\" />\\n <ui:fragment ui:if=\\\"slot(aside)\\\">\\n <Sidebar caption={caption} size={sidebarWidth}>\\n <Sidebar:aside>\\n <ui:slot id=\\\"aside\\\" />\\n </Sidebar:aside>\\n <main>\\n <Toast event=\\\"<- toaster.top\\\" />\\n <ui:slot />\\n </main>\\n </Sidebar>\\n <ui:else>\\n <main>\\n <Toast event=\\\"<- toaster.top\\\" />\\n <ui:slot />\\n </main>\\n </ui:else>\\n </ui:fragment>\\n</component>\\n\\n<component id=\\\"Sidebar\\\">\\n <div class=\\\"off-canvas off-canvas-sidebar-show\\\">\\n <a class=\\\"off-canvas-toggle btn btn-primary btn-action show-lg bg-red\\\"\\n href=\\\"#sidebar\\\">\\n <Icon type=\\\"bars\\\" />\\n </a>\\n <div id=\\\"sidebar\\\" class=\\\"off-canvas-sidebar\\\">\\n <Aside caption={caption}>\\n <ui:slot id=\\\"aside\\\" />\\n </Aside>\\n </div>\\n <a class=\\\"off-canvas-overlay\\\" href=\\\"#\\\"></a>\\n <div class=\\\"off-canvas-content\\\">\\n <ui:slot />\\n </div>\\n </div>\\n</component>\\n\\n<component id=\\\"Aside\\\">\\n <aside style=\\\"display:flex; flex-direction: column; height: 100vh; width:{size|or:300}px\\\">\\n <div class=\\\"text-center\\\" ui:if={caption}>\\n <a href=\\\"#/main\\\">\\n <h5 class=\\\"p-2\\\">{caption}</h5>\\n </a>\\n </div>\\n <div class=\\\"m-2\\\" style=\\\"flex:1; overflow-y: auto;\\\">\\n <ui:slot />\\n </div>\\n </aside>\\n</component>\\n\\n<component id=\\\"Navbar\\\">\\n <header class=\\\"navbar {class}\\\" style=\\\"min-height:48px\\\">\\n <section class=\\\"navbar-section\\\">\\n <div class=\\\"mx-2\\\">\\n <NavLink href={back} ui:if={back}>\\n <Button link class=\\\"text-primary\\\" icon=\\\"arrow-left\\\" title=\\\":action.back\\\" />\\n </NavLink>\\n <h4 class=\\\"m-1\\\" style=\\\"vertical-align: middle;\\\" ui:if={caption}>{caption}</h4>\\n <ui:slot id=\\\"left\\\" />\\n </div>\\n </section>\\n <section class=\\\"navbar-center\\\" ui:if={logo}>\\n <img src={logo} style=\\\"max-height:44px;\\\" />\\n </section>\\n <section class=\\\"navbar-section\\\">\\n <div class=\\\"mx-2\\\">\\n\\n <ui:slot />\\n </div>\\n\\n </section>\\n </header>\\n</component>\\n\\n<component id=\\\"NavTree\\\">\\n <ul class=\\\"nav\\\">\\n <li class=\\\"nav-item {item.class}\\\" ui:for=\\\"item of data\\\">\\n <NavLink href={item.id}>\\n <span>{item.name}</span>\\n <span ui:if={item.label} class=\\\"label label-error\\\">{item.label}</span>\\n </NavLink>\\n <NavTree ui:if={item.subs} data={item.subs} />\\n </li>\\n </ul>\\n</component>\\n\\n<component id=\\\"NavLink\\\">\\n <a data-value={href} click=\\\"-> nav.hash\\\" class=\\\"c-hand {class}\\\">\\n <ui:slot />\\n </a>\\n</component>\\n\\n<component id=\\\"PageRouter\\\">\\n <ui:tag tag=\\\"{target|str.capitalize|or:Main}Page\\\" ui:props={params} params={params} />\\n</component>\\n\\n<component id=\\\"Toast\\\">\\n <div class=\\\"toast toast-{event.mode|or:@mode|or:primary}\\\"\\n style=\\\"position:absolute;top:1rem;right:1rem;left:1rem;{style}\\\"\\n ui:if=\\\"event\\\">\\n <button class=\\\"btn btn-clear float-right\\\" click={event.close}></button>\\n <p>{event.message}</p>\\n <Delay ui:if={event.closeAfter} action={event.close} period={event.closeAfter} />\\n </div>\\n</component>\";"],"sourceRoot":""}