@protobase/ui 0.25.1 → 0.25.3
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/account/account-pages.js +3 -2
- package/dist/account/account-security-page.js +9 -4
- package/dist/account/backup-codes.js +7 -6
- package/dist/account/messages.js +214 -0
- package/dist/account/passkeys-section.js +23 -22
- package/dist/account/password-dialog.js +3 -2
- package/dist/account/sign-in-policy-form.js +11 -10
- package/dist/account/sign-in-policy-labels.js +30 -29
- package/dist/account/sign-in-policy-page.js +11 -6
- package/dist/account/sign-in-providers-section.js +6 -5
- package/dist/account/staff-sign-in-log.js +11 -10
- package/dist/account/totp-qr.js +2 -1
- package/dist/account/two-factor-section.js +24 -23
- package/dist/account/two-factor-setup.js +18 -17
- package/dist/action-card/action-card.js +2 -1
- package/dist/action-card/messages.js +8 -0
- package/dist/activity-chart/activity-chart.js +3 -2
- package/dist/activity-chart/messages.js +14 -0
- package/dist/app/app.d.ts +1 -1
- package/dist/app/app.js +20 -21
- package/dist/app/assistant-shell.js +2 -1
- package/dist/app/batch-failure.js +2 -1
- package/dist/app/breadcrumb-for.js +4 -3
- package/dist/app/charts/chart-groups.js +3 -2
- package/dist/app/charts/chart-view.js +3 -2
- package/dist/app/charts/group-bars.js +2 -1
- package/dist/app/charts/messages.js +26 -0
- package/dist/app/charts/period-chart.js +3 -2
- package/dist/app/charts/split-points.js +2 -1
- package/dist/app/comments/comment-composer.js +19 -18
- package/dist/app/comments/comments-section.js +4 -3
- package/dist/app/comments/messages.js +26 -0
- package/dist/app/create/create-page.js +11 -18
- package/dist/app/custom-section.js +4 -6
- package/dist/app/displays/board-column.js +6 -5
- package/dist/app/displays/board-columns.js +3 -2
- package/dist/app/displays/board-display.js +13 -15
- package/dist/app/displays/calendar-controls.js +3 -2
- package/dist/app/displays/calendar-display.js +12 -17
- package/dist/app/displays/card-carousel.js +4 -3
- package/dist/app/displays/cards-display.js +2 -1
- package/dist/app/displays/custom-display.js +4 -6
- package/dist/app/displays/display-frame.js +3 -2
- package/dist/app/displays/list-cards.js +5 -8
- package/dist/app/displays/list-displays.js +3 -3
- package/dist/app/displays/map-display.js +15 -14
- package/dist/app/displays/messages.js +128 -2
- package/dist/app/displays/period-controls.js +4 -3
- package/dist/app/displays/record-card.js +7 -6
- package/dist/app/displays/timeline-display.js +17 -26
- package/dist/app/displays/timeline-range.js +2 -1
- package/dist/app/displays/use-board-move.js +2 -2
- package/dist/app/displays/use-calendar-move.js +2 -1
- package/dist/app/document-title.js +2 -1
- package/dist/app/export/builder-port.js +2 -1
- package/dist/app/export/export-dialog.js +36 -40
- package/dist/app/export/export-worker.js +2 -0
- package/dist/app/export/messages.js +78 -0
- package/dist/app/export/run-export.js +5 -2
- package/dist/app/export/sink.js +4 -3
- package/dist/app/export/use-export-flow.js +4 -3
- package/dist/app/field-editor.js +4 -3
- package/dist/app/field-types/messages.js +8 -0
- package/dist/app/field-types/widget-part.js +2 -1
- package/dist/app/file-field.js +11 -14
- package/dist/app/gallery/gallery-section.js +4 -3
- package/dist/app/gallery/lightbox.js +5 -4
- package/dist/app/gallery/messages.js +30 -0
- package/dist/app/gallery/photo-details.js +3 -2
- package/dist/app/hand-order/hand-sorted-list.js +3 -6
- package/dist/app/hand-order/messages.js +4 -2
- package/dist/app/history/describe-change.js +3 -8
- package/dist/app/history/messages.js +32 -0
- package/dist/app/import/convert.js +20 -19
- package/dist/app/import/failed-rows.js +3 -2
- package/dist/app/import/import-button.js +2 -1
- package/dist/app/import/import-check-step.js +19 -35
- package/dist/app/import/import-dialog.js +13 -17
- package/dist/app/import/import-file-step.js +5 -9
- package/dist/app/import/import-mapping-step.js +32 -35
- package/dist/app/import/import-result-step.js +13 -12
- package/dist/app/import/messages.js +200 -0
- package/dist/app/import/parse-worker.js +2 -0
- package/dist/app/import/prepare-rows.js +5 -4
- package/dist/app/import/sheet-cell.js +2 -1
- package/dist/app/import/sheet-file.js +3 -2
- package/dist/app/import/sheet-source.js +7 -3
- package/dist/app/import/xlsx-reader.js +4 -3
- package/dist/app/import/xlsx-xml.js +2 -1
- package/dist/app/import/zip-reader.js +4 -3
- package/dist/app/list-edit/use-list-edits.js +1 -1
- package/dist/app/list-group-chart.js +2 -1
- package/dist/app/list-page.js +1 -1
- package/dist/app/map/map-layer-switch.js +3 -2
- package/dist/app/map/messages.js +14 -0
- package/dist/app/messages.js +116 -2
- package/dist/app/meta-gate.js +1 -1
- package/dist/app/nav-from-meta.js +11 -10
- package/dist/app/pages/action-inputs/action-inputs-dialog.js +3 -2
- package/dist/app/pages/action-inputs/input-answers.js +6 -5
- package/dist/app/pages/blocks/card-row.js +3 -2
- package/dist/app/pages/blocks/modal-form.js +5 -4
- package/dist/app/pages/blocks/record-card.js +3 -2
- package/dist/app/pages/blocks/stat.js +2 -1
- package/dist/app/pages/composed-page.js +6 -8
- package/dist/app/pages/confirm-action.js +2 -1
- package/dist/app/pages/custom-boundary.js +4 -2
- package/dist/app/pages/messages.js +64 -0
- package/dist/app/pages/render-node.js +5 -7
- package/dist/app/pages/use-run-action.js +11 -10
- package/dist/app/record-page.js +1 -1
- package/dist/app/record-row/messages.js +26 -0
- package/dist/app/record-row/record-row-body.js +12 -7
- package/dist/app/record-row/record-row.js +4 -3
- package/dist/app/record-row/saved-record-row.js +3 -2
- package/dist/app/related-dots/dots-summary.js +2 -1
- package/dist/app/related-dots/messages.js +8 -0
- package/dist/app/relation-picker.js +9 -8
- package/dist/app/router.js +5 -4
- package/dist/app/runtime/messages.js +58 -0
- package/dist/app/runtime/runtime-status.js +10 -23
- package/dist/app/runtime/runtime-update-dialog.js +7 -6
- package/dist/app/runtime/runtime-update.js +4 -3
- package/dist/app/saved/favorite-button.js +2 -1
- package/dist/app/saved/messages.js +22 -0
- package/dist/app/saved/saved-list.js +4 -7
- package/dist/app/saved/use-favorite.js +3 -2
- package/dist/app/search/messages.js +6 -2
- package/dist/app/search/navigation-hits.js +9 -7
- package/dist/app/searches/filter-chip-list.js +2 -1
- package/dist/app/searches/messages.js +96 -0
- package/dist/app/searches/save-search-button.js +5 -4
- package/dist/app/searches/saved-search-rows.js +3 -2
- package/dist/app/searches/saved-search-section.js +6 -5
- package/dist/app/searches/saved-search.js +4 -3
- package/dist/app/searches/saved-searches.js +15 -25
- package/dist/app/searches/search-controls.js +5 -4
- package/dist/app/searches/search-diff.js +4 -2
- package/dist/app/searches/search-name-dialog.js +4 -3
- package/dist/app/searches/update-search-dialog.js +15 -30
- package/dist/app/searches/use-save-search.js +8 -7
- package/dist/app/searches/use-search-row.js +4 -3
- package/dist/app/sensitive-field.js +5 -4
- package/dist/app/source-notice.js +13 -8
- package/dist/app/staff-banner.js +12 -19
- package/dist/app-shell/global-search.js +2 -2
- package/dist/app-shell/messages.js +4 -2
- package/dist/assistant-dock/assistant-dock.js +5 -5
- package/dist/assistant-dock/messages.js +26 -0
- package/dist/assistant-dock/use-assistant.js +2 -1
- package/dist/assistant-dock/use-backend-data.js +2 -1
- package/dist/assistant-dock/widget-view.js +3 -2
- package/dist/auth/auth-gate.js +10 -5
- package/dist/auth/auth-locale.js +14 -0
- package/dist/auth/auth-messages.js +122 -43
- package/dist/auth/auth-provider.js +6 -1
- package/dist/auth/code-form.js +2 -1
- package/dist/auth/email-code-form.js +11 -13
- package/dist/auth/email-code-page.js +2 -1
- package/dist/auth/first-run-page.js +6 -5
- package/dist/auth/forgot-password-form.js +14 -16
- package/dist/auth/forgot-password-page.js +2 -1
- package/dist/auth/messages.js +200 -0
- package/dist/auth/provider-sign-in-page.js +5 -5
- package/dist/auth/resend-code-button.js +2 -1
- package/dist/auth/reset-password-form.js +11 -10
- package/dist/auth/reset-password-page.js +4 -3
- package/dist/auth/setup-required-form.js +7 -9
- package/dist/auth/setup-required-page.js +7 -2
- package/dist/auth/sign-in-form.js +15 -18
- package/dist/auth/sign-in-prompt.js +4 -3
- package/dist/auth/sign-up-code-form.js +11 -13
- package/dist/auth/sign-up-details-form.js +14 -21
- package/dist/auth/sign-up-email-form.js +8 -7
- package/dist/auth/sign-up-page.js +2 -1
- package/dist/auth/staff-sign-in-form.js +14 -17
- package/dist/auth/two-factor-form.js +17 -16
- package/dist/auth/user-to-shell.js +2 -1
- package/dist/chat/composer.js +8 -7
- package/dist/chat/messages.js +14 -0
- package/dist/compact-table/compact-table.js +4 -8
- package/dist/compact-table/messages.js +18 -0
- package/dist/data/meta-data.d.ts +1 -1
- package/dist/data/use-update-record.js +1 -1
- package/dist/inline-child-table/inline-child-table.js +12 -12
- package/dist/inline-child-table/line-row.js +10 -9
- package/dist/inline-child-table/messages.js +52 -0
- package/dist/inline-child-table/totals-footer.js +5 -8
- package/dist/invitations/invite-form.js +3 -2
- package/dist/invitations/link-notice.js +6 -4
- package/dist/invitations/messages.js +24 -0
- package/dist/invitations/pending-invitation-row.js +4 -3
- package/dist/lists/messages.js +8 -0
- package/dist/lists/paged-search-list.js +2 -1
- package/dist/locale/slotted.js +14 -0
- package/dist/markdown/markdown-editor.js +6 -5
- package/dist/markdown/messages.js +16 -0
- package/dist/organizations/all-organizations.js +6 -5
- package/dist/organizations/app-roles-picker.js +2 -1
- package/dist/organizations/invitation-page.js +39 -49
- package/dist/organizations/invitations-page.js +11 -10
- package/dist/organizations/members-page.js +15 -10
- package/dist/organizations/messages.js +180 -0
- package/dist/organizations/organization-page.js +27 -26
- package/dist/organizations/organization-paths.js +16 -13
- package/dist/organizations/organization-row.js +3 -2
- package/dist/organizations/organizations-page.js +17 -16
- package/dist/organizations/use-organizations.js +2 -1
- package/dist/package.js +1 -1
- package/dist/plugins/before-sign-in.js +6 -1
- package/dist/plugins/load-plugin.d.ts +1 -1
- package/dist/plugins/load-plugin.js +3 -2
- package/dist/plugins/messages.js +36 -0
- package/dist/plugins/plugin-gate.js +6 -1
- package/dist/plugins/plugin-manifest.js +8 -7
- package/dist/plugins/plugin-notice.js +8 -12
- package/dist/primitives/messages.js +16 -0
- package/dist/primitives/sheet.js +2 -1
- package/dist/primitives/spinner.js +2 -1
- package/dist/primitives/token.js +2 -1
- package/dist/record-view/messages.js +4 -2
- package/dist/record-view/record-tabs.js +2 -1
- package/dist/roles/messages.js +14 -0
- package/dist/roles/use-active-role.js +3 -2
- package/dist/shell/assets/app-CW3U56yM.js +69 -0
- package/dist/shell/assets/cn-Bi0ZEjD9.js +1 -0
- package/dist/shell/assets/export-worker-ClACk00b.js +2 -0
- package/dist/shell/assets/{index-BuKnJ48y.js → index-B7cIjCuz.js} +2 -2
- package/dist/shell/assets/maplibre-CVG5L9FD.js +814 -0
- package/dist/shell/assets/{markdown-content-CvNiaqsy.js → markdown-content-CtGUP4W6.js} +1 -1
- package/dist/shell/assets/parse-worker-UhbwEjS0.js +5 -0
- package/dist/shell/assets/preload-helper-BX9CcZkY.js +1 -0
- package/dist/shell/assets/{record-map-BmPHHEMK.js → record-map-Cw3_NcUl.js} +1 -1
- package/dist/shell/assets/records-map-D4f3ZeDL.js +1 -0
- package/dist/shell/assets/shared-protobase-ui-CB_i50NP.js +1 -0
- package/dist/shell/index.html +5 -3
- package/dist/shell/protobase.shell.json +1 -1
- package/dist/shell/protobase.sw.js +2 -2
- package/dist/side-panel/messages.js +8 -0
- package/dist/side-panel/side-panel.js +2 -1
- package/dist/toasts/messages.js +8 -0
- package/dist/toasts/toast.js +2 -1
- package/dist/users/app-invitations.js +5 -4
- package/dist/users/create-user-form.js +9 -8
- package/dist/users/messages.js +52 -0
- package/dist/users/use-user-roles.js +2 -1
- package/dist/users/user-list.js +6 -5
- package/dist/users/user-row.js +5 -4
- package/package.json +4 -4
- package/dist/shell/assets/app-BPHSSo4E.js +0 -69
- package/dist/shell/assets/export-worker-Bz57Pf5g.js +0 -2
- package/dist/shell/assets/maplibre-C2VkKdp3.js +0 -814
- package/dist/shell/assets/parse-worker-BtcY0dQw.js +0 -5
- package/dist/shell/assets/records-map-BvUD1Fqc.js +0 -1
- package/dist/shell/assets/shared-protobase-ui-B-pEBDQf.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./cn-Bi0ZEjD9.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";var i=e(t(),1);function a(e,t){this.v=e,this.k=t}function o(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e){if(Array.isArray(e))return e}function c(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function l(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function u(e,t){return s(e)||c(e,t)||d(e,t)||l()}function d(e,t){if(e){if(typeof e==`string`)return o(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function f(e){var t,n;function r(t,n){try{var o=e[t](n),s=o.value,c=s instanceof a;Promise.resolve(c?s.v:s).then(function(n){if(c){var a=t===`return`&&s.k?t:`next`;if(!s.k||n.done)return r(a,n);n=e[a](n).value}i(!!o.done,n)},function(e){r(`throw`,e)})}catch(e){i(2,e)}}function i(e,i){e===2?t.reject(i):t.resolve({value:i,done:e}),(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}f.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},f.prototype.next=function(e){return this._invoke(`next`,e)},f.prototype.throw=function(e){return this._invoke(`throw`,e)},f.prototype.return=function(e){return this._invoke(`return`,e)};var p=Object.entries,m=Object.setPrototypeOf,h=Object.isFrozen,ee=Object.getPrototypeOf,te=Object.getOwnPropertyDescriptor,g=Object.freeze,_=Object.seal,ne=Object.create,re=typeof Reflect<`u`&&Reflect,ie=re.apply,ae=re.construct;g||=function(e){return e},_||=function(e){return e},ie||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},ae||=function(e){return new e(...[...arguments].slice(1))};var v=w(Array.prototype.forEach);Array.prototype.indexOf;var oe=w(Array.prototype.lastIndexOf),se=w(Array.prototype.pop),ce=w(Array.prototype.push),le=w(Array.prototype.slice),ue=w(Array.prototype.splice),de=Array.isArray,fe=we(Set),pe=w(Set.prototype.add),me=w(Set.prototype.has),he=w(String.prototype.toLowerCase),ge=w(String.prototype.toString),_e=w(String.prototype.match),ve=w(String.prototype.replace),ye=w(String.prototype.indexOf),be=w(String.prototype.trim),xe=w(Number.prototype.toString),Se=w(Boolean.prototype.toString),Ce=typeof BigInt>`u`?null:w(BigInt.prototype.toString),y=typeof Symbol>`u`?null:w(Symbol.prototype.toString),b=w(Object.prototype.hasOwnProperty),x=w(Object.prototype.toString),S=w(RegExp.prototype.test),C=we(TypeError);function w(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return ie(e,t,n)}}function we(e){return function(){return ae(e,[...arguments])}}function T(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:he;if(m&&m(e,null),!de(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(h(t)||(t[r]=e),i=e)}e[i]=!0}return e}function E(e){for(let t=0;t<e.length;t++)b(e,t)||(e[t]=null);return e}function D(e){let t=ne(null);for(let r of p(e)){var n=u(r,2);let i=n[0],a=n[1];b(e,i)&&(t[i]=de(a)?E(a):a&&typeof a==`object`&&a.constructor===Object?D(a):a)}return t}function Te(e){switch(typeof e){case`string`:return e;case`number`:return xe(e);case`boolean`:return Se(e);case`bigint`:return Ce?Ce(e):`0`;case`symbol`:return y?y(e):`Symbol()`;case`undefined`:return x(e);case`function`:case`object`:{if(e===null)return x(e);let t=e,n=O(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:x(e)}return x(e)}default:return x(e)}}function O(e,t){for(;e!==null;){let n=te(e,t);if(n){if(n.get)return w(n.get);if(typeof n.value==`function`)return w(n.value)}e=ee(e)}function n(){return null}return n}function Ee(e,t){for(;e!==null;){let n=te(e,t);if(n)return n.get?w(n.get):null;e=ee(e)}return null}function De(e){try{return S(e,``),!0}catch{return!1}}var Oe=g(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),ke=g(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),Ae=g([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),je=g([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),Me=g(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Ne=g([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Pe=g([`#text`]),Fe=g(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),Ie=g(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Le=g(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Re=g([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),ze=_(/{{[\w\W]*|^[\w\W]*}}/g),Be=_(/<%[\w\W]*|^[\w\W]*%>/g),Ve=_(/\${[\w\W]*/g),He=_(/^data-[\-\w.\u00B7-\uFFFF]+$/),Ue=_(/^aria-[\-\w]+$/),We=_(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ge=_(/^(?:\w+script|data):/i),Ke=_(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),qe=_(/^html$/i),Je=_(/^[a-z][.\w]*(-[.\w]+)+$/i),Ye=_(/<[/\w!]/g),Xe=_(/<[/\w]/g),Ze=_(/<\/no(script|embed|frames)/i),Qe=_(/\/>/i),k={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},$e=g(T({},[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`])),et=function(){return typeof window>`u`?null:window},tt=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},nt=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},rt=function(e,t,n,r){return b(e,t)&&de(e[t])?T(r.base?D(r.base):{},e[t],r.transform):n},it=function(e,t,n){let r=b(e,t)?e[t]:void 0;return r&&typeof r==`object`?D(r):n()};function at(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:et(),t=e=>at(e);if(t.version=`3.4.17`,t.removed=[],!e||!e.document||e.document.nodeType!==k.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=O(d,`cloneNode`),m=O(d,`remove`),h=O(d,`removeAttributeNode`),ee=O(d,`nextSibling`),te=O(d,`childNodes`),re=O(d,`parentNode`),ie=O(d,`shadowRoot`),ae=O(d,`attributes`),xe=o&&o.prototype?O(o.prototype,`nodeType`):null,Se=o&&o.prototype?O(o.prototype,`nodeName`):null,Ce=o&&o.prototype?O(o.prototype,`ownerDocument`):null,y=function(e){return xe?xe(e):e.nodeType},x=function(e){return Se?Se(e):e.nodeName},w=Ee(d,`namespaceURI`),we=function(e){return w?w(e):e.namespaceURI};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let E,ot=``,st,ct=!1,lt=0,A=function(){if(lt>0)throw C(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},j=function(e){A(),lt++;try{return E.createHTML(e)}finally{lt--}},M=function(e){A(),lt++;try{return E.createScriptURL(e)}finally{lt--}},ut=function(){return ct||=(st=tt(u,i),!0),st},N=n,dt=N.implementation,ft=N.createNodeIterator,pt=N.createDocumentFragment,mt=N.getElementsByTagName,ht=r.importNode,P=nt();t.isSupported=typeof p==`function`&&typeof re==`function`&&dt&&dt.createHTMLDocument!==void 0;let gt=ze,_t=Be,vt=Ve,yt=He,bt=Ue,xt=Ge,St=Ke,Ct=Je,wt=We,F=null,Tt=T({},[...Oe,...ke,...Ae,...Me,...Pe]),I=null,Et=T({},[...Fe,...Ie,...Le,...Re]),L=Object.seal(ne(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Dt=null,Ot=null,R=Object.seal(ne(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),kt=!0,At=!0,jt=!1,Mt=!0,z=!1,B=!0,V=!1,Nt=!1,Pt=null,Ft=null,It=!1,Lt=!1,Rt=!1,zt=!1,Bt=!0,Vt=!1,Ht=`user-content-`,Ut=!0,Wt=!1,Gt=null,Kt={},qt=null,Jt=T({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Yt=null,Xt=T({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Zt=null,Qt=T({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),$t=`http://www.w3.org/1998/Math/MathML`,en=`http://www.w3.org/2000/svg`,H=`http://www.w3.org/1999/xhtml`,tn=H,nn=!1,rn=null,an=T({},[$t,en,H],ge),on=g([`mi`,`mo`,`mn`,`ms`,`mtext`]),sn=T({},on),cn=g([`annotation-xml`]),ln=T({},cn),un=T({},[`title`,`style`,`font`,`a`,`script`]),dn=null,fn=[`application/xhtml+xml`,`text/html`],U=null,pn=null,mn=n.createElement(`form`),hn=function(e){return e instanceof RegExp||e instanceof Function},gn=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(pn&&pn===e)return;(!e||typeof e!=`object`)&&(e={}),e=D(e),dn=fn.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,U=dn===`application/xhtml+xml`?ge:he,F=rt(e,`ALLOWED_TAGS`,Tt,{transform:U}),I=rt(e,`ALLOWED_ATTR`,Et,{transform:U}),rn=rt(e,`ALLOWED_NAMESPACES`,an,{transform:ge}),Zt=rt(e,`ADD_URI_SAFE_ATTR`,Qt,{transform:U,base:Qt}),Yt=rt(e,`ADD_DATA_URI_TAGS`,Xt,{transform:U,base:Xt}),qt=rt(e,`FORBID_CONTENTS`,Jt,{transform:U}),Dt=rt(e,`FORBID_TAGS`,D({}),{transform:U}),Ot=rt(e,`FORBID_ATTR`,D({}),{transform:U}),Kt=b(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?D(e.USE_PROFILES):e.USE_PROFILES:!1,kt=e.ALLOW_ARIA_ATTR!==!1,At=e.ALLOW_DATA_ATTR!==!1,jt=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Mt=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,z=e.SAFE_FOR_TEMPLATES||!1,B=e.SAFE_FOR_XML!==!1,V=e.WHOLE_DOCUMENT||!1,Lt=e.RETURN_DOM||!1,Rt=e.RETURN_DOM_FRAGMENT||!1,zt=e.RETURN_TRUSTED_TYPE||!1,It=e.FORCE_BODY||!1,Bt=e.SANITIZE_DOM!==!1,Vt=e.SANITIZE_NAMED_PROPS||!1,Ut=e.KEEP_CONTENT!==!1,Wt=e.IN_PLACE||!1,wt=De(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:We,tn=typeof e.NAMESPACE==`string`?e.NAMESPACE:H,sn=it(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>T({},on)),ln=it(e,`HTML_INTEGRATION_POINTS`,()=>T({},cn));let t=it(e,`CUSTOM_ELEMENT_HANDLING`,()=>ne(null));if(L=ne(null),b(t,`tagNameCheck`)&&hn(t.tagNameCheck)&&(L.tagNameCheck=t.tagNameCheck),b(t,`attributeNameCheck`)&&hn(t.attributeNameCheck)&&(L.attributeNameCheck=t.attributeNameCheck),b(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(L.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),_(L),z&&(At=!1),Rt&&(Lt=!0),Kt&&(F=T({},Pe),I=ne(null),Kt.html===!0&&(T(F,Oe),T(I,Fe)),Kt.svg===!0&&(T(F,ke),T(I,Ie),T(I,Re)),Kt.svgFilters===!0&&(T(F,Ae),T(I,Ie),T(I,Re)),Kt.mathMl===!0&&(T(F,Me),T(I,Le),T(I,Re))),R.tagCheck=null,R.attributeCheck=null,b(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?R.tagCheck=e.ADD_TAGS:de(e.ADD_TAGS)&&(F===Tt&&(F=D(F)),T(F,e.ADD_TAGS,U))),b(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?R.attributeCheck=e.ADD_ATTR:de(e.ADD_ATTR)&&(I===Et&&(I=D(I)),T(I,e.ADD_ATTR,U))),b(e,`ADD_FORBID_CONTENTS`)&&de(e.ADD_FORBID_CONTENTS)&&(qt===Jt&&(qt=D(qt)),T(qt,e.ADD_FORBID_CONTENTS,U)),Ut&&(F[`#text`]=!0),V&&T(F,[`html`,`head`,`body`]),F.table&&(T(F,[`tbody`]),delete Dt.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw C(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw C(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=E;E=e.TRUSTED_TYPES_POLICY;try{ot=j(``)}catch(e){throw E=t,e}}else e.TRUSTED_TYPES_POLICY===null?(E=void 0,ot=``):(E===void 0&&(E=ut()),E&&typeof ot==`string`&&(ot=j(``)));g&&g(e),pn=e},_n=T({},[...ke,...Ae,...je]),vn=T({},[...Me,...Ne]),yn=function(e,t,n){return t.namespaceURI===H?e===`svg`:t.namespaceURI===$t?e===`svg`&&(n===`annotation-xml`||sn[n]):!!_n[e]},W=function(e,t,n){return t.namespaceURI===H?e===`math`:t.namespaceURI===en?e===`math`&&ln[n]:!!vn[e]},bn=function(e,t,n){return t.namespaceURI===en&&!ln[n]||t.namespaceURI===$t&&!sn[n]?!1:!vn[e]&&(un[e]||!_n[e])},xn=function(e){let t=we(e),n=he(x(e)),r=re(e),i,a;return r&&y(r)===k.element?(i={namespaceURI:we(r)},a=he(x(r))):(i={namespaceURI:tn},a=`template`),rn[t]?t===en?yn(n,i,a):t===$t?W(n,i,a):t===H?bn(n,i,a):!!(dn===`application/xhtml+xml`&&rn[t]):!1},G=function(e){ce(t.removed,{element:e});try{re(e).removeChild(e)}catch{if(m(e),!re(e))throw C(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},K=function(e,t,n){try{h(e,t)}catch{try{e.removeAttribute(n)}catch{}}},Sn=function(e){Tn(e);let t=te(e);t&&v(le(t),e=>{try{m(e)}catch{}});let n=y(e)===k.element?ae(e):null;if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&K(e,r,i)}},q=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}ce(t.removed,{attribute:r||null,from:n});try{r?h(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(Lt||Rt)try{G(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},Cn=function(e){let t=ae(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||I[U(i)]||K(e,r,i)}},wn=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=[e];for(;r.length>0;){let e=r.pop();if(t(e)===!1)continue;if(n&&y(e)===k.element){let t=ie(e);Q(t)&&r.push(t)}let i=te(e);if(i)for(let e=i.length-1;e>=0;--e)r.push(i[e])}},Tn=function(e){wn(e,e=>{y(e)===k.element&&Cn(e)})},En=function(e){let t=[];return wn(e,e=>{t.push(e)},!0),t},Dn=function(e,t){let n=fe();v(En(e),e=>{y(e)===k.element&&pe(n,e)}),v(t,e=>{y(e)===k.element&&!me(n,e)&&Cn(e)})},On=function(e,n){let r=!1;return v(t.removed,t=>{t.element&&(r||=t.element===e,Tn(t.element))}),Dn(e,n),r},J=function(e,t){let n=Gt,r=null,i=()=>(r||(r=fe(),v(t,e=>{pe(r,e)})),r);for(let t=0;;t++){let r=En(e),a=[e],o=!1;if(v(r,e=>{y(e)===k.documentFragment?ce(a,e):!o&&!me(n,e)&&(o=me(i(),e))}),!o)return;if(t>=8)throw C(`the tree kept changing during in-place sanitization; refusing to return it`);v(a,(t,n)=>{kn(t,n>0,e,i())})}},kn=function(e,t,n,r){let i=Nn(e),a;for(;a=i.nextNode();)me(r,a)&&!me(Gt,a)&&(t&&$(P.uponSanitizeShadowNode,a,null),Hn(a,n),Yn(a,n),Q(a.content)&&Xn(a.content))},An=function(e){Gt&&pe(Gt,e)},Y=function(e,t){return B?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},jn=function(e){B&&wn(e,e=>{let t=y(e);if(t===k.processingInstruction||t===k.comment&&S(Xe,e.data)){try{m(e)}catch{}return!1}if(t===k.element){let t=e,n=U(x(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&Y(`for`,n)&&t.removeAttribute(`for`)}catch{}}return!0})},Mn=function(e){let t=null,r=null;if(It)e=`<remove></remove>`+e;else{let t=_e(e,/^[\r\n\t ]+/);r=t&&t[0]}dn===`application/xhtml+xml`&&tn===H&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=E?j(e):e;if(tn===H)try{t=new l().parseFromString(i,dn)}catch{}if(!t||!t.documentElement){t=dt.createDocument(tn,`template`,null);try{t.documentElement.innerHTML=nn?ot:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),tn===H?mt.call(t,V?`html`:`body`)[0]:V?t.documentElement:a},Nn=function(e){let t=Ce?Ce(e):e.ownerDocument;return ft.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},X=function(e){return e=ve(e,gt,` `),e=ve(e,_t,` `),e=ve(e,vt,` `),e},Z=function(e){Pn(e);let t=e.querySelectorAll?.call(e,`template`);t&&v(t,e=>{Q(e.content)&&Z(e.content)})},Pn=function(e){e.normalize();let t=Ce?Ce(e):e.ownerDocument,n=ft.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=X(r.data),r=n.nextNode()},Fn=function(e){let t=Se?Se(e):null;return typeof t!=`string`||U(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==ae(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==xe(e)||e.childNodes!==te(e)},Q=function(e){if(!xe||typeof e!=`object`||!e)return!1;try{return xe(e)===k.documentFragment}catch{return!1}},In=function(e){if(!xe||typeof e!=`object`||!e)return!1;try{return typeof xe(e)==`number`}catch{return!1}};function $(e,n,r){e.length!==0&&v(e,e=>{e.call(t,n,r,pn)})}let Ln=function(e,t){return!!(B&&e.hasChildNodes()&&!In(e.firstElementChild)&&S(Ye,e.textContent)&&S(Ye,e.innerHTML)||B&&$e[t]&&y(e)===k.element&&we(e)===H&&(In(e.firstElementChild)||typeof e.textContent==`string`&&S(Ye,e.textContent))||e.nodeType===k.processingInstruction||B&&e.nodeType===k.comment&&S(Xe,e.data))},Rn=function(e,t){return e instanceof RegExp?S(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},zn=function(e,t,n){if(!Dt[t]&&Gn(t)&&Rn(L.tagNameCheck,t))return!1;if(Ut&&!qt[t]&&!qt[he(t)]){let t=re(e),r=te(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,ee(e))}}}return G(e),!0},Bn=function(e,t,n,r){return e.length===0?t:t===n||t===r?D(t):t},Vn=function(e,t){return e===t||re(e)!==null?!1:(Wt&&Tn(e),!0)},Hn=function(e,n){if(An(e),$(P.beforeSanitizeElements,e,null),Vn(e,n))return!0;if(Fn(e))return G(e),!0;let r=U(x(e));if(F=Bn(P.uponSanitizeElement,F,Tt,Pt),$(P.uponSanitizeElement,e,{tagName:r,allowedTags:F}),Vn(e,n))return!0;if(Ln(e,r))return G(e),!0;if(Dt[r]||!(R.tagCheck instanceof Function&&R.tagCheck(r))&&!F[r]){let t=zn(e,r,n);return t===!1&&($(P.afterSanitizeElements,e,null),Vn(e,n))?!0:t}if(y(e)===k.element&&!xn(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&S(Ze,e.innerHTML))return G(e),!0;if(z&&e.nodeType===k.text){let n=X(e.textContent);e.textContent!==n&&(ce(t.removed,{element:e.cloneNode()}),e.textContent=n)}return $(P.afterSanitizeElements,e,null),Vn(e,n)},Un=function(e,t,r){if(Ot[t]||Y(t,e)||Bt&&(t===`id`||t===`name`)&&(r in n||r in mn))return!1;let i=I[t]||R.attributeCheck instanceof Function&&R.attributeCheck(t,e);return At&&S(yt,t)||kt&&S(bt,t)?!0:i?Zt[t]||S(wt,ve(r,St,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&ye(r,`data:`)===0&&Yt[e]||jt&&!S(xt,ve(r,St,``))?!0:!r:Gn(e)&&Rn(L.tagNameCheck,e)&&Rn(L.attributeNameCheck,t,e)||t===`is`&&L.allowCustomizedBuiltInElements&&Rn(L.tagNameCheck,r)},Wn=T({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Gn=function(e){return!Wn[he(e)]&&S(Ct,e)},Kn=function(e,t,n,r){if(E&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return j(r);case`TrustedScriptURL`:return M(r)}return r},qn=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Fn(e)||(G(e),!1)}catch{return q(t,e),!1}},Jn=function(e,t){return B&&S(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,t)?!0:he(e)===`attributename`&&_e(t,`href`)!==null},Yn=function(e,n){if($(P.beforeSanitizeAttributes,e,null),Vn(e,n))return;let r=e.attributes;if(!r||Fn(e))return;I=Bn(P.uponSanitizeAttribute,I,Et,Ft);let i={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:I,forceKeepAttr:void 0},a=r.length,o=U(e.nodeName);for(;a--;){let n=r[a],s=n.name,c=n.namespaceURI,l=n.value,u=U(s),d=l,f=s===`value`?d:be(d),p=!1;if(i.attrName=u,i.attrValue=f,i.keepAttr=!0,i.forceKeepAttr=void 0,$(P.uponSanitizeAttribute,e,i),f=i.attrValue,Vt&&(u===`id`||u===`name`)&&ye(f,Ht)!==0&&(q(s,e,n),f=Ht+f,p=!0),Jn(s,f)){q(s,e,n);continue}if(!i.forceKeepAttr){if(!i.keepAttr){q(s,e,n);continue}if(!Mt&&S(Qe,f)){q(s,e,n);continue}if(z&&(f=X(f)),!Un(o,u,f)){q(s,e,n);continue}f=Kn(o,u,c,f),f!==d&&qn(e,s,c,f)&&p&&se(t.removed)}}$(P.afterSanitizeAttributes,e,null),Vn(e,n)},Xn=function(e){let t=null,n=Nn(e);for($(P.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if($(P.uponSanitizeShadowNode,t,null),Hn(t,e),Yn(t,e),Q(t.content)&&Xn(t.content),y(t)===k.element){let e=ie(t);Q(e)&&(Zn(e),Xn(e))}z&&Pn(e),$(P.afterSanitizeShadowDOM,e,null)},Zn=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Xn(e.shadow);continue}let n=e.node,r=y(n)===k.element,i=te(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=Se?Se(n):null;if(typeof e==`string`&&U(e)===`template`){let e=n.content;Q(e)&&t.push({node:e,shadow:null})}}if(r){let e=ie(n);Q(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(nn=!e,nn&&(e=`<!-->`),typeof e!=`string`&&!In(e)&&(e=Te(e),typeof e!=`string`))throw C(`dirty is not a string, aborting`);if(!t.isSupported)return e;Nt?(F=Pt,I=Ft):gn(n),(P.uponSanitizeElement.length>0||P.uponSanitizeAttribute.length>0)&&(F=D(F)),P.uponSanitizeAttribute.length>0&&(I=D(I)),t.removed=[];let c=Wt&&typeof e!=`string`&&In(e),l=[],u=Gt;if(c){jn(e);let t=x(e);if(typeof t==`string`){let n=U(t);if(!F[n]||Dt[n])throw Sn(e),C(`root node is forbidden and cannot be sanitized in-place`)}if(Fn(e))throw Sn(e),C(`root node is clobbered and cannot be sanitized in-place`);l=En(e),Gt=fe()}else if(In(e))i=Mn(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===k.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Zn(i);else{if(!Lt&&!z&&!V&&e.indexOf(`<`)===-1)return E&&zt?j(e):e;if(i=Mn(e),!i)return Lt?null:zt?ot:``}i&&It&&G(i.firstChild);let d=c?e:i;try{c&&Zn(e);let t=Nn(d);for(;o=t.nextNode();)Hn(o,d),Yn(o,d),Q(o.content)&&Xn(o.content);c&&J(e,l)}catch(t){throw c&&(Sn(e),On(e,l)),t}finally{Gt=u}if(c){if(On(e,l))throw C(`a node selected for removal could not be safely returned; refusing to sanitize in place`);return z&&Z(e),e}if(Lt){if(z&&Z(i),Rt)for(s=pt.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(I.shadowroot||I.shadowrootmode)&&(s=ht.call(r,s,!0)),s}let f=V?i.outerHTML:i.innerHTML;return V&&F[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&S(qe,i.ownerDocument.doctype.name)&&(f=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
3
3
|
`+f),z&&(f=X(f)),E&&zt?j(f):f},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gn(e),Nt=!0,Pt=F,Ft=I},t.clearConfig=function(){pn=null,Nt=!1,Pt=null,Ft=null,E=st,ot=``},t.isValidAttribute=function(e,t,n){pn||gn({});let r=U(e),i=U(t);return typeof n==`string`&&(Jn(t,n)||!Mt&&S(Qe,n))?!1:Un(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&b(P,e)&&ce(P[e],t)},t.removeHook=function(e,t){if(b(P,e)){if(t!==void 0){let n=oe(P[e],t);return n===-1?void 0:ue(P[e],n,1)[0]}return se(P[e])}},t.removeHooks=function(e){b(P,e)&&(P[e]=[])},t.removeAllHooks=function(){P=nt()},t}var ot=at();function st(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ct=st();function lt(e){ct=e}var A={exec:()=>null};function j(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function M(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(N.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var ut=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),N={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/,numericCharacterReferenceOrAmpersand:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:j(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:j(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:j(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:j(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:j(e=>RegExp(`^ {0,${e}}(?:</?(?:${wt})(?: +|$|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`,`i`)),blockquoteBeginRegex:j(e=>RegExp(`^ {0,${e}}>`))},dt=/^(?:[ \t]*(?:\n|$))+/,ft=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,pt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,mt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ht=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,P=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,gt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_t=M(gt).replace(/bull/g,P).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),vt=M(gt).replace(/bull/g,P).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),yt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,bt=/^[^\n]+/,xt=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,St=M(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,xt).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ct=M(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,P).getRegex(),wt=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,F=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Tt=M(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!(?:script|pre|style|textarea)(?![a-z0-9-]))([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,F).replace(`tag`,wt).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),I=e=>M(yt).replace(`hr`,mt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,` {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`).replace(`tag`,wt).getRegex(),Et=I(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),L=I(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),Dt={blockquote:M(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,L).getRegex(),code:ft,def:St,fences:pt,heading:ht,hr:mt,html:Tt,lheading:_t,list:Ct,newline:dt,paragraph:Et,table:A,text:bt},Ot=M(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,mt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,` {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`).replace(`tag`,wt).getRegex(),R={...Dt,lheading:vt,table:Ot,paragraph:M(yt).replace(`hr`,mt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Ot).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,` {0,3}(?:</?(?:tag)(?: +|\\n|/?>)|<(?:(?:script|pre|style|textarea)(?:[\\s>]|$)|!--)|<\\?|<![A-Za-z]|<!\\[CDATA\\[)`).replace(`tag`,wt).getRegex()},kt={...Dt,html:M(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,F).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:A,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:M(yt).replace(`hr`,mt).replace(`heading`,` *#{1,6} *[^
|
|
4
4
|
]`).replace(`lheading`,_t).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},At=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,jt=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Mt=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,z=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,B=/[\p{P}\p{S}]/u,V=/[\s\p{P}\p{S}]/u,Nt=/[^\s\p{P}\p{S}]/u,Pt=M(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,V).getRegex(),Ft=/[\p{Pi}\p{Ps}"']/u,It=/(?!~)[\p{P}\p{S}]/u,Lt=/(?!~)[\s\p{P}\p{S}]/u,Rt=/(?:[^\s\p{P}\p{S}]|~)/u,zt=M(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,ut?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Bt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Vt=M(Bt,`u`).replace(/punct/g,B).getRegex(),Ht=M(Bt,`u`).replace(/punct/g,It).getRegex(),Ut=M(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,Ft).replace(/punct/g,B).getRegex(),Wt=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Gt=M(Wt,`gu`).replace(/notPunctSpace/g,Nt).replace(/punctSpace/g,V).replace(/punct/g,B).getRegex(),Kt=M(Wt,`gu`).replace(/notPunctSpace/g,Rt).replace(/punctSpace/g,Lt).replace(/punct/g,It).getRegex(),qt=M(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Nt).replace(/punctSpace/g,V).replace(/punct/g,B).getRegex(),Jt=M(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Nt).replace(/punctSpace/g,V).replace(/punct/g,B).getRegex(),Yt=M(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Nt).replace(/punctSpace/g,V).replace(/punct/g,B).getRegex(),Xt=M(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,B).getRegex(),Zt=M(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Nt).replace(/punctSpace/g,V).replace(/punct/g,B).getRegex(),Qt=M(/\\(punct)/,`gu`).replace(/punct/g,B).getRegex(),$t=M(/(`+)(?:[^`]|[^`][\s\S]*?[^`])\1(?!`)|`+|\\(punct)/,`gu`).replace(/punct/g,B).getRegex(),en=M(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),H=M(F).replace(`(?:-->|$)`,`-->`).getRegex(),tn=M(`^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,H).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),nn=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,rn=M(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,nn).getRegex(),an=M(/^!?\[(label)\]\([ \t\n]*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?[ \t\n]*\)/).replace(`label`,rn).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),on=M(/^!?\[(label)\]\[(ref)\]/).replace(`label`,rn).replace(`ref`,xt).getRegex(),sn=M(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,xt).getRegex(),cn=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,ln=M(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace(`brackets`,nn).getRegex(),un=M(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,M(/^!?\[(label)\]\[(ref)\]/).replace(`label`,ln).replace(`ref`,cn).getRegex()).replace(`nolink`,M(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,cn).getRegex()).getRegex(),dn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,fn=M(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),U={_backpedal:A,anyPunctuation:Qt,anyPunctuationOutsideCode:$t,autolink:en,blockSkip:zt,br:Mt,code:jt,del:A,delLDelim:A,delRDelim:A,emStrongLDelim:Vt,emStrongRDelimAst:Gt,emStrongRDelimUnd:Jt,escape:At,link:an,nolink:sn,punctuation:Pt,reflink:on,reflinkSearch:un,tag:tn,text:z,url:A},pn={...U,emStrongLDelim:Ut,emStrongRDelimAst:qt,emStrongRDelimUnd:Yt,link:M(/^!?\[(label)\]\((.*?)\)/).replace(`label`,rn).getRegex(),reflink:M(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,rn).getRegex()},mn={...U,emStrongRDelimAst:Kt,emStrongLDelim:Ht,delLDelim:Xt,delRDelim:Zt,url:M(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`emailProtocol`,fn).replace(`protocol`,dn).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:M(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace(`protocol`,dn).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},hn={...mn,br:M(Mt).replace(`{2,}`,`*`).getRegex(),text:M(mn.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},gn={normal:Dt,gfm:R,pedantic:kt},_n={normal:U,gfm:mn,breaks:hn,pedantic:pn},vn={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},yn=e=>vn[e];function W(e,t){if(t){if(N.escapeTest.test(e))return e.replace(N.escapeReplace,yn)}else if(N.escapeTestNoEncode.test(e))return e.replace(N.escapeReplaceNoEncode,yn);return e}function bn(e){return N.numericCharacterReference.test(e)?e.replace(N.numericCharacterReferenceOrAmpersand,(e,t,n)=>{if(t===void 0&&n===void 0)return`&`;let r=t===void 0?Number.parseInt(n,16):Number.parseInt(t,10);return r===0||r>1114111||r>=55296&&r<=57343?`�`:r===38?`&`:String.fromCodePoint(r)}):e}function xn(e){try{e=encodeURI(e).replace(N.percentDecode,`%`)}catch{return null}return e}function G(e,t){let n=e.replace(N.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(N.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(N.slashPipe,`|`);return n}function K(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function Sn(e){let t=e.split(`
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(function(){let e=`en`,t=()=>e,n=t=>{e=t},r=[`,`,`;`,` `],i=e=>{let t=new Map(r.map(e=>[e,0])),n=!1;for(let r of e)r===`"`?n=!n:!n&&t.has(r)&&t.set(r,t.get(r)+1);return[...t].reduce((e,t)=>t[1]>e[1]?t:e,[`,`,0])[0]},a=e=>{let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r===`"`)t=!t;else if(!t&&(r===`
|
|
2
|
+
`||r===`\r`))return e.slice(0,n)}},o=e=>{let t=e,n=``,r=!1,o=``,s=[],c=!1,l=!1,u=!1,d=!1,f=()=>{s.push(o),o=``},p=e=>{f(),e.push(s),s=[],d=!1},m=e=>{let n=[];for(let r of e)if(!(u&&(u=!1,r===`
|
|
3
|
+
`))){if(c){if(l){if(l=!1,r===`"`){o+=`"`;continue}c=!1}else if(r===`"`){l=!0;continue}else{o+=r;continue}}r===`"`&&o===``?(c=!0,d=!0):r===t?(f(),d=!0):r===`
|
|
4
|
+
`||r===`\r`?(u=r===`\r`,p(n)):(o+=r,d=!0)}return n},h=e=>{if(r)return m(e);n+=e,n.charCodeAt(0)===65279&&(n=n.slice(1));let o=a(n);if(o===void 0)return[];r=!0,t??=i(o);let s=n;return n=``,m(s)};return{push:h,end:()=>{let e=r?[]:h(`
|
|
5
|
+
`);return l&&(l=!1,c=!1),(d||o!==``)&&p(e),e},delimiter:()=>t}},s=(e=>(n,...r)=>{let i=e[t()][n];return typeof i==`function`?i(...r):i})({en:{import:`Import`,importPlural:e=>`Import ${e.toLowerCase()}`,couldNotReadFile:`Could not read the file`,couldNotCheck:`Could not check the rows`,cancel:`Cancel`,next:`Next`,checkRows:`Check rows`,back:`Back`,checking:`Checking`,importRows:(e,t)=>`Import ${e} ${t===1?`row`:`rows`}`,cancelImport:`Cancel import`,done:`Done`,file:`File`,fileHint:`An Excel workbook (.xlsx) or a CSV file saved as UTF-8. Its first row names the columns.`,reading:e=>`Reading ${e}…`,theFile:`the file`,sheet:`Sheet`,create:`Create`,update:`Update`,upsert:`Create or update`,createHint:`Each row creates a record.`,updateHint:`Each row updates the record its value finds; a row that finds none is not imported.`,upsertHint:`Each row updates the record its value finds, or creates one when it finds none.`,doNotImport:`Do not import`,rows:`Rows`,whatEachRowDoes:`What each row does`,findBy:`Find records by`,chooseField:`Choose a field`,findByHint:`A field no two records share, such as the key or an email.`,foundInColumn:`Found in column`,chooseColumn:`Choose a column`,numbers:`Numbers`,dates:`Dates`,dayFirst:`Day first (31/12/2026)`,monthFirst:`Month first (12/31/2026)`,datesHint:`Dates written as 2026-12-31 read the same either way. Times without a zone are your own time.`,requiredMarked:`New records need the fields marked *.`,columns:`Columns`,emptyInFirstRows:`Empty in the first rows`,field:`Field`,fieldFor:e=>`Field for ${e}`,foundBy:`Found by`,pluralFoundBy:e=>`${e} found by`,noColumnFills:e=>`No column fills ${e}, which new records need.`,rowsNotImported:`Rows not imported`,rowProblems:e=>`Row ${e}:`,andMore:e=>`And ${e} more rows, all in the file.`,checkingRows:e=>`Checking rows… ${e} read`,check:`Check`,toCreate:`To create`,toUpdate:`To update`,withProblems:`With problems`,firstRows:`First rows`,row:`Row`,problemRows:`Rows with problems, which are skipped`,download:`Download`,batches:e=>`Rows are saved in batches of ${e}. Cancelling, or an error, keeps the batches already saved; a row the server refuses is listed and the others are saved.`,stopping:`Stopping after this batch…`,saving:`Saving rows…`,rowsSaved:`Rows saved`,stopped:`The import stopped. The rows counted below were saved.`,cancelled:`Cancelled. The rows counted below were saved.`,summary:`Import summary`,created:`Created`,updated:`Updated`,skipped:`Skipped`,failed:`Failed`,notWrittenHint:`Skipped rows had problems in the file; the server refused the failed ones. The file holds each with the reason, to fix and import again.`,notImportedFile:e=>`${e} - not imported.csv`,line:`Line`,problems:`Problems`,notNumber:e=>`${e} is not a number`,notWholeNumber:e=>`${e} is not a whole number`,tooLarge:e=>`${e} is too large`,notBoolean:e=>`${e} is not true or false (true, false, yes, no, 1 or 0)`,notDate:(e,t)=>`${e} is not a date (2026-04-03 or ${t?`day/month/year`:`month/day/year`})`,hasTime:e=>`${e} has a time of day; the field holds a date`,severalValues:(e,t)=>`${e} matches more than one value: ${t}`,notOneOf:(e,t)=>`${e} is not one of ${t}`,notText:e=>`${e} is true or false, not text`,emptyRequired:`is empty, and it is required`,noneHas:(e,t)=>`no ${e.toLowerCase()} has ${t}`,severalHave:(e,t,n)=>`${e} ${t.toLowerCase()} have ${n}`,notOneRecord:e=>`Not one record: ${e}`,nothingToUpdate:e=>`Nothing to update: ${e}`,fileNotUtf8:`The file is not UTF-8 text. Save it as "CSV UTF-8" and choose it again.`,noSheets:`The workbook has no sheets`,missingSheetPart:`The workbook names a sheet it does not hold`,notZip:`The file is not an Excel workbook (.xlsx): it is no ZIP archive`,zip64:`The workbook is too large to read: it is a ZIP64 archive`,compression:(e,t)=>`The workbook's part ${e} is compressed in a way that cannot be read (method ${t})`,notWorkbook:e=>`The file is not an Excel workbook (.xlsx): it has no ${e}`,noSheetCalled:e=>`The workbook has no sheet called ${e}`,unreadable:`The file could not be read`,column:e=>`Column ${e}`},nl:{import:`Importeren`,importPlural:e=>`${e} importeren`,couldNotReadFile:`Kon het bestand niet lezen`,couldNotCheck:`Kon de rijen niet controleren`,cancel:`Annuleren`,next:`Volgende`,checkRows:`Rijen controleren`,back:`Terug`,checking:`Controleren`,importRows:(e,t)=>`${e} ${t===1?`rij`:`rijen`} importeren`,cancelImport:`Import annuleren`,done:`Klaar`,file:`Bestand`,fileHint:`Een Excel-werkmap (.xlsx) of een CSV-bestand bewaard als UTF-8. De eerste rij noemt de kolommen.`,reading:e=>`${e} lezen…`,theFile:`het bestand`,sheet:`Werkblad`,create:`Maken`,update:`Bijwerken`,upsert:`Maken of bijwerken`,createHint:`Elke rij maakt een record.`,updateHint:`Elke rij werkt het record bij dat haar waarde vindt; een rij die er geen vindt, wordt niet geïmporteerd.`,upsertHint:`Elke rij werkt het record bij dat haar waarde vindt, of maakt er een als ze er geen vindt.`,doNotImport:`Niet importeren`,rows:`Rijen`,whatEachRowDoes:`Wat elke rij doet`,findBy:`Records vinden op`,chooseField:`Kies een veld`,findByHint:`Een veld dat geen twee records delen, zoals de sleutel of een e-mailadres.`,foundInColumn:`Gevonden in kolom`,chooseColumn:`Kies een kolom`,numbers:`Getallen`,dates:`Datums`,dayFirst:`Dag eerst (31/12/2026)`,monthFirst:`Maand eerst (12/31/2026)`,datesHint:`Datums geschreven als 2026-12-31 lezen hoe dan ook hetzelfde. Tijden zonder zone zijn in je eigen tijd.`,requiredMarked:`Nieuwe records hebben de velden met * nodig.`,columns:`Kolommen`,emptyInFirstRows:`Leeg in de eerste rijen`,field:`Veld`,fieldFor:e=>`Veld voor ${e}`,foundBy:`Gevonden op`,pluralFoundBy:e=>`${e} gevonden op`,noColumnFills:e=>`Geen kolom vult ${e}, wat nieuwe records nodig hebben.`,rowsNotImported:`Niet geïmporteerde rijen`,rowProblems:e=>`Rij ${e}:`,andMore:e=>`En nog ${e} rijen, allemaal in het bestand.`,checkingRows:e=>`Rijen controleren… ${e} gelezen`,check:`Controle`,toCreate:`Te maken`,toUpdate:`Bij te werken`,withProblems:`Met problemen`,firstRows:`Eerste rijen`,row:`Rij`,problemRows:`Rijen met problemen, die worden overgeslagen`,download:`Downloaden`,batches:e=>`Rijen worden bewaard in groepen van ${e}. Annuleren, of een fout, houdt de groepen die al bewaard zijn; een rij die de server weigert, wordt vermeld en de andere worden bewaard.`,stopping:`Stoppen na deze groep…`,saving:`Rijen bewaren…`,rowsSaved:`Bewaarde rijen`,stopped:`De import is gestopt. De rijen die hieronder zijn geteld, zijn bewaard.`,cancelled:`Geannuleerd. De rijen die hieronder zijn geteld, zijn bewaard.`,summary:`Samenvatting van de import`,created:`Gemaakt`,updated:`Bijgewerkt`,skipped:`Overgeslagen`,failed:`Mislukt`,notWrittenHint:`Overgeslagen rijen hadden problemen in het bestand; de mislukte weigerde de server. Het bestand bevat elke rij met de reden, om te verbeteren en opnieuw te importeren.`,notImportedFile:e=>`${e} - niet geïmporteerd.csv`,line:`Regel`,problems:`Problemen`,notNumber:e=>`${e} is geen getal`,notWholeNumber:e=>`${e} is geen geheel getal`,tooLarge:e=>`${e} is te groot`,notBoolean:e=>`${e} is niet waar of onwaar (true, false, yes, no, 1 of 0)`,notDate:(e,t)=>`${e} is geen datum (2026-04-03 of ${t?`dag/maand/jaar`:`maand/dag/jaar`})`,hasTime:e=>`${e} heeft een tijd van de dag; het veld bevat een datum`,severalValues:(e,t)=>`${e} past bij meer dan één waarde: ${t}`,notOneOf:(e,t)=>`${e} is niet een van ${t}`,notText:e=>`${e} is waar of onwaar, geen tekst`,emptyRequired:`is leeg, en is verplicht`,noneHas:(e,t)=>`geen ${e.toLowerCase()} heeft ${t}`,severalHave:(e,t,n)=>`${e} ${t.toLowerCase()} hebben ${n}`,notOneRecord:e=>`Niet één record: ${e}`,nothingToUpdate:e=>`Niets om bij te werken: ${e}`,fileNotUtf8:`Het bestand is geen UTF-8-tekst. Bewaar het als "CSV UTF-8" en kies het opnieuw.`,noSheets:`De werkmap heeft geen werkbladen`,missingSheetPart:`De werkmap noemt een werkblad dat er niet in zit`,notZip:`Het bestand is geen Excel-werkmap (.xlsx): het is geen ZIP-archief`,zip64:`De werkmap is te groot om te lezen: het is een ZIP64-archief`,compression:(e,t)=>`Het deel ${e} van de werkmap is gecomprimeerd op een manier die niet kan worden gelezen (methode ${t})`,notWorkbook:e=>`Het bestand is geen Excel-werkmap (.xlsx): het heeft geen ${e}`,noSheetCalled:e=>`De werkmap heeft geen werkblad met de naam ${e}`,unreadable:`Het bestand kon niet worden gelezen`,column:e=>`Kolom ${e}`}}),c={amp:`&`,lt:`<`,gt:`>`,quot:`"`,apos:`'`},l=e=>e.replace(/&(#x[0-9a-f]+|#\d+|amp|lt|gt|quot|apos);/gi,(e,t)=>t[0]===`#`?String.fromCodePoint(t[1]===`x`||t[1]===`X`?parseInt(t.slice(2),16):Number(t.slice(1))):c[t.toLowerCase()]??e),u=e=>{let t={};for(let n of e.matchAll(/([\w:.-]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g)){let e=n[1].slice(n[1].indexOf(`:`)+1);t[e]=l(n[2]??n[3]??``)}return t},d=e=>e.replace(/<rPh\b[\s\S]*?<\/rPh>/g,``).match(/<t\b[^>]*>[\s\S]*?<\/t>/g)?.map(e=>l(e.replace(/^<t\b[^>]*>|<\/t>$/g,``))).join(``)??``,f=e=>[...e.matchAll(/<si\b[^>]*?(?:\/>|>([\s\S]*?)<\/si>)/g)].map(e=>d(e[1]??``)),p=(e,t)=>{let n=new Map([...t.matchAll(/<Relationship\b([^>]*)>/g)].map(e=>{let{Id:t,Target:n}=u(e[1]);return[t,n.startsWith(`/`)?n.slice(1):`xl/${n}`]})),r=[...e.matchAll(/<sheet\b([^>]*)>/g)].map(e=>{let{name:t,id:r}=u(e[1]),i=n.get(r);if(!t||!i)throw Error(s(`missingSheetPart`));return{name:t,path:i}}),i=/<workbookPr\b([^>]*)>/.exec(e);return{sheets:r,date1904:i?[`1`,`true`].includes(u(i[1]).date1904??``):!1}},m=/* @__PURE__ */ new Set([14,15,16,17,18,19,20,21,22,27,28,29,30,31,32,33,34,35,36,45,46,47,50,51,52,53,54,55,56,57,58]),h=e=>/[dmyhs]/i.test(e.replace(/"[^"]*"|\[[^\]]*\]|\\.|_.|\*./g,``)),g=e=>{let t=new Map([...e.matchAll(/<numFmt\b([^>]*)>/g)].map(e=>{let{numFmtId:t,formatCode:n}=u(e[1]);return[Number(t),n??``]})),n=/<cellXfs\b[^>]*>([\s\S]*?)<\/cellXfs>/.exec(e)?.[1]??``,r=/* @__PURE__ */ new Set;return[...n.matchAll(/<xf\b([^>]*)>/g)].forEach((e,n)=>{let i=Number(u(e[1]).numFmtId??0);(m.has(i)||t.has(i)&&h(t.get(i)))&&r.add(n)}),r},_=e=>String(e).padStart(2,`0`),v=(e,t=!1)=>{let n=t?e+1462:e<60?e+1:e,r=new Date(Date.UTC(1899,11,30)+Math.round(n*86400)*1e3),i=`${r.getUTCFullYear()}-${_(r.getUTCMonth()+1)}-${_(r.getUTCDate())}`;return r.getUTCHours()*3600+r.getUTCMinutes()*60+r.getUTCSeconds()===0?i:`${i}T${_(r.getUTCHours())}:${_(r.getUTCMinutes())}:${_(r.getUTCSeconds())}`},y=e=>{let t=0;for(let n of e.toUpperCase()){let e=n.charCodeAt(0);if(e<65||e>90)break;t=t*26+(e-64)}return t-1},b=(e,t,n)=>{let r=e.t??`n`;if(r===`inlineStr`)return d(t);let i=/<v\b[^>]*>([\s\S]*?)<\/v>/.exec(t)?.[1];if(i===void 0)return null;let a=l(i);if(r===`s`)return n.strings[Number(a)]??null;if(r===`b`)return a===`1`;if(r===`str`||r===`e`)return a;if(r===`d`)return{date:a.replace(/Z$/,``)};let o=Number(a);return n.dates.has(Number(e.s??0))?{date:v(o,n.date1904)}:o},x=(e,t,n)=>{let r=/^<row\b([^>]*)>/.exec(e),i=Number(u(r?.[1]??``).r??n+1),a=[];for(let n of e.matchAll(/<c\b([^>]*?)(?:\/>|>([\s\S]*?)<\/c>)/g)){let e=u(n[1]),r=e.r?y(e.r):a.length;for(;a.length<r;)a.push(null);a[r]=b(e,n[2]??``,t)}return{line:i,cells:a}},S=()=>{let e=``;return t=>{e+=t;let n=[],r=0;for(let t of e.matchAll(/<row\b[^>]*?(?:\/>|>[\s\S]*?<\/row>)/g))n.push(t[0]),r=t.index+t[0].length;return e=e.slice(r),n}},C=async(e,t,n)=>new DataView(await e.slice(t,n).arrayBuffer()),w=()=>Error(s(`notZip`)),T=e=>{for(let t=e.byteLength-22;t>=0;t--)if(e.getUint32(t,!0)===101010256)return t;return-1},E=async e=>{let t=Math.max(0,e.size-65557),n=await C(e,t,e.size),r=T(n);if(r<0)throw w();let i=n.getUint16(r+10,!0),a=n.getUint32(r+12,!0),o=n.getUint32(r+16,!0);if(i===65535||a===4294967295||o===4294967295)throw Error(s(`zip64`));let c=await C(e,o,o+a),l=new TextDecoder,u=/* @__PURE__ */ new Map,d=0;for(let e=0;e<i;e++){if(c.getUint32(d,!0)!==33639248)throw w();let e=c.getUint16(d+28,!0),t=c.getUint16(d+30,!0),n=c.getUint16(d+32,!0),r=l.decode(new Uint8Array(c.buffer,c.byteOffset+d+46,e));u.set(r,{name:r,method:c.getUint16(d+10,!0),size:c.getUint32(d+20,!0),offset:c.getUint32(d+42,!0)}),d+=46+e+t+n}return u},D=async(e,t)=>{let n=await C(e,t.offset,t.offset+30);if(n.getUint32(0,!0)!==67324752)throw w();let r=t.offset+30+n.getUint16(26,!0)+n.getUint16(28,!0),i=e.slice(r,r+t.size).stream();if(t.method===0)return i;if(t.method===8)return i.pipeThrough(new DecompressionStream(`deflate-raw`));throw Error(s(`compression`,t.name,t.method))};async function*O(e,t){let n=(await D(e,t)).pipeThrough(new TextDecoderStream).getReader();try{for(;;){let{done:e,value:t}=await n.read();if(e)return;yield t}}finally{await n.cancel()}}let k=async(e,t)=>{let n=[];for await(let r of O(e,t))n.push(r);return n.join(``)},A=(e,t)=>{let n=e.get(t);if(!n)throw Error(s(`notWorkbook`,t));return n},j=async e=>{let t=await E(e),{sheets:n,date1904:r}=p(await k(e,A(t,`xl/workbook.xml`)),await k(e,A(t,`xl/_rels/workbook.xml.rels`))),i,a=async()=>(i={strings:t.has(`xl/sharedStrings.xml`)?f(await k(e,t.get(`xl/sharedStrings.xml`))):[],dates:t.has(`xl/styles.xml`)?g(await k(e,t.get(`xl/styles.xml`))):/* @__PURE__ */ new Set,date1904:r},i);async function*o(r){let o=n.find(e=>e.name===r);if(!o)throw Error(s(`noSheetCalled`,r));let c=i??await a(),l=S(),u=0;for await(let n of O(e,A(t,o.path)))for(let e of l(n)){let t=x(e,c,u);u=t.line,yield t}}return{sheets:n.map(e=>e.name),rows:o}},M=async e=>{let t=new Uint8Array(await e.slice(0,2).arrayBuffer());return t[0]===80&&t[1]===75},N=async e=>{let t=/\.([^.]+)$/.exec(e.name)?.[1]?.toLowerCase();return t===`xlsx`?`xlsx`:t===`csv`||t===`tsv`||t===`txt`?`csv`:await M(e)?`xlsx`:`csv`},P=async e=>await N(e)===`xlsx`?(await j(e)).sheets:[],F=()=>Error(s(`fileNotUtf8`));async function*I(e){let t=o(),n=new TextDecoder(`utf-8`,{fatal:!0}),r=e=>{try{return e?n.decode(e,{stream:!0}):n.decode()}catch(e){throw e instanceof TypeError?F():e}},i=e.stream().getReader(),a=0,s=e=>e.map(e=>({line:++a,cells:e}));try{for(;;){let{done:e,value:n}=await i.read();if(e)break;yield*s(t.push(r(n)))}yield*s([...t.push(r()),...t.end()])}finally{await i.cancel()}}async function*L(e,t){if(await N(e)===`csv`)return yield*I(e);let n=await j(e),r=t??n.sheets[0];if(r===void 0)throw Error(s(`noSheets`));yield*n.rows(r)}let R=self,z=e=>R.postMessage(e),B,V=async e=>{let t=[];for await(let n of L(e.file,e.sheet)){if(t.push(n),t.length<e.chunk)continue;let r=new Promise(e=>B=e);z({type:`rows`,rows:t}),t=[],await r}z({type:`rows`,rows:t}),z({type:`end`})},H=async e=>{if(e.type===`next`)return B?.();if(n(e.locale),e.type===`sheets`)return z({type:`sheets`,sheets:await P(e.file)});await V(e)};R.onmessage=e=>{H(e.data).catch(e=>z({type:`error`,message:e instanceof Error?e.message:String(e)}))}})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./cn-Bi0ZEjD9.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";var i=[`en`,`nl`],a=e=>i.includes(e),o=e=>e.map(e=>e.split(`-`)[0].toLowerCase()).find(a)??`en`,s=e(t(),1),c=`en`,l,u=()=>l??c,d=e=>{c=e},f=e=>{l=e},p=(e=globalThis.navigator?.languages??[])=>o(e),m={en:`en-GB`,nl:`nl-NL`},h=()=>m[u()],g=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function _(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:g(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var v=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},y=e=>{let t=v(e);return t.charAt(0).toUpperCase()+t.slice(1)},b=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),x={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function S(e){return e!=null}function C(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??x.width,a=e.size??e.height??x.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?b(...c):b(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??x[`stroke-width`])*Number(e.size??e.width??x.width)/Number(t.size??t.width??x.width):t.strokeWidth??x[`stroke-width`];return[`svg`,{...Object.entries(x).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&S(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&S(t.width)&&{[r(`width`)]:t.width},...`height`in t&&S(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function w(e,t={}){return C(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var T=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},E=(0,s.createContext)({}),D=()=>(0,s.useContext)(E),O=(0,s.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:c=``,children:l,iconNode:u=[],icon:d={node:u,aliases:[],size:24},...f},p)=>{let{size:m=24,strokeWidth:h=2,absoluteStrokeWidth:g=!1,nonScalingStroke:_=!1,color:v=`currentColor`,className:y=``}=D()??{},x=!!l||T(f),[S,C,E=[]]=w(d,{color:e??v,width:n??t??m,height:r??t??m,strokeWidth:i??h,absoluteStrokeWidth:a??g,nonScalingStroke:o??_,className:b(y,c),hasA11yProp:x,attributes:f});return(0,s.createElement)(S,{ref:p,...C},[...E.map(([e,t])=>(0,s.createElement)(e,t)),...Array.isArray(l)?l:[l]])});function k(e,t=[],n=[]){let r=typeof e==`string`?_(e,t,n):e,i=(0,s.forwardRef)(({className:e,...t},n)=>(0,s.createElement)(O,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=y(r.name)),i}var A=e=>(t,...n)=>{let r=e[u()][t];return typeof r==`function`?r(...n):r},j=e(r(),1),M={sm:{group:`h-7`,option:`px-2.5 text-xs`},md:{group:`h-8`,option:`px-3 text-body`}},N={group:(e=`sm`)=>n(`inline-flex`,M[e].group,`rounded-md bg-muted p-0.5`),option:(e,t=`sm`)=>n(`inline-flex items-center gap-1.5 rounded`,M[t].option,`font-medium transition-colors`,e?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`)},P=({value:e,options:t,onChange:n,label:r,size:i=`sm`,iconOnly:a=!1})=>(0,j.jsx)(`span`,{role:`group`,"aria-label":r,className:N.group(i),children:t.map(t=>(0,j.jsxs)(`button`,{type:`button`,"aria-pressed":t.value===e,...a&&{"aria-label":t.label,title:t.label},onClick:()=>n(t.value),className:N.option(t.value===e,i),children:[t.icon&&(0,j.jsx)(t.icon,{className:`size-3.5`}),!a&&t.label]},t.value))}),F=(e,t)=>{try{return e()}catch(e){if(!(e instanceof DOMException))throw e;return t}},I=`modulepreload`,L=function(e){return`/`+e},R={},z=function(e){return e.pathname.endsWith(`.css`)},B=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=L(t,n);let r=s(t);if(r.href in R)return;R[r.href]=!0;let i=z(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:I,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};export{A as a,p as c,d,a as f,N as i,h as l,F as n,k as o,P as r,u as s,B as t,f as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{a as t,c as n,n as r,o as i,s as a,t as o}from"./maplibre-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{a as t,c as n,n as r,o as i,s as a,t as o}from"./maplibre-CVG5L9FD.js";import{t as s}from"./jsx-runtime-NZYk81nU.js";var c=e(s(),1),l=({style:e,layers:s,position:l,zoom:u})=>(0,c.jsxs)(a,{mapLib:o,mapStyle:e,initialViewState:{...l,zoom:u},cooperativeGestures:!0,style:{width:`100%`,height:`100%`},children:[(0,c.jsx)(t,{showCompass:!1}),(0,c.jsx)(r,{layers:s}),(0,c.jsx)(i,{latitude:l.latitude,longitude:l.longitude,anchor:`bottom`,children:(0,c.jsx)(n,{"aria-hidden":!0,className:`size-8 fill-primary text-primary-foreground drop-shadow`,strokeWidth:1.5})})]});export{l as RecordMap};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{ft as n,o as r}from"./app-CW3U56yM.js";import{a as i,c as a,i as o,n as s,o as c,r as l,s as u,t as d}from"./maplibre-CVG5L9FD.js";import{t as f}from"./cn-Bi0ZEjD9.js";import{t as p}from"./jsx-runtime-NZYk81nU.js";var m=e(t(),1),h=512,g=85.051129,_=16,v=Array.from({length:23},(e,t)=>t),y=e=>e.type===`LineString`?e.coordinates:e.type===`MultiPolygon`?e.coordinates.flat(2):e.coordinates.flat(),b=e=>{let t=Math.max(-85.051129,Math.min(g,e))*Math.PI/180;return .5-Math.log(Math.tan(Math.PI/4+t/2))/(2*Math.PI)},x=e=>{let t=y(e),n=t.map(([e])=>e),r=t.map(([,e])=>b(e)),i=(Math.max(...n)-Math.min(...n))/360*h,a=(Math.max(...r)-Math.min(...r))*h;return Math.max(i,a)},S=(e,t)=>{let n=e.flatMap(e=>{if(!e.area)return[];let n=e.area.type===`LineString`||e.area.type===`MultiLineString`?`line`:`polygon`;return[{type:`Feature`,geometry:e.area,properties:{key:e.key,kind:n,span:x(e.area),chosen:t?.includes(e.key)??!1}}]});return{type:`FeatureCollection`,features:[...n.filter(e=>!e.properties.chosen),...n.filter(e=>e.properties.chosen)]}},C=e=>[`interpolate`,[`linear`],[`zoom`],...v.flatMap(t=>[t,[`*`,e,[`min`,1,[`max`,0,[`/`,[`-`,[`*`,[`get`,`span`],2**t],_],32]]]]])],w=e(p(),1),T=`position-area-fills`,E=[`==`,[`get`,`kind`],`polygon`],D=[`==`,[`get`,`kind`],`line`],O=(e,t)=>[`case`,[`get`,`chosen`],e,t],k=({points:e,selected:t,colors:n})=>{let r=S(e,t);if(r.features.length===0)return null;let i=[`case`,[`get`,`chosen`],n.chosen,n.area];return(0,w.jsxs)(o,{id:`position-areas`,type:`geojson`,data:r,children:[(0,w.jsx)(l,{id:T,type:`fill`,filter:E,paint:{"fill-color":i,"fill-opacity":C(O(.15,.1))}}),(0,w.jsx)(l,{id:`position-area-outlines`,type:`line`,filter:E,paint:{"line-color":i,"line-width":1.5,"line-dasharray":[3,2],"line-opacity":C(.8)}}),(0,w.jsx)(l,{id:`position-area-lines`,type:`line`,filter:D,layout:{"line-cap":`round`,"line-join":`round`},paint:{"line-color":i,"line-width":6,"line-opacity":C(O(.6,.35))}})]})},A=(e,t)=>{let n=document.createElement(`span`);n.style.color=`var(${t})`,e.append(n);let r=getComputedStyle(n).color;n.remove();let i=document.createElement(`canvas`);i.width=1,i.height=1;let a=i.getContext(`2d`,{willReadFrequently:!0});if(!a)return r;a.fillStyle=r,a.fillRect(0,0,1,1);let[o,s,c,l]=a.getImageData(0,0,1,1).data;return`rgba(${o}, ${s}, ${c}, ${l/255})`},j=28,M={padding:48,maxZoom:15,duration:0},N={padding:48,maxZoom:16,duration:300},P=32,F=()=>n(`compact`,e=>new Intl.NumberFormat(e,{notation:`compact`,maximumFractionDigits:1})),I=e=>[[e.west,e.south],[e.east,e.north]],L=({style:e,layers:t,initial:n,points:o,buckets:l,fit:p,onFitted:h,onMove:g,selected:_,covered:v,onSelect:y,onClear:b,markerLabel:x,bucketLabel:S})=>{let C=(0,m.useRef)(null),[E,D]=(0,m.useState)([]),[O,L]=(0,m.useState)(),R=new globalThis.Map(o.map(e=>[e.key,e])),z=o.map(e=>e.key).join(`,`),B=p&&JSON.stringify(p),V=()=>{let e=C.current?.getMap();e&&D(r(o.map(t=>({key:t.key,...e.project([t.longitude,t.latitude])})),j))},H=()=>{let e=C.current?.getMap();if(!e)return;let t=e.getBounds(),n=e.getCenter();g({bounds:{south:t.getSouth(),west:t.getWest(),north:t.getNorth(),east:t.getEast()},zoom:e.getZoom()},{latitude:n.lat,longitude:n.lng,zoom:e.getZoom()})},U=()=>{let e=C.current?.getMap();e&&p&&(e.fitBounds(I(p),M),h(),H())};(0,m.useEffect)(V,[z]),(0,m.useEffect)(U,[B]);let W=E.find(e=>_!==void 0&&e.keys.some(e=>_.includes(e)))?.at;return(0,m.useEffect)(()=>{let e=C.current?.getMap(),t=W===void 0?void 0:R.get(W);if(!e||!t||v===0)return;let{y:n}=e.project([t.longitude,t.latitude]),r=e.getContainer().clientHeight-v;n>P&&n<r||e.easeTo({center:[t.longitude,t.latitude],offset:[0,(P-v)/2],duration:300})},[W,v]),(0,w.jsxs)(u,{ref:C,mapLib:d,mapStyle:e,initialViewState:n??{latitude:0,longitude:0,zoom:1},style:{width:`100%`,height:`100%`},onLoad:()=>{let e=C.current.getMap().getContainer();L({area:A(e,`--primary`),chosen:A(e,`--foreground`)}),V(),p?U():H()},onZoomEnd:V,onMoveEnd:H,onClick:b,children:[(0,w.jsx)(i,{showCompass:!1}),(0,w.jsx)(s,{layers:t,below:T}),O&&(0,w.jsx)(k,{points:o,selected:_,colors:O}),l.map(e=>(0,w.jsx)(c,{latitude:e.latitude,longitude:e.longitude,anchor:`center`,children:(0,w.jsx)(`button`,{type:`button`,"aria-label":S(e.count),className:`flex size-10 cursor-pointer items-center justify-center rounded-full border-2 border-background bg-primary text-xs font-semibold text-primary-foreground tabular-nums shadow`,onClick:t=>{t.stopPropagation(),C.current?.getMap().fitBounds(I(e.bounds),N)},children:F().format(e.count)})},`${e.latitude},${e.longitude}`)),E.map(e=>{let t=R.get(e.at);if(!t)return null;let n=_!==void 0&&e.keys.some(e=>_.includes(e)),r=e.keys.every(e=>R.get(e)?.approximate);return(0,w.jsx)(c,{latitude:t.latitude,longitude:t.longitude,anchor:`bottom`,style:{zIndex:+!!n},children:(0,w.jsxs)(`button`,{type:`button`,"aria-label":x(e.keys),"aria-pressed":n,className:`relative block cursor-pointer`,onClick:t=>{t.stopPropagation(),y(e.keys)},children:[(0,w.jsx)(a,{"aria-hidden":!0,"data-approximate":r||void 0,className:f(`size-8 drop-shadow`,r?n?`fill-background text-foreground`:`fill-background text-primary`:n?`fill-foreground text-background`:`fill-primary text-primary-foreground`),strokeWidth:r?2:1.5,strokeDasharray:r?`3 2`:void 0}),e.keys.length>1&&(0,w.jsx)(`span`,{className:`absolute -right-2 -top-1 min-w-5 rounded-full border border-background bg-foreground px-1 text-center text-[11px] font-medium leading-4 text-background tabular-nums`,children:e.keys.length})]})},e.at)})]})};export{L as RecordsMap};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{$ as n,A as r,B as i,C as a,D as o,E as s,F as c,G as l,H as u,I as d,J as f,K as p,L as m,M as h,N as ee,O as te,P as ne,Q as re,R as g,S as _,T as v,U as y,V as b,W as x,X as S,Y as C,Z as w,_ as T,a as E,at as D,b as O,c as k,ct as A,d as j,dt as M,et as N,f as P,g as F,gt as I,h as L,ht as R,i as z,it as B,j as V,k as H,l as U,lt as ie,m as W,mt as G,n as K,nt as q,ot as J,p as Y,pt as ae,q as oe,r as se,rt as ce,s as le,st as ue,t as de,tt as fe,u as pe,ut as me,v as he,w as ge,x as X,y as _e,z as Z}from"./app-CW3U56yM.js";import{r as ve}from"./preload-helper-BX9CcZkY.js";import{t as Q}from"./cn-Bi0ZEjD9.js";import{t as ye}from"./jsx-runtime-NZYk81nU.js";var $=e(ye(),1),be=({row:e,resource:t,recordKey:n,...r})=>{let i=k(),a=L(),o=t??i?.resource??a?.model.name;if(o===void 0)throw Error(`RecordLink needs a resource outside a list display or a record`);return(0,$.jsx)(Z,{to:{kind:`record`,resource:o,key:e?e.key:n},...r})},xe=({name:e,label:t,options:n,value:r,onChange:i})=>(0,$.jsx)(`div`,{role:`radiogroup`,"aria-label":t,className:`flex flex-col gap-2`,children:n.map(t=>(0,$.jsxs)(`label`,{className:Q(`block rounded-lg border p-3 transition-colors has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-2 has-[:focus-visible]:outline-primary`,t.disabled?`cursor-default bg-background opacity-60`:t.value===r?`cursor-pointer border-primary bg-primary-soft`:`cursor-pointer bg-background hover:bg-surface`),children:[(0,$.jsx)(`input`,{type:`radio`,name:e,value:t.value,checked:t.value===r,disabled:t.disabled,onChange:()=>i(t.value),className:`sr-only`}),(0,$.jsx)(`span`,{className:Q(`block font-medium`,t.value===r&&`text-primary-text`),children:t.label}),t.description&&(0,$.jsx)(`span`,{className:`mt-0.5 block text-xs leading-snug text-muted-foreground`,children:t.description})]},t.value))}),Se=(e,t,n)=>{let r=q(),i=ue(),a=[...new Set(n)].sort();return D({queryKey:B.pickedLabels(e.name,a.join(`,`)),enabled:a.length>0,placeholderData:J,queryFn:()=>j(i,r,e,a,t)}).data??new Map},Ce=e(t(),1),we=e=>{let{resources:t,views:n}=b(),r=t[e.resource];if(!r)throw Error(`RecordPicker: the app has no resource named "${e.resource}"`);if(r.primaryKey.length!==1)throw Error(`RecordPicker: "${e.resource}" has a composite key, which a picker cannot name`);let i=n[e.resource],a=e.multiple?e.value:e.value===void 0?[]:[e.value],[o,s]=(0,Ce.useState)({}),c=Se(r,i,a),l=e=>o[e]??c.get(e)??e,u=(e,t)=>s(n=>({...n,[e]:t}));if(!e.multiple){let{value:t,onChange:n}=e;return(0,$.jsx)(d,{target:r,view:i,value:t??``,label:t===void 0?void 0:l(t),invalid:e.invalid,onChange:(e,t)=>{u(e,t),n(e)}})}let{value:f,onChange:p}=e;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(d,{target:r,view:i,value:``,chosen:f,several:!0,invalid:e.invalid,onChange:(e,t)=>{u(e,t),p(f.includes(e)?f.filter(t=>t!==e):[...f,e])}}),f.length>0&&(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:f.map(e=>(0,$.jsx)(pe,{label:l(e),onRemove:()=>p(f.filter(t=>t!==e))},e))})]})};export{H as ActionCard,F as ActionInputError,fe as ApiProvider,de as App,Z as AppLink,O as AssistantDock,N as AuthLayout,me as Button,ee as ChatMessage,h as ChatThread,xe as Choices,re as CodeForm,o as CompactTable,V as Composer,ie as Dialog,ge as DiffView,x as Field,te as FieldList,z as Form,G as Input,I as LogoMark,E as MenuSelect,A as OtpInput,_ as PartView,be as RecordLink,we as RecordPicker,n as ResendCodeButton,T as ResponsiveDialog,y as Section,ve as Segmented,r as SidePanel,U as SignInPrompt,ae as Spinner,a as StepList,g as Textarea,M as buttonClass,ne as definePlugin,c as defineUi,v as diffStats,K as isConflict,S as mergeUi,s as parseDiff,oe as pluginApi,f as protobaseVersion,w as uiFromModule,p as useApiToken,i as useAppAddress,_e as useAssistant,he as useAssistantClient,X as useBackendData,q as useClient,P as useFacets,R as useFieldControl,Y as useHistogram,L as useLayoutRecord,m as useList,le as useListDisplay,u as useMeta,C as usePlugin,l as useRecord,ce as useResourceClient,W as useSeries,se as useUpdateRecord};
|
package/dist/shell/index.html
CHANGED
|
@@ -18,13 +18,15 @@
|
|
|
18
18
|
}
|
|
19
19
|
document.documentElement.dataset.theme = stored === 'light' || stored === 'dark' ? stored : matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
|
|
20
20
|
</script>
|
|
21
|
-
<script type="importmap">{"imports":{"react":"/assets/shared-react-DhkZ2M4l.js","react/jsx-runtime":"/assets/shared-react-jsx-runtime-xPQrWk0g.js","react-dom":"/assets/shared-react-dom-D508a1cq.js","@protobase/ui":"/assets/shared-protobase-ui-
|
|
22
|
-
<script type="module" crossorigin src="/assets/index-
|
|
21
|
+
<script type="importmap">{"imports":{"react":"/assets/shared-react-DhkZ2M4l.js","react/jsx-runtime":"/assets/shared-react-jsx-runtime-xPQrWk0g.js","react-dom":"/assets/shared-react-dom-D508a1cq.js","@protobase/ui":"/assets/shared-protobase-ui-CB_i50NP.js"}}</script>
|
|
22
|
+
<script type="module" crossorigin src="/assets/index-B7cIjCuz.js"></script>
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/react-Cvdyeg_0.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/react-dom-B-VxWsjA.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/cn-Bi0ZEjD9.js">
|
|
26
27
|
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-NZYk81nU.js">
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/preload-helper-BX9CcZkY.js">
|
|
29
|
+
<link rel="modulepreload" crossorigin href="/assets/app-CW3U56yM.js">
|
|
28
30
|
<link rel="stylesheet" crossorigin href="/assets/app-GUjJKojE.css">
|
|
29
31
|
<link rel="stylesheet" crossorigin href="/assets/index-BRkDA5KD.css">
|
|
30
32
|
<link rel="stylesheet" href="/protobase.theme.css">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const cacheName = "protobase-shell-
|
|
2
|
-
const precache = ["/index.html","/assets/shared-react-DhkZ2M4l.js","/assets/shared-react-jsx-runtime-xPQrWk0g.js","/assets/shared-react-dom-D508a1cq.js","/assets/shared-protobase-ui-
|
|
1
|
+
const cacheName = "protobase-shell-438ae0ed54a817f0"
|
|
2
|
+
const precache = ["/index.html","/assets/shared-react-DhkZ2M4l.js","/assets/shared-react-jsx-runtime-xPQrWk0g.js","/assets/shared-react-dom-D508a1cq.js","/assets/shared-protobase-ui-CB_i50NP.js","/assets/index-B7cIjCuz.js","/assets/rolldown-runtime-hePW80VL.js","/assets/react-Cvdyeg_0.js","/assets/react-dom-B-VxWsjA.js","/assets/cn-Bi0ZEjD9.js","/assets/jsx-runtime-NZYk81nU.js","/assets/preload-helper-BX9CcZkY.js","/assets/app-CW3U56yM.js","/assets/app-GUjJKojE.css","/assets/index-BRkDA5KD.css","/protobase.theme.css","/protobase.favicon.svg"]
|
|
3
3
|
const revalidated = ["/protobase.theme.css","/protobase.favicon.svg"]
|
|
4
4
|
|
|
5
5
|
const fromCache = (request) =>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useIsDesktop } from "../lib/use-media-query.js";
|
|
2
2
|
import { Button } from "../primitives/button.js";
|
|
3
3
|
import { useVisualViewport } from "../lib/use-visual-viewport.js";
|
|
4
|
+
import { text } from "./messages.js";
|
|
4
5
|
import { X } from "lucide-react";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
//#region src/side-panel/side-panel.tsx
|
|
@@ -36,7 +37,7 @@ const SidePanel = ({ title, icon, status, onClose, footer, children }) => {
|
|
|
36
37
|
variant: "ghost",
|
|
37
38
|
size: "sm",
|
|
38
39
|
className: "w-7 px-0",
|
|
39
|
-
"aria-label": "
|
|
40
|
+
"aria-label": text("close"),
|
|
40
41
|
onClick: onClose,
|
|
41
42
|
children: /* @__PURE__ */ jsx(X, { className: "size-4" })
|
|
42
43
|
})
|
package/dist/toasts/toast.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { cn } from "../lib/cn.js";
|
|
2
2
|
import { inApp } from "../app-shell/breadcrumb.js";
|
|
3
3
|
import { Spinner } from "../primitives/spinner.js";
|
|
4
|
+
import { text } from "./messages.js";
|
|
4
5
|
import { CheckCircle2, TriangleAlert, X, XCircle } from "lucide-react";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
//#region src/toasts/toast.tsx
|
|
@@ -51,7 +52,7 @@ const Toast = ({ state, title, description, action, onDismiss }) => /* @__PURE__
|
|
|
51
52
|
action && /* @__PURE__ */ jsx(Action, { action }),
|
|
52
53
|
onDismiss && /* @__PURE__ */ jsx("button", {
|
|
53
54
|
type: "button",
|
|
54
|
-
"aria-label": "
|
|
55
|
+
"aria-label": text("dismiss"),
|
|
55
56
|
onClick: onDismiss,
|
|
56
57
|
className: "inline-flex items-center justify-center rounded p-0.5 text-faint-foreground hover:bg-muted hover:text-foreground pointer-coarse:size-9",
|
|
57
58
|
children: /* @__PURE__ */ jsx(X, { className: "size-3.5" })
|
|
@@ -4,6 +4,7 @@ import { InviteForm } from "../invitations/invite-form.js";
|
|
|
4
4
|
import { PendingInvitationRow } from "../invitations/pending-invitation-row.js";
|
|
5
5
|
import { AppRolesPicker } from "../organizations/app-roles-picker.js";
|
|
6
6
|
import { roleNames } from "./role-names.js";
|
|
7
|
+
import { text } from "./messages.js";
|
|
7
8
|
import { useCallback, useEffect, useState } from "react";
|
|
8
9
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
10
|
//#region src/users/app-invitations.tsx
|
|
@@ -24,8 +25,8 @@ const AppInvitations = ({ roles }) => {
|
|
|
24
25
|
return sent;
|
|
25
26
|
};
|
|
26
27
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(InviteForm, {
|
|
27
|
-
title: "
|
|
28
|
-
description: "
|
|
28
|
+
title: text("inviteSomeone"),
|
|
29
|
+
description: text("inviteDescription"),
|
|
29
30
|
onInvite: invite,
|
|
30
31
|
incomplete: selected.length === 0,
|
|
31
32
|
children: /* @__PURE__ */ jsx(AppRolesPicker, {
|
|
@@ -35,8 +36,8 @@ const AppInvitations = ({ roles }) => {
|
|
|
35
36
|
onChange: setSelected
|
|
36
37
|
})
|
|
37
38
|
}), /* @__PURE__ */ jsx(AccountSection, {
|
|
38
|
-
title: "
|
|
39
|
-
description: invitations.length > 0 ? "
|
|
39
|
+
title: text("notAcceptedYet"),
|
|
40
|
+
description: invitations.length > 0 ? text("sendingAgain") : text("nobodyWaiting"),
|
|
40
41
|
children: invitations.length > 0 && /* @__PURE__ */ jsx("ul", {
|
|
41
42
|
className: "divide-y rounded-md border",
|
|
42
43
|
children: invitations.map((invitation) => /* @__PURE__ */ jsx(PendingInvitationRow, {
|
|
@@ -4,6 +4,7 @@ import { Button } from "../primitives/button.js";
|
|
|
4
4
|
import { AccountSection, SectionError } from "../account/account-section.js";
|
|
5
5
|
import { useAction } from "../organizations/use-action.js";
|
|
6
6
|
import { AppRolesPicker } from "../organizations/app-roles-picker.js";
|
|
7
|
+
import { text } from "./messages.js";
|
|
7
8
|
import { useState } from "react";
|
|
8
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
10
|
//#region src/users/create-user-form.tsx
|
|
@@ -30,8 +31,8 @@ const CreateUserForm = ({ roles, onCreated }) => {
|
|
|
30
31
|
});
|
|
31
32
|
const incomplete = !email.trim() || !name.trim() || selected.length === 0 || password !== "" && password.length < 12;
|
|
32
33
|
return /* @__PURE__ */ jsxs(AccountSection, {
|
|
33
|
-
title: "
|
|
34
|
-
description: "
|
|
34
|
+
title: text("addAnAccount"),
|
|
35
|
+
description: text("addDescription"),
|
|
35
36
|
children: [/* @__PURE__ */ jsx(SectionError, { message: error }), /* @__PURE__ */ jsxs("form", {
|
|
36
37
|
className: "flex flex-col gap-3",
|
|
37
38
|
onSubmit: (event) => {
|
|
@@ -42,15 +43,15 @@ const CreateUserForm = ({ roles, onCreated }) => {
|
|
|
42
43
|
/* @__PURE__ */ jsxs("div", {
|
|
43
44
|
className: "flex flex-col gap-2 sm:flex-row",
|
|
44
45
|
children: [/* @__PURE__ */ jsx(Input, {
|
|
45
|
-
"aria-label": "
|
|
46
|
+
"aria-label": text("email"),
|
|
46
47
|
type: "email",
|
|
47
48
|
placeholder: "name@example.com",
|
|
48
49
|
value: email,
|
|
49
50
|
onChange: (event) => setEmail(event.target.value),
|
|
50
51
|
wrapperClassName: "flex-1"
|
|
51
52
|
}), /* @__PURE__ */ jsx(Input, {
|
|
52
|
-
"aria-label": "
|
|
53
|
-
placeholder: "
|
|
53
|
+
"aria-label": text("name"),
|
|
54
|
+
placeholder: text("name"),
|
|
54
55
|
autoComplete: "off",
|
|
55
56
|
value: name,
|
|
56
57
|
onChange: (event) => setName(event.target.value),
|
|
@@ -58,10 +59,10 @@ const CreateUserForm = ({ roles, onCreated }) => {
|
|
|
58
59
|
})]
|
|
59
60
|
}),
|
|
60
61
|
/* @__PURE__ */ jsx(Input, {
|
|
61
|
-
"aria-label": "
|
|
62
|
+
"aria-label": text("password"),
|
|
62
63
|
type: "password",
|
|
63
64
|
autoComplete: "new-password",
|
|
64
|
-
placeholder:
|
|
65
|
+
placeholder: text("passwordOptional", 12),
|
|
65
66
|
value: password,
|
|
66
67
|
onChange: (event) => setPassword(event.target.value)
|
|
67
68
|
}),
|
|
@@ -76,7 +77,7 @@ const CreateUserForm = ({ roles, onCreated }) => {
|
|
|
76
77
|
variant: "primary",
|
|
77
78
|
loading: busy,
|
|
78
79
|
disabled: incomplete,
|
|
79
|
-
children: "
|
|
80
|
+
children: text("addAccount")
|
|
80
81
|
}) })
|
|
81
82
|
]
|
|
82
83
|
})]
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { defineMessages } from "../locale/messages.js";
|
|
2
|
+
//#region src/users/messages.ts
|
|
3
|
+
const text = defineMessages({
|
|
4
|
+
en: {
|
|
5
|
+
inviteSomeone: "Invite someone",
|
|
6
|
+
inviteDescription: "They get an email with a link to make their account, with the roles you tick.",
|
|
7
|
+
notAcceptedYet: "Not accepted yet",
|
|
8
|
+
sendingAgain: "Sending again gives a new link, which replaces the earlier one.",
|
|
9
|
+
nobodyWaiting: "Nobody is waiting.",
|
|
10
|
+
addAnAccount: "Add an account",
|
|
11
|
+
addDescription: "Makes the account at once, with the address counted as verified. Without a password, the person signs in another way this app allows, such as an emailed code.",
|
|
12
|
+
email: "Email",
|
|
13
|
+
name: "Name",
|
|
14
|
+
password: "Password",
|
|
15
|
+
passwordOptional: (length) => `Password (optional, ${length}+ characters)`,
|
|
16
|
+
addAccount: "Add account",
|
|
17
|
+
couldNotReadRoles: "Could not read the roles",
|
|
18
|
+
people: "People",
|
|
19
|
+
peopleDescription: "Everyone with an account. Roles decide what each sees and does; someone blocked cannot sign in, and is signed out at once.",
|
|
20
|
+
findSomeone: "Find someone",
|
|
21
|
+
emailAddress: "Email address",
|
|
22
|
+
keepOneRole: "Keep at least one role.",
|
|
23
|
+
blocked: "Blocked",
|
|
24
|
+
unblock: "Unblock",
|
|
25
|
+
block: "Block"
|
|
26
|
+
},
|
|
27
|
+
nl: {
|
|
28
|
+
inviteSomeone: "Iemand uitnodigen",
|
|
29
|
+
inviteDescription: "Die krijgt een e-mail met een link om een account te maken, met de rollen die je aanvinkt.",
|
|
30
|
+
notAcceptedYet: "Nog niet geaccepteerd",
|
|
31
|
+
sendingAgain: "Opnieuw sturen geeft een nieuwe link, die de vorige vervangt.",
|
|
32
|
+
nobodyWaiting: "Er wacht niemand.",
|
|
33
|
+
addAnAccount: "Een account toevoegen",
|
|
34
|
+
addDescription: "Maakt het account meteen, met het adres als gecontroleerd. Zonder wachtwoord logt de persoon in op een andere manier die deze app toestaat, zoals een gemailde code.",
|
|
35
|
+
email: "E-mailadres",
|
|
36
|
+
name: "Naam",
|
|
37
|
+
password: "Wachtwoord",
|
|
38
|
+
passwordOptional: (length) => `Wachtwoord (optioneel, ${length}+ tekens)`,
|
|
39
|
+
addAccount: "Account toevoegen",
|
|
40
|
+
couldNotReadRoles: "Kon de rollen niet lezen",
|
|
41
|
+
people: "Mensen",
|
|
42
|
+
peopleDescription: "Iedereen met een account. Rollen bepalen wat ieder ziet en doet; wie geblokkeerd is, kan niet inloggen en wordt meteen uitgelogd.",
|
|
43
|
+
findSomeone: "Iemand zoeken",
|
|
44
|
+
emailAddress: "E-mailadres",
|
|
45
|
+
keepOneRole: "Houd minstens één rol.",
|
|
46
|
+
blocked: "Geblokkeerd",
|
|
47
|
+
unblock: "Deblokkeren",
|
|
48
|
+
block: "Blokkeren"
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
//#endregion
|
|
52
|
+
export { text };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { authMessage } from "../auth/auth-messages.js";
|
|
2
2
|
import { useAuth } from "../auth/auth-provider.js";
|
|
3
|
+
import { text } from "./messages.js";
|
|
3
4
|
import { useEffect, useState } from "react";
|
|
4
5
|
import { AuthError } from "@protobase/client";
|
|
5
6
|
//#region src/users/use-user-roles.ts
|
|
@@ -9,7 +10,7 @@ const useUserRoles = () => {
|
|
|
9
10
|
const [roles, setRoles] = useState([]);
|
|
10
11
|
const [error, setError] = useState();
|
|
11
12
|
useEffect(() => {
|
|
12
|
-
session.users.roles().then(setRoles, (failure) => setError(failure instanceof AuthError ? authMessage(failure) : "
|
|
13
|
+
session.users.roles().then(setRoles, (failure) => setError(failure instanceof AuthError ? authMessage(failure) : text("couldNotReadRoles")));
|
|
13
14
|
}, [session]);
|
|
14
15
|
return {
|
|
15
16
|
roles,
|
package/dist/users/user-list.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAuth } from "../auth/auth-provider.js";
|
|
2
|
+
import { text } from "./messages.js";
|
|
2
3
|
import { PagedSearchList } from "../lists/paged-search-list.js";
|
|
3
4
|
import { usePagedSearch } from "../lists/use-paged-search.js";
|
|
4
5
|
import { UserRow } from "./user-row.js";
|
|
@@ -9,17 +10,17 @@ import { jsx } from "react/jsx-runtime";
|
|
|
9
10
|
const UserList = ({ roles, version }) => {
|
|
10
11
|
const { session, state } = useAuth();
|
|
11
12
|
const [query, setQuery] = useState("");
|
|
12
|
-
const search = useCallback((
|
|
13
|
+
const search = useCallback((term, offset) => session.users.search(term, offset).then((page) => ({
|
|
13
14
|
items: page.users,
|
|
14
15
|
total: page.total
|
|
15
16
|
})), [session, version]);
|
|
16
17
|
const list = usePagedSearch(search, query);
|
|
17
18
|
const selfId = state.kind === "signed-in" ? state.user.id : void 0;
|
|
18
19
|
return /* @__PURE__ */ jsx(PagedSearchList, {
|
|
19
|
-
title: "
|
|
20
|
-
description: "
|
|
21
|
-
searchLabel: "
|
|
22
|
-
placeholder: "
|
|
20
|
+
title: text("people"),
|
|
21
|
+
description: text("peopleDescription"),
|
|
22
|
+
searchLabel: text("findSomeone"),
|
|
23
|
+
placeholder: text("emailAddress"),
|
|
23
24
|
query,
|
|
24
25
|
onQuery: setQuery,
|
|
25
26
|
list,
|
package/dist/users/user-row.js
CHANGED
|
@@ -3,6 +3,7 @@ import { useAuth } from "../auth/auth-provider.js";
|
|
|
3
3
|
import { Button } from "../primitives/button.js";
|
|
4
4
|
import { useAction } from "../organizations/use-action.js";
|
|
5
5
|
import { AppRolesPicker } from "../organizations/app-roles-picker.js";
|
|
6
|
+
import { text } from "./messages.js";
|
|
6
7
|
import { PersonRow } from "../people/person-row.js";
|
|
7
8
|
import { useState } from "react";
|
|
8
9
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -13,7 +14,7 @@ const UserRow = ({ user: initial, roles, self }) => {
|
|
|
13
14
|
const [user, setUser] = useState(initial);
|
|
14
15
|
const { busy, error, run, setError } = useAction();
|
|
15
16
|
const setRoles = (selected) => {
|
|
16
|
-
if (selected.length === 0) return setError("
|
|
17
|
+
if (selected.length === 0) return setError(text("keepOneRole"));
|
|
17
18
|
run(async () => {
|
|
18
19
|
await session.users.setRoles(user.id, selected);
|
|
19
20
|
setUser({
|
|
@@ -36,18 +37,18 @@ const UserRow = ({ user: initial, roles, self }) => {
|
|
|
36
37
|
error,
|
|
37
38
|
actions: /* @__PURE__ */ jsxs(Fragment$1, { children: [user.blocked && /* @__PURE__ */ jsx(Badge, {
|
|
38
39
|
tone: "red",
|
|
39
|
-
children: "
|
|
40
|
+
children: text("blocked")
|
|
40
41
|
}), !self && (user.blocked ? /* @__PURE__ */ jsx(Button, {
|
|
41
42
|
size: "sm",
|
|
42
43
|
loading: busy,
|
|
43
44
|
onClick: () => setBlocked(false),
|
|
44
|
-
children: "
|
|
45
|
+
children: text("unblock")
|
|
45
46
|
}) : /* @__PURE__ */ jsx(Button, {
|
|
46
47
|
size: "sm",
|
|
47
48
|
variant: "danger",
|
|
48
49
|
loading: busy,
|
|
49
50
|
onClick: () => setBlocked(true),
|
|
50
|
-
children: "
|
|
51
|
+
children: text("block")
|
|
51
52
|
}))] }),
|
|
52
53
|
children: /* @__PURE__ */ jsx(AppRolesPicker, {
|
|
53
54
|
roles,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@protobase/ui",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.3",
|
|
4
4
|
"description": "The Protobase admin app and the React hooks and components for custom UI.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@dnd-kit/core": "^6.3.1",
|
|
41
41
|
"@dnd-kit/sortable": "^10.0.0",
|
|
42
|
-
"@protobase/client": "0.25.
|
|
43
|
-
"@protobase/layout": "0.25.
|
|
44
|
-
"@protobase/schema": "0.25.
|
|
42
|
+
"@protobase/client": "0.25.3",
|
|
43
|
+
"@protobase/layout": "0.25.3",
|
|
44
|
+
"@protobase/schema": "0.25.3",
|
|
45
45
|
"@sentry/browser": "^11.7.0",
|
|
46
46
|
"@tanstack/react-query": "^5.104.1",
|
|
47
47
|
"@tanstack/react-table": "^9.2.6",
|