@nordhealth/components 2.10.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +2407 -2221
- package/lib/ButtonGroup.js +2 -0
- package/lib/ButtonGroup.js.map +1 -0
- package/lib/Card.js +1 -1
- package/lib/Card.js.map +1 -1
- package/lib/Checkbox.js +1 -1
- package/lib/Checkbox.js.map +1 -1
- package/lib/Layout.js +1 -1
- package/lib/Layout.js.map +1 -1
- package/lib/Qrcode.js +1 -6
- package/lib/Qrcode.js.map +1 -1
- package/lib/Sticky-991acfdd.js +2 -0
- package/lib/Sticky-991acfdd.js.map +1 -0
- package/lib/TabGroup.js +1 -1
- package/lib/TabGroup.js.map +1 -1
- package/lib/Table.js +1 -1
- package/lib/Table.js.map +1 -1
- package/lib/bundle.js +3 -3
- package/lib/bundle.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/src/button-group/ButtonGroup.d.ts +31 -0
- package/lib/src/button-group/ButtonGroup.test.d.ts +6 -0
- package/lib/src/index.d.ts +1 -0
- package/lib/src/layout/Layout.d.ts +9 -0
- package/lib/style-map-2fe03b77.js +7 -0
- package/lib/style-map-2fe03b77.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{_ as r,e as o}from"./query-assigned-elements-e6cbac30.js";import{i as t,y as n,s as e}from"./lit-element-9178eae5.js";import{e as i}from"./property-03f59dce.js";import{D as a}from"./DraftComponentMixin-9e4b7b34.js";import{s as d}from"./Component-92eb6234.js";const s=t`:host{--_n-button-group-border-radius:var(--n-button-group-border-radius, var(--n-border-radius-s));--_n-button-group-box-shadow:var(--n-button-group-box-shadow, var(--n-box-shadow));--n-button-border-radius:0;--n-button-box-shadow:none}.n-button-group{display:flex;max-inline-size:max-content;border-radius:var(--_n-button-group-border-radius);box-shadow:var(--_n-button-group-box-shadow)}:host([direction=horizontal]) ::slotted(*){margin-inline-end:-1px}::slotted(:is(:hover,:focus,:focus-within,[aria-pressed=true])){z-index:var(--n-index-masked)}::slotted([aria-pressed=true]){--n-button-background-color:var(--n-color-status-info-weak);--n-button-border-color:var(--n-color-accent)}::slotted(:first-child){--n-button-border-radius:var(--_n-button-group-border-radius) 0 0 var(--_n-button-group-border-radius);border-radius:var(--_n-button-group-border-radius) 0 0 var(--_n-button-group-border-radius)}::slotted(:last-child){--n-button-border-radius:0 var(--_n-button-group-border-radius) var(--_n-button-group-border-radius) 0;border-radius:0 var(--_n-button-group-border-radius) var(--_n-button-group-border-radius) 0}:host([direction=vertical]) .n-button-group{flex-direction:column}:host([direction=vertical]) ::slotted(*){margin-block-end:-1px}:host([direction=vertical]) ::slotted(:first-child){--n-button-border-radius:var(--_n-button-group-border-radius) var(--_n-button-group-border-radius) 0 0}:host([direction=vertical]) ::slotted(:last-child){--n-button-border-radius:0 0 var(--_n-button-group-border-radius) var(--_n-button-group-border-radius)}::slotted(nord-button[variant=primary]){position:relative}::slotted(nord-button[variant=primary]:not(:is(:focus,:first-child)))::before,::slotted(nord-button[variant=primary]:not(:is(:focus,:last-child)))::after{content:"";position:absolute;z-index:var(--n-index-mask);background:var(--n-color-text);opacity:.25}:host([direction=horizontal]) ::slotted(nord-button[variant=primary])::after,:host([direction=horizontal]) ::slotted(nord-button[variant=primary])::before{inline-size:1px;inset-block:0}:host([direction=horizontal]) ::slotted(nord-button[variant=primary])::after{inset-inline-end:0}:host([direction=vertical]) ::slotted(nord-button[variant=primary])::after,:host([direction=vertical]) ::slotted(nord-button[variant=primary])::before{block-size:1px;inset-inline:0}:host([direction=vertical]) ::slotted(nord-button[variant=primary])::after{inset-block-end:0}`;let u=class extends(a(e)){constructor(){super(...arguments),this.direction="horizontal",this.role="group"}render(){return n`<div class="n-button-group"><slot></slot></div>`}};u.styles=[d,s],r([i({reflect:!0})],u.prototype,"direction",void 0),r([i({reflect:!0})],u.prototype,"role",void 0),u=r([o("nord-button-group")],u);var b=u;export{b as default};
|
|
2
|
+
//# sourceMappingURL=ButtonGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonGroup.js","sources":["../src/button-group/ButtonGroup.ts"],"sourcesContent":["import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { DraftComponentMixin } from \"../common/mixins/DraftComponentMixin.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./ButtonGroup.css\"\n\n/**\n * Button groups are designed to bring together button controls that are of a similar nature. For example text formatting controls.\n *\n * @status draft\n * @category structure\n * @slot - The button group content\n *\n * @cssprop [--n-button-group-border-radius=var(--n-border-radius-s)] - Controls the rounded corners of the button, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-button-group-box-shadow=var(--n-box-shadow)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n\n */\n@customElement(\"nord-button-group\")\nexport default class ButtonGroup extends DraftComponentMixin(LitElement) {\n static styles = [componentStyle, style]\n\n /**\n * The direction of the button group.\n */\n @property({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"horizontal\"\n\n /**\n * The appropriate role for the containing element.\n */\n @property({ reflect: true }) role: string = \"group\"\n\n render() {\n return html`\n <div class=\"n-button-group\">\n <slot></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-button-group\": ButtonGroup\n }\n}\n"],"names":["ButtonGroup","DraftComponentMixin","LitElement","constructor","this","direction","role","render","html","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"mpFAmBA,IAAqBA,EAArB,cAAyCC,EAAoBC,IAA7DC,kCAM+BC,KAASC,UAA8B,aAKvCD,KAAIE,KAAW,OAS7C,CAPCC,SACE,OAAOC,CAAI,iDAKZ,GAlBMR,EAAAS,OAAS,CAACC,EAAgBC,GAKJC,EAAA,CAA5BC,EAAS,CAAEC,SAAS,KAA2Dd,EAAAe,UAAA,iBAAA,GAKnDH,EAAA,CAA5BC,EAAS,CAAEC,SAAS,KAA8Bd,EAAAe,UAAA,YAAA,GAXhCf,EAAWY,EAAA,CAD/BI,EAAc,sBACMhB,SAAAA"}
|
package/lib/Card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as a,e
|
|
1
|
+
import{_ as a,e}from"./query-assigned-elements-e6cbac30.js";import{i as r,s as d,y as o}from"./lit-element-9178eae5.js";import{e as t}from"./property-03f59dce.js";import{S as n}from"./SlotController-89834aef.js";import{s}from"./Component-92eb6234.js";import"./EventController-d99ebeef.js";const i=r`:host{--_n-card-padding:var(--n-card-padding, var(--n-space-m));--_n-card-slot-padding:var(--n-card-slot-padding, var(--n-space-m));--_n-card-box-shadow:var(--n-card-box-shadow, var(--n-box-shadow-card));--_n-card-border-radius:var(--n-card-border-radius, var(--n-border-radius));color:var(--n-color-text);display:block;inline-size:100%}.n-card{background:var(--n-color-surface);border-radius:var(--_n-card-border-radius);box-shadow:var(--_n-card-box-shadow);block-size:100%;display:flex;flex-direction:column}.header{border-block-end:1px solid var(--n-color-border);padding:var(--n-space-m) var(--_n-card-slot-padding);display:flex;gap:var(--n-space-s);align-items:center;justify-content:space-between;flex-wrap:wrap}:host([padding="l"]){--_n-card-padding:var(--n-card-padding, var(--n-space-l));--_n-card-slot-padding:var(--n-card-slot-padding, var(--n-space-l))}:host([padding=none]){--_n-card-padding:var(--n-card-padding, 0)}slot{display:block}slot:not([name]){padding:var(--_n-card-padding);flex:1}slot[name=footer]{padding:var(--_n-card-slot-padding);padding-block-start:0;white-space:nowrap}::slotted([slot=header-end]){--n-stack-gap:var(--n-space-s);display:flex;gap:var(--n-stack-gap);align-items:center;flex-wrap:wrap}::slotted([slot=header]){font-size:var(--n-font-size-m);font-weight:var(--n-font-weight-heading);margin:0}::slotted(a){color:var(--n-color-text-link);text-decoration:underline}::slotted(a:hover){text-decoration:none}`;let l=class extends d{constructor(){super(...arguments),this.headerSlot=new n(this,"header"),this.headerEndSlot=new n(this,"header-end"),this.footerSlot=new n(this,"footer"),this.padding="m"}render(){return o`<div class="n-card"><div class="header" ?hidden="${this.headerSlot.isEmpty&&this.headerEndSlot.isEmpty}"><slot name="${this.headerSlot.slotName}"></slot><slot name="${this.headerEndSlot.slotName}"></slot></div><slot></slot><slot name="${this.footerSlot.slotName}" ?hidden="${this.footerSlot.isEmpty}"></slot></div>`}};l.styles=[s,i],a([t({reflect:!0})],l.prototype,"padding",void 0),l=a([e("nord-card")],l);var c=l;export{c as default};
|
|
2
2
|
//# sourceMappingURL=Card.js.map
|
package/lib/Card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sources":["../src/card/Card.ts"],"sourcesContent":["import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { SlotController } from \"../common/controllers/SlotController.js\"\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Card.css\"\n\n/**\n * Cards are shadowed surfaces that display content and actions on a\n * single topic. They should be easy to scan for relevant and\n * actionable information.\n *\n * @status ready\n * @category structure\n * @slot - The card content.\n * @slot header - Optional slot that holds a header for the card.\n * @slot header-end - Optional slot that positions content at the end of the header. Useful for actions or additional info.\n * @slot footer - Optional slot that holds footer content for the card.\n *\n * @cssprop [--n-card-border-radius=var(--n-border-radius)] - Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-card-box-shadow=var(--n-box-shadow-popout)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n * @cssprop [--n-card-padding=var(--n-space-m)] - Controls the padding on all sides of the card.\n * @cssprop [--n-card-slot-padding=var(--n-space-m)] - Controls the padding of items slotted within the card. This does not affect the block padding of items slotted into the header.\n */\n@customElement(\"nord-card\")\nexport default class Card extends LitElement {\n static styles = [componentStyle, style]\n\n private headerSlot = new SlotController(this, \"header\")\n private headerEndSlot = new SlotController(this, \"header-end\")\n private footerSlot = new SlotController(this, \"footer\")\n\n /**\n * Controls the padding of the card component. When set to “none”,\n * the header and footer slots will still have padding.\n */\n @property({ reflect: true }) padding: \"m\" | \"l\" | \"none\" = \"m\"\n\n render() {\n return html`\n <div class=\"n-card\">\n <div class=\"header\" ?hidden=${this.headerSlot.isEmpty && this.headerEndSlot.isEmpty}>\n <slot name=${this.headerSlot.slotName}></slot>\n <slot name=${this.headerEndSlot.slotName}></slot>\n </div>\n <slot></slot>\n <slot name=${this.footerSlot.slotName} ?hidden=${this.footerSlot.isEmpty}></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-card\": Card\n }\n}\n"],"names":["Card","LitElement","constructor","this","headerSlot","SlotController","headerEndSlot","footerSlot","padding","render","html","isEmpty","slotName","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Card.js","sources":["../src/card/Card.ts"],"sourcesContent":["import { LitElement, html } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { SlotController } from \"../common/controllers/SlotController.js\"\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Card.css\"\n\n/**\n * Cards are shadowed surfaces that display content and actions on a\n * single topic. They should be easy to scan for relevant and\n * actionable information.\n *\n * @status ready\n * @category structure\n * @slot - The card content.\n * @slot header - Optional slot that holds a header for the card.\n * @slot header-end - Optional slot that positions content at the end of the header. Useful for actions or additional info.\n * @slot footer - Optional slot that holds footer content for the card.\n *\n * @cssprop [--n-card-border-radius=var(--n-border-radius)] - Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).\n * @cssprop [--n-card-box-shadow=var(--n-box-shadow-popout)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow).\n * @cssprop [--n-card-padding=var(--n-space-m)] - Controls the padding on all sides of the card.\n * @cssprop [--n-card-slot-padding=var(--n-space-m)] - Controls the padding of items slotted within the card. This does not affect the block padding of items slotted into the header.\n */\n@customElement(\"nord-card\")\nexport default class Card extends LitElement {\n static styles = [componentStyle, style]\n\n private headerSlot = new SlotController(this, \"header\")\n private headerEndSlot = new SlotController(this, \"header-end\")\n private footerSlot = new SlotController(this, \"footer\")\n\n /**\n * Controls the padding of the card component. When set to “none”,\n * the header and footer slots will still have padding.\n */\n @property({ reflect: true }) padding: \"m\" | \"l\" | \"none\" = \"m\"\n\n render() {\n return html`\n <div class=\"n-card\">\n <div class=\"header\" ?hidden=${this.headerSlot.isEmpty && this.headerEndSlot.isEmpty}>\n <slot name=${this.headerSlot.slotName}></slot>\n <slot name=${this.headerEndSlot.slotName}></slot>\n </div>\n <slot></slot>\n <slot name=${this.footerSlot.slotName} ?hidden=${this.footerSlot.isEmpty}></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-card\": Card\n }\n}\n"],"names":["Card","LitElement","constructor","this","headerSlot","SlotController","headerEndSlot","footerSlot","padding","render","html","isEmpty","slotName","styles","componentStyle","style","__decorate","property","reflect","prototype","customElement"],"mappings":"ktDAwBA,IAAqBA,EAArB,cAAkCC,EAAlCC,kCAGUC,KAAUC,WAAG,IAAIC,EAAeF,KAAM,UACtCA,KAAaG,cAAG,IAAID,EAAeF,KAAM,cACzCA,KAAUI,WAAG,IAAIF,EAAeF,KAAM,UAMjBA,KAAOK,QAAuB,GAc5D,CAZCC,SACE,OAAOC,CAAI,oDAEuBP,KAAKC,WAAWO,SAAWR,KAAKG,cAAcK,wBAC7DR,KAAKC,WAAWQ,gCAChBT,KAAKG,cAAcM,mDAGrBT,KAAKI,WAAWK,sBAAoBT,KAAKI,WAAWI,wBAGtE,GAvBMX,EAAAa,OAAS,CAACC,EAAgBC,GAUJC,EAAA,CAA5BC,EAAS,CAAEC,SAAS,KAAyClB,EAAAmB,UAAA,eAAA,GAX3CnB,EAAIgB,EAAA,CADxBI,EAAc,cACMpB,SAAAA"}
|
package/lib/Checkbox.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as e,e as n}from"./query-assigned-elements-e6cbac30.js";import{i as o,y as r,s as i}from"./lit-element-9178eae5.js";import{e as
|
|
1
|
+
import{_ as e,e as n}from"./query-assigned-elements-e6cbac30.js";import{i as o,y as r,s as i}from"./lit-element-9178eae5.js";import{e as a}from"./property-03f59dce.js";import{l as t}from"./if-defined-4598a996.js";import{n as c}from"./ref-0e619221.js";import s from"./Icon.js";import{F as l}from"./FocusableMixin-34870ed3.js";import{F as d}from"./FormAssociatedMixin-aa74901e.js";import{I as p}from"./InputMixin-158f63fb.js";import{S as h,i as m}from"./SizeMixin-4559b224.js";import{s as b}from"./Component-92eb6234.js";import{s as v}from"./FormField-ae3570d2.js";import"./directive-de55b00a.js";import"./state-70f38ceb.js";import"./observe-a9c6dfb6.js";import"./cond-338158e9.js";import"./EventController-d99ebeef.js";import"./SlotController-89834aef.js";import"./events-731d0007.js";import"./VisuallyHidden.js";var u=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 140 140" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M41.86 131.25a23.982 23.982 0 0 1-18.494-8.666L2.254 95.746a10.5 10.5 0 1 1 16.492-12.992l21 26.6a2.24 2.24 0 0 0 2.212.882 3.038 3.038 0 0 0 2.38-1.148l76.958-96.39a10.5 10.5 0 1 1 16.408 13.104L60.606 122.29A24.038 24.038 0 0 1 42 131.25z"/></svg>',title:"interface-checked-small",tags:"nordicon interface checked small symbol checkmark done ready"});var f=Object.freeze({__proto__:null,default:'<svg viewBox="0 0 140 140" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M129.5 80.5h-119a10.5 10.5 0 0 1 0-21h119a10.5 10.5 0 0 1 0 21z"/></svg>',title:"interface-remove-small",tags:"nordicon interface remove small delete erase minimize line"});const k=o`:host{--_n-checkbox-size:calc(var(--n-space-m) * 1.25);--_n-checkbox-accent-color:var(--n-color-accent);--_n-checkbox-border-color:var(--n-color-border-hover);display:inline-block}.n-flex{display:flex}.n-expand{flex:1}.n-input-container{position:relative}input{-moz-appearance:none;-webkit-appearance:none;appearance:none;border:1px solid var(--_n-checkbox-border-color);border-radius:var(--n-border-radius-s);display:block;inline-size:var(--_n-checkbox-size);block-size:var(--_n-checkbox-size);cursor:pointer}input:checked,input:indeterminate{--_n-checkbox-border-color:var(--n-color-accent);background:var(--_n-checkbox-accent-color)}input[aria-invalid]{--_n-checkbox-accent-color:var(--n-color-status-danger);--_n-checkbox-border-color:var(--_n-checkbox-accent-color)}input:focus-visible{outline:0!important}input:focus{outline:0!important;box-shadow:0 0 0 1px var(--n-color-surface),0 0 0 3px var(--n-color-accent)}input:active{opacity:.8}:host([disabled]) label{color:var(--n-color-text-weaker);cursor:default}:host([disabled]) input{--_n-checkbox-accent-color:var(--n-color-border-strong);--_n-checkbox-border-color:var(--_n-checkbox-accent-color);background:var(--_n-checkbox-accent-color);cursor:default;opacity:1}nord-icon{display:none;position:absolute;color:var(--n-color-text-on-accent);inset:calc(var(--n-space-s)/ 2);z-index:var(--n-index-default);pointer-events:none}input:checked~.icon-checked,input:indeterminate~.icon-indeterminate{display:block}.n-label-container{margin-block-end:0}label{-webkit-user-select:none;user-select:none;font-weight:var(--n-font-weight)!important;line-height:var(--n-line-height-form);padding-inline-start:var(--n-space-s);cursor:pointer}.n-hint{padding-inline-start:var(--n-space-s)}.n-error{margin-block-start:calc(var(--n-space-s)/ 2);padding-inline-start:var(--n-space-s)}:host([size="s"]){--_n-checkbox-size:var(--n-space-m)}:host([size="s"]) nord-icon{inset:calc(var(--n-space-s)/ 2.6)}:host([size="s"]:not([hide-label])) .n-input-container{margin:calc(var(--n-space-s)/ 2.6) 0}:host([size="l"]){--_n-checkbox-size:var(--n-space-l)}`;s.registerIcon(u),s.registerIcon(f);let x=class extends(h(d(p(l(i))))){constructor(){super(...arguments),this.indeterminate=!1,this.checked=!1}get formValue(){return this.checked?this.value||"on":void 0}render(){const e=m[this.size]||m.m;return r`<div class="n-flex"><div class="n-input-container"><input ${c(this.focusableRef)} class="n-input" id="${this.inputId}" type="checkbox" name="${t(this.name)}" .value="${this.value}" .checked="${this.checked}" .indeterminate="${this.indeterminate}" ?disabled="${this.disabled}" ?required="${this.required}" aria-describedby="${t(this.getDescribedBy())}" aria-invalid="${t(this.getInvalid())}" @change="${this.handleChange}"><nord-icon class="icon-checked" name="interface-checked-small" size="${e}"></nord-icon><nord-icon class="icon-indeterminate" name="interface-remove-small" size="${e}"></nord-icon></div><div class="n-expand">${this.renderLabel()} ${this.renderError()}</div></div>`}handleChange(e){const n=e.target;this.checked=n.checked,super.handleChange(e)}};x.styles=[b,v,k],e([a({type:Boolean})],x.prototype,"indeterminate",void 0),e([a({type:Boolean})],x.prototype,"checked",void 0),x=e([n("nord-checkbox")],x);var g=x;export{g as default};
|
|
2
2
|
//# sourceMappingURL=Checkbox.js.map
|
package/lib/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../icons/lib/assets/interface-checked-small.js","../../icons/lib/assets/interface-remove-small.js","../src/checkbox/Checkbox.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M41.86 131.25a23.982 23.982 0 0 1-18.494-8.666L2.254 95.746a10.5 10.5 0 1 1 16.492-12.992l21 26.6a2.24 2.24 0 0 0 2.212.882 3.038 3.038 0 0 0 2.38-1.148l76.958-96.39a10.5 10.5 0 1 1 16.408 13.104L60.606 122.29A24.038 24.038 0 0 1 42 131.25z\"/></svg>'\nexport const title = \"interface-checked-small\"\nexport const tags = \"nordicon interface checked small symbol checkmark done ready\"\n","export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M129.5 80.5h-119a10.5 10.5 0 0 1 0-21h119a10.5 10.5 0 0 1 0 21z\"/></svg>'\nexport const title = \"interface-remove-small\"\nexport const tags = \"nordicon interface remove small delete erase minimize line\"\n","import { html, LitElement } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { ifDefined } from \"lit/directives/if-defined.js\"\nimport { ref } from \"lit/directives/ref.js\"\nimport * as checkedIcon from \"@nordhealth/icons/lib/assets/interface-checked-small.js\"\nimport * as indeterminateIcon from \"@nordhealth/icons/lib/assets/interface-remove-small.js\"\n\nimport Icon from \"../icon/Icon.js\"\nimport { FocusableMixin } from \"../common/mixins/FocusableMixin.js\"\nimport { FormAssociatedMixin } from \"../common/mixins/FormAssociatedMixin.js\"\nimport { InputMixin } from \"../common/mixins/InputMixin.js\"\nimport { SizeMixin, iconSizeMap } from \"../common/mixins/SizeMixin.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport formFieldStyle from \"../common/styles/FormField.css\"\nimport style from \"./Checkbox.css\"\n\nIcon.registerIcon(checkedIcon)\nIcon.registerIcon(indeterminateIcon)\n\n/**\n * Checkboxes allow user to choose one or more options from a limited set of options.\n * If you have more than 10 options, please use Select component instead.\n *\n * @status ready\n * @category form\n * @slot label - Use when a label requires more than plain text.\n * @slot hint - Optional slot that holds hint text for the input.\n * @slot error - Optional slot that holds error text for the input.\n */\n@customElement(\"nord-checkbox\")\nexport default class Checkbox extends SizeMixin(FormAssociatedMixin(InputMixin(FocusableMixin(LitElement)))) {\n static styles = [componentStyle, formFieldStyle, style]\n\n protected override get formValue() {\n return this.checked ? this.value || \"on\" : undefined\n }\n\n /**\n * Controls whether the checkbox is in an indeterminate state.\n */\n @property({ type: Boolean }) indeterminate = false\n\n /**\n * Controls whether the checkbox is checked or not.\n */\n @property({ type: Boolean }) checked: boolean = false\n\n render() {\n const iconSize = iconSizeMap[this.size] || iconSizeMap.m\n\n return html`\n <div class=\"n-flex\">\n <div class=\"n-input-container\">\n <input\n ${ref(this.focusableRef)}\n class=\"n-input\"\n id=${this.inputId}\n type=\"checkbox\"\n name=${ifDefined(this.name)}\n .value=${this.value}\n .checked=${this.checked}\n .indeterminate=${this.indeterminate}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-describedby=${ifDefined(this.getDescribedBy())}\n aria-invalid=${ifDefined(this.getInvalid())}\n @change=${this.handleChange}\n />\n <nord-icon class=\"icon-checked\" name=\"interface-checked-small\" size=${iconSize}></nord-icon>\n <nord-icon class=\"icon-indeterminate\" name=\"interface-remove-small\" size=${iconSize}></nord-icon>\n </div>\n <div class=\"n-expand\">${this.renderLabel()} ${this.renderError()}</div>\n </div>\n `\n }\n\n protected handleChange(e: Event): void {\n const target = e.target as HTMLInputElement\n this.checked = target.checked\n super.handleChange(e)\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-checkbox\": Checkbox\n }\n}\n"],"names":["Icon","registerIcon","checkedIcon","indeterminateIcon","Checkbox","SizeMixin","FormAssociatedMixin","InputMixin","FocusableMixin","LitElement","constructor","this","indeterminate","checked","formValue","value","undefined","render","iconSize","iconSizeMap","size","m","html","ref","focusableRef","inputId","ifDefined","name","disabled","required","getDescribedBy","getInvalid","handleChange","renderLabel","renderError","e","target","super","styles","componentStyle","formFieldStyle","style","__decorate","property","type","Boolean","prototype","customElement"],"mappings":"w1BAAe,6VACM,+BACD,6GCFL,4KACM,8BACD,
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../icons/lib/assets/interface-checked-small.js","../../icons/lib/assets/interface-remove-small.js","../src/checkbox/Checkbox.ts"],"sourcesContent":["export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M41.86 131.25a23.982 23.982 0 0 1-18.494-8.666L2.254 95.746a10.5 10.5 0 1 1 16.492-12.992l21 26.6a2.24 2.24 0 0 0 2.212.882 3.038 3.038 0 0 0 2.38-1.148l76.958-96.39a10.5 10.5 0 1 1 16.408 13.104L60.606 122.29A24.038 24.038 0 0 1 42 131.25z\"/></svg>'\nexport const title = \"interface-checked-small\"\nexport const tags = \"nordicon interface checked small symbol checkmark done ready\"\n","export default '<svg viewBox=\"0 0 140 140\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M129.5 80.5h-119a10.5 10.5 0 0 1 0-21h119a10.5 10.5 0 0 1 0 21z\"/></svg>'\nexport const title = \"interface-remove-small\"\nexport const tags = \"nordicon interface remove small delete erase minimize line\"\n","import { html, LitElement } from \"lit\"\nimport { customElement, property } from \"lit/decorators.js\"\nimport { ifDefined } from \"lit/directives/if-defined.js\"\nimport { ref } from \"lit/directives/ref.js\"\nimport * as checkedIcon from \"@nordhealth/icons/lib/assets/interface-checked-small.js\"\nimport * as indeterminateIcon from \"@nordhealth/icons/lib/assets/interface-remove-small.js\"\n\nimport Icon from \"../icon/Icon.js\"\nimport { FocusableMixin } from \"../common/mixins/FocusableMixin.js\"\nimport { FormAssociatedMixin } from \"../common/mixins/FormAssociatedMixin.js\"\nimport { InputMixin } from \"../common/mixins/InputMixin.js\"\nimport { SizeMixin, iconSizeMap } from \"../common/mixins/SizeMixin.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport formFieldStyle from \"../common/styles/FormField.css\"\nimport style from \"./Checkbox.css\"\n\nIcon.registerIcon(checkedIcon)\nIcon.registerIcon(indeterminateIcon)\n\n/**\n * Checkboxes allow user to choose one or more options from a limited set of options.\n * If you have more than 10 options, please use Select component instead.\n *\n * @status ready\n * @category form\n * @slot label - Use when a label requires more than plain text.\n * @slot hint - Optional slot that holds hint text for the input.\n * @slot error - Optional slot that holds error text for the input.\n */\n@customElement(\"nord-checkbox\")\nexport default class Checkbox extends SizeMixin(FormAssociatedMixin(InputMixin(FocusableMixin(LitElement)))) {\n static styles = [componentStyle, formFieldStyle, style]\n\n protected override get formValue() {\n return this.checked ? this.value || \"on\" : undefined\n }\n\n /**\n * Controls whether the checkbox is in an indeterminate state.\n */\n @property({ type: Boolean }) indeterminate = false\n\n /**\n * Controls whether the checkbox is checked or not.\n */\n @property({ type: Boolean }) checked: boolean = false\n\n render() {\n const iconSize = iconSizeMap[this.size] || iconSizeMap.m\n\n return html`\n <div class=\"n-flex\">\n <div class=\"n-input-container\">\n <input\n ${ref(this.focusableRef)}\n class=\"n-input\"\n id=${this.inputId}\n type=\"checkbox\"\n name=${ifDefined(this.name)}\n .value=${this.value}\n .checked=${this.checked}\n .indeterminate=${this.indeterminate}\n ?disabled=${this.disabled}\n ?required=${this.required}\n aria-describedby=${ifDefined(this.getDescribedBy())}\n aria-invalid=${ifDefined(this.getInvalid())}\n @change=${this.handleChange}\n />\n <nord-icon class=\"icon-checked\" name=\"interface-checked-small\" size=${iconSize}></nord-icon>\n <nord-icon class=\"icon-indeterminate\" name=\"interface-remove-small\" size=${iconSize}></nord-icon>\n </div>\n <div class=\"n-expand\">${this.renderLabel()} ${this.renderError()}</div>\n </div>\n `\n }\n\n protected handleChange(e: Event): void {\n const target = e.target as HTMLInputElement\n this.checked = target.checked\n super.handleChange(e)\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-checkbox\": Checkbox\n }\n}\n"],"names":["Icon","registerIcon","checkedIcon","indeterminateIcon","Checkbox","SizeMixin","FormAssociatedMixin","InputMixin","FocusableMixin","LitElement","constructor","this","indeterminate","checked","formValue","value","undefined","render","iconSize","iconSizeMap","size","m","html","ref","focusableRef","inputId","ifDefined","name","disabled","required","getDescribedBy","getInvalid","handleChange","renderLabel","renderError","e","target","super","styles","componentStyle","formFieldStyle","style","__decorate","property","type","Boolean","prototype","customElement"],"mappings":"w1BAAe,6VACM,+BACD,6GCFL,4KACM,8BACD,+mECepBA,EAAKC,aAAaC,GAClBF,EAAKC,aAAaE,GAalB,IAAqBC,EAArB,cAAsCC,EAAUC,EAAoBC,EAAWC,EAAeC,OAA9FC,kCAU+BC,KAAaC,eAAG,EAKhBD,KAAOE,SAAY,CAoCjD,CAhDwBC,gBACrB,OAAOH,KAAKE,QAAUF,KAAKI,OAAS,UAAOC,CAC5C,CAYDC,SACE,MAAMC,EAAWC,EAAYR,KAAKS,OAASD,EAAYE,EAEvD,OAAOC,CAAI,6DAIDC,EAAIZ,KAAKa,qCAENb,KAAKc,kCAEHC,EAAUf,KAAKgB,kBACbhB,KAAKI,oBACHJ,KAAKE,4BACCF,KAAKC,6BACVD,KAAKiB,wBACLjB,KAAKkB,+BACEH,EAAUf,KAAKmB,oCACnBJ,EAAUf,KAAKoB,2BACpBpB,KAAKqB,sFAEqDd,4FACKA,8CAErDP,KAAKsB,iBAAiBtB,KAAKuB,2BAGxD,CAESF,aAAaG,GACrB,MAAMC,EAASD,EAAEC,OACjBzB,KAAKE,QAAUuB,EAAOvB,QACtBwB,MAAML,aAAaG,EACpB,GAjDM/B,EAAMkC,OAAG,CAACC,EAAgBC,EAAgBC,GASpBC,EAAA,CAA5BC,EAAS,CAAEC,KAAMC,WAAgCzC,EAAA0C,UAAA,qBAAA,GAKrBJ,EAAA,CAA5BC,EAAS,CAAEC,KAAMC,WAAmCzC,EAAA0C,UAAA,eAAA,GAflC1C,EAAQsC,EAAA,CAD5BK,EAAc,kBACM3C,SAAAA"}
|
package/lib/Layout.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as e,e as n}from"./query-assigned-elements-e6cbac30.js";import{i as t,s as a,y as i,b as o}from"./lit-element-9178eae5.js";import{e as s}from"./property-03f59dce.js";import{t as r}from"./state-70f38ceb.js";import{i as d}from"./query-2d22378e.js";import{o as l}from"./class-map-949b7d3b.js";import{D as h}from"./DirectionController-8b298382.js";import{E as c}from"./EventController-d99ebeef.js";import{L as p}from"./LightDismissController-a2645ae6.js";import{S as v}from"./SlotController-89834aef.js";import{o as u}from"./observe-a9c6dfb6.js";import{c as g}from"./cond-338158e9.js";import{f as m}from"./fsm-50373df9.js";import{c as b}from"./number-c3ab3e95.js";import"./NavToggle.js";import{s as y}from"./Component-92eb6234.js";import"./directive-de55b00a.js";import"./ShortcutController-87615e31.js";import"./tinykeys.module-84e6cc41.js";import"./ref-0e619221.js";import"./LocalizeController.js";import"./translation.js";import"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";import"./localization5.js";import"./DraftComponentMixin-9e4b7b34.js";import"./FocusableMixin-34870ed3.js";import"./Button.js";import"./LightDomController-3c726b20.js";import"./Spinner.js";import"./if-defined-4598a996.js";import"./InputMixin-158f63fb.js";import"./Icon.js";import"./VisuallyHidden.js";const k=t`:host{--_n-layout-padding:var(--n-layout-padding, var(--n-space-l));--_n-layout-drawer-inline-size:var(--n-layout-drawer-inline-size, 320px);--_n-layout-background-color:var(--n-layout-background-color, var(--n-color-background));--_n-layout-nav-transition-duration:var(--n-transition-mobile);background:var(--_n-layout-background-color);color:var(--n-color-text)}.n-layout-main,.n-layout-nav{background:var(--_n-layout-background-color);min-block-size:100%}.n-layout-nav{position:fixed;user-select:none;inline-size:var(--_n-layout-nav-width);z-index:var(--n-index-nav);inset-block-start:0;inset-inline-start:0;inset-block-end:0;transform:translateX(var(--n-nav-transform));box-shadow:var(--n-box-shadow-nav)}.n-layout-main{position:relative}main{padding:var(--_n-layout-padding)}aside{position:fixed;z-index:var(--n-index-nav);inset-block:0;inset-inline-end:0;inline-size:var(--_n-layout-drawer-inline-size);max-inline-size:100%;background:var(--n-color-surface);box-shadow:var(--n-box-shadow-nav)}@media (min-width:1240px){.n-has-drawer{margin-inline-end:var(--_n-layout-drawer-inline-size)}aside{box-shadow:var(--n-box-shadow-header);border-inline-start:1px solid var(--n-color-border)}}slot[name=drawer]::slotted(*){block-size:100%!important}:is([data-nav=closed],[data-nav=unpeek]) .n-layout-nav{transform:translateX(-110%)}.n-rtl:is([data-nav=closed],[data-nav=unpeek]) .n-layout-nav{transform:translateX(110%)}[data-screen=narrow] .n-layout-nav{transition:transform var(--_n-layout-nav-transition-duration)}[data-screen=wide]:is([data-nav=peek],[data-nav=wait],[data-nav=unpeek],[data-nav=blocked]) .n-layout-nav{transition:transform var(--_n-layout-nav-transition-duration);border-start-end-radius:var(--n-border-radius);border-end-end-radius:var(--n-border-radius);min-block-size:0;inset-block-start:calc(var(--n-space-m) * 4);inset-block-end:var(--n-space-l)}[data-screen=wide][data-nav=opened] .n-layout-nav{border-inline-end:1px solid var(--n-color-border);box-shadow:none}[data-screen=wide][data-nav=opened] .n-layout-main{margin-inline-start:var(--_n-layout-nav-width)}.n-resize{touch-action:none;position:absolute;min-block-size:100%;inset-block:0;inset-inline-end:-8px;inline-size:10px;background:0 0}[data-nav=opened] .n-resize{cursor:col-resize}.n-resize::after{content:"";position:absolute;z-index:var(--n-index-sticky);inset-block:0;inset-inline-end:5px;inline-size:3px;background:var(--n-color-accent);transition:opacity var(--n-transition-slowly);opacity:0}.n-resize:focus{outline:0}.n-dragging .n-resize::after,.n-resize:focus::after,[data-nav=opened] .n-resize:hover::after{opacity:1;transition-delay:.15s}@supports selector(:focus-visible){.n-resize:focus::after{opacity:0}.n-resize:focus-visible::after{opacity:1}}.n-dragging{cursor:col-resize!important;-webkit-user-select:none;user-select:none}:host([padding=none]){--_n-layout-padding:var(--n-layout-padding, 0)}.n-nav-toggle-container{position:absolute;padding:var(--n-space-m) var(--n-space-l);min-block-size:calc(var(--n-space-xxl) - var(--n-space-s)/ 2);display:flex;align-items:center}[data-screen=wide][data-nav=opened] .n-nav-toggle-container{display:none}:is([data-screen=wide]:not([data-nav=opened]),[data-screen=narrow]) .n-has-own-nav-toggle ::slotted(nord-header){--_n-header-gutter:calc(var(--n-space-l) * 3)}`,w=matchMedia("(min-width: 768px)"),f=function(e,n,t=JSON.stringify,a=JSON.parse){return{get value(){try{const t=localStorage.getItem(e);return t?a(t):n}catch(e){return n}},set value(n){try{localStorage.setItem(e,t(n))}catch(e){}}}}("nord-layout.navWidth",250),T=m({opened:{toggle:"closed",close:"closed"},closed:{toggle:"opened",open:"opened",focusin:"peek",pointerenter:"peek"},peek:{toggle:"opened",focusout:"unpeek",pointerleave:"wait",dropdownOpen:"blocked",click:"unpeek",open:"opened"},blocked:{dropdownClose:"peek",open:"opened"},wait:{toggle:"opened",focusin:"peek",pointerenter:"peek",timeout:"unpeek"},unpeek:{toggle:"opened",focusin:"peek",pointerenter:"peek",transitionend:"closed"}});let j=class extends a{constructor(){super(...arguments),this.navSlot=new v(this,"nav"),this.drawerSlot=new v(this,"drawer"),this.direction=new h(this),this.events=new c(this),this.lightDismiss=new p(this,{isOpen:()=>"opened"===this.navState&&!this.wideScreen,onDismiss:()=>this.navTransition("close"),isDismissible:e=>e!==this.navEl}),this.navWidth=f.value,this.isDragging=!1,this.navState=w.matches?"opened":"closed",this.wideScreen=w.matches,this.navOpen="opened"===this.navState,this.padding="m",this.handleMediaQueryChange=()=>{this.wideScreen=w.matches,this.navTransition(this.wideScreen?"open":"close")},this.handleToggleClick=()=>{this.navTransition("toggle")},this.handleNavFocus=()=>{this.navTransition("focusin")},this.handleMainFocus=()=>{this.navTransition("focusout")},this.handleMouseEnter=()=>{this.wideScreen&&this.navTransition("pointerenter")},this.handleMouseLeave=()=>{this.navTransition("pointerleave")},this.handleTransitionEnd=()=>{this.navTransition("transitionend")}}connectedCallback(){super.connectedCallback(),this.events.listen(w,"change",this.handleMediaQueryChange),this.events.listen(this,"click",(e=>{this.isNavToggle(e.target)&&this.handleToggleClick()})),this.events.listen(this,"mouseover",(e=>{this.isNavToggle(e.target)&&this.handleMouseEnter()})),this.events.listen(this,"mouseout",(e=>{this.isNavToggle(e.target)&&this.handleMouseLeave()}))}render(){const{navWidth:e,navState:n,navSlot:t,isDragging:a,direction:s}=this,r="opened"===n&&this.wideScreen?e:250,d=t.hasContent&&!this.navToggle;return i`<div class="${l({"n-layout":!0,"n-rtl":s.isRTL,"n-dragging":a})}" style="${`--_n-layout-nav-width: ${r}px`}" data-nav="${t.hasContent?n:"closed"}" data-screen="${this.wideScreen?"wide":"narrow"}"><div class="n-layout-nav" ?hidden="${t.isEmpty}" @focusin="${this.handleNavFocus}" @mouseenter="${this.handleMouseEnter}" @mouseleave="${this.handleMouseLeave}" @open="${this.handleDropdownOpen}" @close="${this.handleDropdownClose}"><slot name="nav"></slot><div class="n-resize" role="separator" aria-orientation="vertical" tabindex="0" @pointerdown="${g("opened"===n,this.startDragging)}" @pointermove="${g(a,this.handleDrag)}" @pointerleave="${this.stopDragging}" @pointerup="${this.stopDragging}" @keydown="${this.handleKeyboardResize}"></div></div><div class="${l({"n-layout-main":!0,"n-has-own-nav-toggle":d})}" @focusin="${this.handleMainFocus}" @click="${this.handleClick}">${d?this.renderNavToggle():o}<div class="${l({"n-has-drawer":this.drawerSlot.hasContent})}"><slot name="header"></slot><main><slot></slot></main></div><aside ?hidden="${this.drawerSlot.isEmpty}"><slot name="drawer"></slot></aside></div></div>`}renderNavToggle(){return i`<div class="n-nav-toggle-container"><slot name="nav-toggle" @click="${this.handleToggleClick}" @mouseover="${this.handleMouseEnter}" @mouseout="${this.handleMouseLeave}"><nord-nav-toggle></nord-nav-toggle></slot></div>`}handleNavWidthChange(){f.value=this.navWidth}handleNavStateChange(e){switch("wait"===e&&this.peekTimeoutId&&clearTimeout(this.peekTimeoutId),"unpeek"===e&&this.navEl.removeEventListener("transitionend",this.handleTransitionEnd),this.navState){case"closed":this.navOpen=!1;break;case"opened":this.navOpen=!0;break;case"wait":this.peekTimeoutId=setTimeout((()=>this.navTransition("timeout")),300);break;case"unpeek":this.navEl.addEventListener("transitionend",this.handleTransitionEnd,{once:!0})}}handleOpenChange(){this.isDragging||this.setNavWidth(Math.max(this.navWidth,250)),this.navTransition(this.navOpen?"open":"close")}navTransition(e){this.navState=T.transition(this.navState,e)}handleClick(){this.navTransition("click")}handleDropdownOpen(e){"nord-dropdown"===e.target.localName&&this.navTransition("dropdownOpen")}handleDropdownClose(e){"nord-dropdown"===e.target.localName&&this.navTransition("dropdownClose")}isNavToggle(e){return Boolean(this.navToggle)&&(null!=(n=e)&&n.nodeType===Node.ELEMENT_NODE)&&e.id===this.navToggle;var n}handleKeyboardResize(e){const{navWidth:n,direction:{isLTR:t}}=this;switch(e.key){case"ArrowLeft":this.setNavWidth(n+(t?-30:30));break;case"ArrowRight":this.setNavWidth(n+(t?30:-30));break;case"Enter":this.navTransition("toggle");break;case"Home":this.setNavWidth(220);break;case"End":this.setNavWidth(400);break;default:return}e.preventDefault()}setNavWidth(e){this.navWidth=b(Math.round(e),220,400)}startDragging(e){if(0===e.button){e.target.setPointerCapture(e.pointerId),this.isDragging=!0}}stopDragging(){this.isDragging=!1}handleDrag(e){const n=this.direction.isRTL?this.clientWidth-e.clientX:e.clientX;this.setNavWidth(n),this.navTransition(n>=100?"open":"close")}};j.styles=[y,k],e([d(".n-layout-nav",!0)],j.prototype,"navEl",void 0),e([r()],j.prototype,"navWidth",void 0),e([r()],j.prototype,"isDragging",void 0),e([r()],j.prototype,"navState",void 0),e([r()],j.prototype,"wideScreen",void 0),e([s({reflect:!0,type:Boolean,attribute:"nav-open"})],j.prototype,"navOpen",void 0),e([s({attribute:"nav-toggle"})],j.prototype,"navToggle",void 0),e([s({reflect:!0})],j.prototype,"padding",void 0),e([u("navWidth","updated")],j.prototype,"handleNavWidthChange",null),e([u("navState")],j.prototype,"handleNavStateChange",null),e([u("navOpen","updated")],j.prototype,"handleOpenChange",null),j=e([n("nord-layout")],j);var x=j;export{x as default};
|
|
1
|
+
import{_ as e,e as n}from"./query-assigned-elements-e6cbac30.js";import{i as t,s as i,y as a,b as o}from"./lit-element-9178eae5.js";import{e as s}from"./property-03f59dce.js";import{t as r}from"./state-70f38ceb.js";import{i as d}from"./query-2d22378e.js";import{o as l}from"./class-map-949b7d3b.js";import{i as c}from"./style-map-2fe03b77.js";import{D as h}from"./DirectionController-8b298382.js";import{E as p}from"./EventController-d99ebeef.js";import{L as v}from"./LightDismissController-a2645ae6.js";import{S as u}from"./SlotController-89834aef.js";import{o as g}from"./observe-a9c6dfb6.js";import{c as m}from"./cond-338158e9.js";import{f as y}from"./fsm-50373df9.js";import{c as b}from"./number-c3ab3e95.js";import"./NavToggle.js";import{s as k}from"./Component-92eb6234.js";import{s as f}from"./Sticky-991acfdd.js";import"./directive-de55b00a.js";import"./ShortcutController-87615e31.js";import"./tinykeys.module-84e6cc41.js";import"./ref-0e619221.js";import"./LocalizeController.js";import"./translation.js";import"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";import"./localization5.js";import"./DraftComponentMixin-9e4b7b34.js";import"./FocusableMixin-34870ed3.js";import"./Button.js";import"./LightDomController-3c726b20.js";import"./Spinner.js";import"./if-defined-4598a996.js";import"./InputMixin-158f63fb.js";import"./Icon.js";import"./VisuallyHidden.js";const w=t`:host{--_n-layout-padding:var(--n-layout-padding, var(--n-space-l));--_n-layout-drawer-inline-size:var(--n-layout-drawer-inline-size, 320px);--_n-layout-background-color:var(--n-layout-background-color, var(--n-color-background));--_n-layout-nav-transition-duration:var(--n-transition-mobile);background:var(--_n-layout-background-color);color:var(--n-color-text)}.n-layout-main,.n-layout-nav{background:var(--_n-layout-background-color);min-block-size:100%}.n-layout-nav{position:fixed;user-select:none;inline-size:var(--_n-layout-nav-width);z-index:var(--n-index-nav);inset-block-start:0;inset-inline-start:0;inset-block-end:0;transform:translateX(var(--n-nav-transform));box-shadow:var(--n-box-shadow-nav)}.n-layout-main{position:relative}main{padding:var(--_n-layout-padding)}aside{position:fixed;z-index:var(--n-index-nav);inset-block:0;inset-inline-end:0;inline-size:var(--_n-layout-drawer-inline-size);max-inline-size:100%;background:var(--n-color-surface);box-shadow:var(--n-box-shadow-nav)}@media (min-width:1240px){.n-has-drawer{margin-inline-end:var(--_n-layout-drawer-inline-size)}aside{box-shadow:var(--n-box-shadow-header);border-inline-start:1px solid var(--n-color-border)}}slot[name=drawer]::slotted(*){block-size:100%!important}:is([data-nav=closed],[data-nav=unpeek]) .n-layout-nav{transform:translateX(-110%)}.n-rtl:is([data-nav=closed],[data-nav=unpeek]) .n-layout-nav{transform:translateX(110%)}[data-screen=narrow] .n-layout-nav{z-index:var(--n-index-popout);transition:transform var(--_n-layout-nav-transition-duration)}[data-screen=wide]:is([data-nav=peek],[data-nav=wait],[data-nav=unpeek],[data-nav=blocked]) .n-layout-nav{transition:transform var(--_n-layout-nav-transition-duration);border-start-end-radius:var(--n-border-radius);border-end-end-radius:var(--n-border-radius);min-block-size:0;inset-block-start:calc(var(--n-space-m) * 4);inset-block-end:var(--n-space-l)}[data-screen=wide][data-nav=opened] .n-layout-nav{border-inline-end:1px solid var(--n-color-border);box-shadow:none}[data-screen=wide]:not([data-nav=opened]) .n-layout-nav{overflow:hidden}[data-screen=wide][data-nav=opened] .n-layout-main{margin-inline-start:var(--_n-layout-nav-width)}[data-screen=narrow] .n-layout-main::after{content:"";position:fixed;inset:0;z-index:var(--n-index-overlay);transition:opacity var(--n-transition-mobile),visibility var(--n-transition-mobile);background:var(--n-color-overlay)}[data-screen=narrow]:not([data-nav=opened],[data-nav=peek]) .n-layout-main::after{visibility:hidden;opacity:0}.n-resize{touch-action:none;position:absolute;min-block-size:100%;inset-block:0;inset-inline-end:-8px;inline-size:10px;background:0 0}[data-nav=opened] .n-resize{cursor:col-resize}.n-resize::after{content:"";position:absolute;z-index:var(--n-index-sticky);inset-block:0;inset-inline-end:5px;inline-size:3px;background:var(--n-color-accent);transition:opacity var(--n-transition-slowly);opacity:0}.n-resize:focus{outline:0}.n-dragging .n-resize::after,.n-resize:focus::after,[data-nav=opened] .n-resize:hover::after{opacity:1;transition-delay:.15s}@supports selector(:focus-visible){.n-resize:focus::after{opacity:0}.n-resize:focus-visible::after{opacity:1}}.n-dragging{cursor:col-resize!important;-webkit-user-select:none;user-select:none}:host([padding=none]){--_n-layout-padding:var(--n-layout-padding, 0)}.n-nav-toggle-container{position:absolute;padding:var(--n-space-m) var(--n-space-l);min-block-size:calc(var(--n-space-xxl) - var(--n-space-s)/ 2);display:flex;align-items:center}[data-screen=wide][data-nav=opened] .n-nav-toggle-container{display:none}:is([data-screen=wide]:not([data-nav=opened]),[data-screen=narrow]) .n-has-own-nav-toggle ::slotted(nord-header){--_n-header-gutter:calc(var(--n-space-l) * 3)}`,z=matchMedia("(min-width: 768px)"),x=function(e,n,t=JSON.stringify,i=JSON.parse){return{get value(){try{const t=localStorage.getItem(e);return t?i(t):n}catch(e){return n}},set value(n){try{localStorage.setItem(e,t(n))}catch(e){}}}}("nord-layout.navWidth",250),S=y({opened:{toggle:"closed",close:"closed"},closed:{toggle:"opened",open:"opened",focusin:"peek",pointerenter:"peek"},peek:{toggle:"opened",focusout:"unpeek",pointerleave:"wait",dropdownOpen:"blocked",click:"unpeek",open:"opened"},blocked:{dropdownClose:"peek",open:"opened"},wait:{toggle:"opened",focusin:"peek",pointerenter:"peek",timeout:"unpeek"},unpeek:{toggle:"opened",focusin:"peek",pointerenter:"peek",transitionend:"closed"}});let T=class extends i{constructor(){super(...arguments),this.resizeObserver=new ResizeObserver((e=>{this.stickySize=Math.round(e[0].borderBoxSize[0].blockSize)})),this.navSlot=new u(this,"nav"),this.drawerSlot=new u(this,"drawer"),this.direction=new h(this),this.events=new p(this),this.lightDismiss=new v(this,{isOpen:()=>"opened"===this.navState&&!this.wideScreen,onDismiss:()=>this.navTransition("close"),isDismissible:e=>e!==this.navEl}),this.navWidth=x.value,this.isDragging=!1,this.navState=z.matches?"opened":"closed",this.wideScreen=z.matches,this.stickySize=0,this.navOpen="opened"===this.navState,this.padding="m",this.sticky=!1,this.handleMediaQueryChange=()=>{this.wideScreen=z.matches,this.navTransition(this.wideScreen?"open":"close")},this.handleToggleClick=()=>{this.navTransition("toggle")},this.handleNavFocus=()=>{this.navTransition("focusin")},this.handleMainFocus=()=>{this.navTransition("focusout")},this.handleMouseEnter=()=>{this.wideScreen&&this.navTransition("pointerenter")},this.handleMouseLeave=()=>{this.navTransition("pointerleave")},this.handleTransitionEnd=()=>{this.navTransition("transitionend")}}connectedCallback(){super.connectedCallback(),this.events.listen(z,"change",this.handleMediaQueryChange),this.events.listen(this,"click",(e=>{this.isNavToggle(e.target)&&this.handleToggleClick()})),this.events.listen(this,"mouseover",(e=>{this.isNavToggle(e.target)&&this.handleMouseEnter()})),this.events.listen(this,"mouseout",(e=>{this.isNavToggle(e.target)&&this.handleMouseLeave()}))}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver.disconnect()}render(){const{navWidth:e,navState:n,navSlot:t,isDragging:i,direction:s}=this,r="opened"===n&&this.wideScreen?e:250,d=t.hasContent&&!this.navToggle;return a`<div class="${l({"n-layout":!0,"n-rtl":s.isRTL,"n-dragging":i})}" style="${c({"--_n-layout-nav-width":`${r}px`,"--_n-sticky-size":"number"==typeof this.stickySize?`${this.stickySize}px`:null})}" data-nav="${t.hasContent?n:"closed"}" data-screen="${this.wideScreen?"wide":"narrow"}"><div class="n-layout-nav" ?hidden="${t.isEmpty}" @focusin="${this.handleNavFocus}" @mouseenter="${this.handleMouseEnter}" @mouseleave="${this.handleMouseLeave}" @open="${this.handleDropdownOpen}" @close="${this.handleDropdownClose}"><slot name="nav"></slot><div class="n-resize" role="separator" aria-orientation="vertical" tabindex="0" @pointerdown="${m("opened"===n,this.startDragging)}" @pointermove="${m(i,this.handleDrag)}" @pointerleave="${this.stopDragging}" @pointerup="${this.stopDragging}" @keydown="${this.handleKeyboardResize}"></div></div><div class="${l({"n-layout-main":!0,"n-has-own-nav-toggle":d})}" @focusin="${this.handleMainFocus}" @click="${this.handleClick}"><div class="${l({"n-has-drawer":this.drawerSlot.hasContent})}"><div class="n-layout-header n-sticky">${d?this.renderNavToggle():o}<slot name="header"></slot></div><main><slot></slot></main></div><aside ?hidden="${this.drawerSlot.isEmpty}"><slot name="drawer"></slot></aside></div></div>`}renderNavToggle(){return a`<div class="n-nav-toggle-container"><slot name="nav-toggle" @click="${this.handleToggleClick}" @mouseover="${this.handleMouseEnter}" @mouseout="${this.handleMouseLeave}"><nord-nav-toggle></nord-nav-toggle></slot></div>`}handleStickyChange(e){!0===this.sticky?this.resizeObserver.observe(this.stickyElement,{box:"border-box"}):!0===e&&!1===this.sticky&&(this.resizeObserver.unobserve(this.stickyElement),this.stickySize=null)}handleNavWidthChange(){x.value=this.navWidth}handleNavStateChange(e){switch("wait"===e&&this.peekTimeoutId&&clearTimeout(this.peekTimeoutId),"unpeek"===e&&this.navEl.removeEventListener("transitionend",this.handleTransitionEnd),this.navState){case"closed":this.navOpen=!1;break;case"opened":this.navOpen=!0;break;case"wait":this.peekTimeoutId=setTimeout((()=>this.navTransition("timeout")),300);break;case"unpeek":this.navEl.addEventListener("transitionend",this.handleTransitionEnd,{once:!0})}}handleOpenChange(){this.isDragging||this.setNavWidth(Math.max(this.navWidth,250)),this.navTransition(this.navOpen?"open":"close")}navTransition(e){this.navState=S.transition(this.navState,e)}handleClick(){this.navTransition("click")}handleDropdownOpen(e){"nord-dropdown"===e.target.localName&&this.navTransition("dropdownOpen")}handleDropdownClose(e){"nord-dropdown"===e.target.localName&&this.navTransition("dropdownClose")}isNavToggle(e){return Boolean(this.navToggle)&&(null!=(n=e)&&n.nodeType===Node.ELEMENT_NODE)&&e.id===this.navToggle;var n}handleKeyboardResize(e){const{navWidth:n,direction:{isLTR:t}}=this;switch(e.key){case"ArrowLeft":this.setNavWidth(n+(t?-30:30));break;case"ArrowRight":this.setNavWidth(n+(t?30:-30));break;case"Enter":this.navTransition("toggle");break;case"Home":this.setNavWidth(220);break;case"End":this.setNavWidth(400);break;default:return}e.preventDefault()}setNavWidth(e){this.navWidth=b(Math.round(e),220,400)}startDragging(e){if(0===e.button){e.target.setPointerCapture(e.pointerId),this.isDragging=!0}}stopDragging(){this.isDragging=!1}handleDrag(e){const n=this.direction.isRTL?this.clientWidth-e.clientX:e.clientX;this.setNavWidth(n),this.navTransition(n>=100?"open":"close")}};T.styles=[k,f,w],e([d(".n-sticky",!0)],T.prototype,"stickyElement",void 0),e([d(".n-layout-nav",!0)],T.prototype,"navEl",void 0),e([r()],T.prototype,"navWidth",void 0),e([r()],T.prototype,"isDragging",void 0),e([r()],T.prototype,"navState",void 0),e([r()],T.prototype,"wideScreen",void 0),e([r()],T.prototype,"stickySize",void 0),e([s({reflect:!0,type:Boolean,attribute:"nav-open"})],T.prototype,"navOpen",void 0),e([s({attribute:"nav-toggle"})],T.prototype,"navToggle",void 0),e([s({reflect:!0})],T.prototype,"padding",void 0),e([s({type:Boolean,reflect:!0})],T.prototype,"sticky",void 0),e([g("sticky","updated")],T.prototype,"handleStickyChange",null),e([g("navWidth","updated")],T.prototype,"handleNavWidthChange",null),e([g("navState")],T.prototype,"handleNavStateChange",null),e([g("navOpen","updated")],T.prototype,"handleOpenChange",null),T=e([n("nord-layout")],T);var j=T;export{j as default};
|
|
2
2
|
//# sourceMappingURL=Layout.js.map
|
package/lib/Layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layout.js","sources":["../src/layout/Layout.ts","../src/common/storage.ts"],"sourcesContent":["/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { LitElement, html, nothing } from \"lit\"\nimport { customElement, property, query, state } from \"lit/decorators.js\"\nimport { classMap } from \"lit/directives/class-map.js\"\nimport { DirectionController } from \"../common/controllers/DirectionController.js\"\nimport { EventController } from \"../common/controllers/EventController.js\"\nimport { LightDismissController } from \"../common/controllers/LightDismissController.js\"\nimport { SlotController } from \"../common/controllers/SlotController.js\"\nimport { observe } from \"../common/decorators/observe.js\"\nimport { cond } from \"../common/directives/cond.js\"\nimport { Events, fsm, States } from \"../common/fsm.js\"\nimport { clamp } from \"../common/number.js\"\nimport { storage } from \"../common/storage.js\"\n\nimport \"../nav-toggle/NavToggle.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport style from \"./Layout.css\"\n\nconst NAV_DEFAULT_WIDTH = 250\nconst NAV_MIN_WIDTH = 220\nconst NAV_MAX_WIDTH = 400\nconst NAV_COLLAPSE_WIDTH = 100\nconst NAV_RESIZE_STEP = 30\nconst NAV_PEEK_DELAY = 300\n\nconst mediaQuery = matchMedia(\"(min-width: 768px)\")\nconst store = storage(\"nord-layout.navWidth\", NAV_DEFAULT_WIDTH)\n\nconst navMachine = fsm({\n opened: {\n toggle: \"closed\",\n close: \"closed\",\n },\n closed: {\n toggle: \"opened\",\n open: \"opened\",\n focusin: \"peek\",\n pointerenter: \"peek\",\n },\n peek: {\n toggle: \"opened\",\n focusout: \"unpeek\",\n pointerleave: \"wait\",\n dropdownOpen: \"blocked\",\n click: \"unpeek\",\n open: \"opened\",\n },\n blocked: {\n dropdownClose: \"peek\",\n open: \"opened\",\n },\n wait: {\n toggle: \"opened\",\n focusin: \"peek\",\n pointerenter: \"peek\",\n timeout: \"unpeek\",\n },\n unpeek: {\n toggle: \"opened\",\n focusin: \"peek\",\n pointerenter: \"peek\",\n transitionend: \"closed\",\n },\n})\n\ntype NavState = States<typeof navMachine>\ntype NavEvent = Events<typeof navMachine>\n\nfunction isElement(el: any): el is Element {\n return el != null && el.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * Layout component is used to create the main layout of an app. Layout\n * currently comes with one main configuration: two-column.\n *\n * @status ready\n * @category structure\n * @slot - The default main section content.\n * @slot nav - Used to place content inside the navigation sidebar.\n * @slot header - Used to place content inside the header section.\n * @slot drawer - Used to place additional content/details relating to a selected item.\n * @slot nav-toggle - Used to place a own nav-toggle component, for cases where you might need to add a tooltip.\n *\n * @cssprop [--n-layout-padding=var(--n-space-l)] - Controls the padding around the main layout area (the main slot), using our [spacing tokens](/tokens/#space).\n * @cssprop [--n-layout-drawer-inline-size=320px] - Controls the width of the drawer area, when used.\n * @cssprop [--n-layout-background-color=var(--n-color-background)] - Controls the background color of the layout, using [color tokens](/tokens/#color).\n */\n@customElement(\"nord-layout\")\nexport default class Layout extends LitElement {\n static styles = [componentStyle, style]\n\n private peekTimeoutId?: ReturnType<typeof setTimeout>\n\n private navSlot = new SlotController(this, \"nav\")\n private drawerSlot = new SlotController(this, \"drawer\")\n private direction = new DirectionController(this)\n private events = new EventController(this)\n private lightDismiss = new LightDismissController(this, {\n isOpen: () => this.navState === \"opened\" && !this.wideScreen,\n onDismiss: () => this.navTransition(\"close\"),\n isDismissible: node => node !== this.navEl,\n })\n\n @query(\".n-layout-nav\", true) private navEl!: HTMLDivElement\n\n @state() private navWidth = store.value\n @state() private isDragging = false\n @state() private navState: NavState = mediaQuery.matches ? \"opened\" : \"closed\"\n @state() private wideScreen = mediaQuery.matches\n\n /**\n * Controls whether the navigation is hidden off-screen or not.\n * Defaults to `true` for wide viewports, and `false` otherwise.\n */\n @property({ reflect: true, type: Boolean, attribute: \"nav-open\" }) navOpen: boolean = this.navState === \"opened\"\n\n /**\n * ID reference of element used to toggle the navigation.\n * This is deprecated, the layout component will now render its own nav toggle to simplify usage.\n * @deprecated\n */\n @property({ attribute: \"nav-toggle\" }) navToggle?: string\n\n /**\n * Controls the padding of the default main section slot. When set to “none”,\n * the nav and header slots will still have padding.\n */\n @property({ reflect: true }) padding: \"m\" | \"none\" = \"m\"\n\n connectedCallback(): void {\n super.connectedCallback()\n\n this.events.listen(mediaQuery, \"change\", this.handleMediaQueryChange)\n\n this.events.listen(this, \"click\", e => {\n if (this.isNavToggle(e.target)) {\n this.handleToggleClick()\n }\n })\n this.events.listen(this, \"mouseover\", e => {\n if (this.isNavToggle(e.target)) {\n this.handleMouseEnter()\n }\n })\n this.events.listen(this, \"mouseout\", e => {\n if (this.isNavToggle(e.target)) {\n this.handleMouseLeave()\n }\n })\n }\n\n render() {\n const { navWidth, navState, navSlot, isDragging, direction } = this\n const adjustedNavWidth = navState === \"opened\" && this.wideScreen ? navWidth : NAV_DEFAULT_WIDTH\n const shouldRenderOwnNavToggle = navSlot.hasContent && !this.navToggle\n\n return html`\n <div\n class=${classMap({\n \"n-layout\": true,\n \"n-rtl\": direction.isRTL,\n \"n-dragging\": isDragging,\n })}\n style=${`--_n-layout-nav-width: ${adjustedNavWidth}px`}\n data-nav=${navSlot.hasContent ? navState : \"closed\"}\n data-screen=${this.wideScreen ? \"wide\" : \"narrow\"}\n >\n <div\n class=\"n-layout-nav\"\n ?hidden=${navSlot.isEmpty}\n @focusin=${this.handleNavFocus}\n @mouseenter=${this.handleMouseEnter}\n @mouseleave=${this.handleMouseLeave}\n @open=${this.handleDropdownOpen}\n @close=${this.handleDropdownClose}\n >\n <slot name=\"nav\"></slot>\n <div\n class=\"n-resize\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n tabindex=\"0\"\n @pointerdown=${cond(navState === \"opened\", this.startDragging)}\n @pointermove=${cond(isDragging, this.handleDrag)}\n @pointerleave=${this.stopDragging}\n @pointerup=${this.stopDragging}\n @keydown=${this.handleKeyboardResize}\n ></div>\n </div>\n\n <div\n class=${classMap({ \"n-layout-main\": true, \"n-has-own-nav-toggle\": shouldRenderOwnNavToggle })}\n @focusin=${this.handleMainFocus}\n @click=${this.handleClick}\n >\n ${shouldRenderOwnNavToggle ? this.renderNavToggle() : nothing}\n <div class=${classMap({ \"n-has-drawer\": this.drawerSlot.hasContent })}>\n <slot name=\"header\"></slot>\n <main>\n <slot></slot>\n </main>\n </div>\n <aside ?hidden=${this.drawerSlot.isEmpty}>\n <slot name=\"drawer\"></slot>\n </aside>\n </div>\n </div>\n `\n }\n\n private renderNavToggle() {\n /* eslint-disable lit-a11y/mouse-events-have-key-events */\n return html`\n <div class=\"n-nav-toggle-container\">\n <slot\n name=\"nav-toggle\"\n @click=${this.handleToggleClick}\n @mouseover=${this.handleMouseEnter}\n @mouseout=${this.handleMouseLeave}\n >\n <nord-nav-toggle></nord-nav-toggle>\n </slot>\n </div>\n `\n /* eslint-enable lit-a11y/mouse-events-have-key-events */\n }\n\n @observe(\"navWidth\", \"updated\")\n protected handleNavWidthChange() {\n store.value = this.navWidth\n }\n\n @observe(\"navState\")\n protected handleNavStateChange(prev: NavState) {\n if (prev === \"wait\" && this.peekTimeoutId) {\n clearTimeout(this.peekTimeoutId)\n }\n if (prev === \"unpeek\") {\n this.navEl.removeEventListener(\"transitionend\", this.handleTransitionEnd)\n }\n\n switch (this.navState) {\n case \"closed\":\n this.navOpen = false\n break\n case \"opened\":\n this.navOpen = true\n break\n case \"wait\":\n this.peekTimeoutId = setTimeout(() => this.navTransition(\"timeout\"), NAV_PEEK_DELAY)\n break\n case \"unpeek\":\n this.navEl.addEventListener(\"transitionend\", this.handleTransitionEnd, { once: true })\n break\n default:\n break\n }\n }\n\n @observe(\"navOpen\", \"updated\")\n protected handleOpenChange() {\n if (!this.isDragging) {\n // when opening nav, it should restore to default width (or larger).\n // unless it is being dragged, in which case the drag width wins\n this.setNavWidth(Math.max(this.navWidth, NAV_DEFAULT_WIDTH))\n }\n\n this.navTransition(this.navOpen ? \"open\" : \"close\")\n }\n\n /* ---------------------------------------------\n / NAVIGATION OPEN/CLOSE LOGIC\n / --------------------------------------------- */\n\n private navTransition(event: NavEvent) {\n this.navState = navMachine.transition(this.navState, event)\n }\n\n private handleClick() {\n this.navTransition(\"click\")\n }\n\n private handleDropdownOpen(e: Event) {\n const target = e.target as Element\n\n if (target.localName === \"nord-dropdown\") {\n this.navTransition(\"dropdownOpen\")\n }\n }\n\n private handleDropdownClose(e: Event) {\n const target = e.target as Element\n\n if (target.localName === \"nord-dropdown\") {\n this.navTransition(\"dropdownClose\")\n }\n }\n\n private handleMediaQueryChange = () => {\n this.wideScreen = mediaQuery.matches\n this.navTransition(this.wideScreen ? \"open\" : \"close\")\n }\n\n private handleToggleClick = () => {\n this.navTransition(\"toggle\")\n }\n\n private handleNavFocus = () => {\n this.navTransition(\"focusin\")\n }\n\n private handleMainFocus = () => {\n this.navTransition(\"focusout\")\n }\n\n private handleMouseEnter = () => {\n if (this.wideScreen) {\n this.navTransition(\"pointerenter\")\n }\n }\n\n private handleMouseLeave = () => {\n this.navTransition(\"pointerleave\")\n }\n\n private handleTransitionEnd = () => {\n this.navTransition(\"transitionend\")\n }\n\n private isNavToggle(node: EventTarget | null) {\n return Boolean(this.navToggle) && isElement(node) && node.id === this.navToggle\n }\n\n /* ---------------------------------------------\n / RESIZE LOGIC\n / --------------------------------------------- */\n\n private handleKeyboardResize(e: KeyboardEvent) {\n const {\n navWidth,\n direction: { isLTR },\n } = this\n\n switch (e.key) {\n case \"ArrowLeft\":\n this.setNavWidth(navWidth + (isLTR ? -NAV_RESIZE_STEP : NAV_RESIZE_STEP))\n break\n case \"ArrowRight\":\n this.setNavWidth(navWidth + (isLTR ? NAV_RESIZE_STEP : -NAV_RESIZE_STEP))\n break\n case \"Enter\":\n this.navTransition(\"toggle\")\n break\n case \"Home\":\n this.setNavWidth(NAV_MIN_WIDTH)\n break\n case \"End\":\n this.setNavWidth(NAV_MAX_WIDTH)\n break\n default:\n return\n }\n\n e.preventDefault()\n }\n\n private setNavWidth(width: number) {\n this.navWidth = clamp(Math.round(width), NAV_MIN_WIDTH, NAV_MAX_WIDTH)\n }\n\n private startDragging(e: PointerEvent) {\n if (e.button === 0) {\n const target = e.target as Element\n target.setPointerCapture(e.pointerId)\n this.isDragging = true\n }\n }\n\n private stopDragging() {\n this.isDragging = false\n }\n\n private handleDrag(e: PointerEvent) {\n const width = this.direction.isRTL ? this.clientWidth - e.clientX : e.clientX\n\n this.setNavWidth(width)\n this.navTransition(width >= NAV_COLLAPSE_WIDTH ? \"open\" : \"close\")\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-layout\": Layout\n }\n}\n","/**\n * Thin wrapper around local storage which simplifies (de)serialization and default values.\n * By default, (de)serializes as JSON.\n */\nexport function storage<T>(\n key: string,\n defaultValue: T,\n serialize: (value: T) => string = JSON.stringify,\n deserialize: (value: string) => T = JSON.parse\n) {\n return {\n get value(): T {\n try {\n const value = localStorage.getItem(key)\n return value ? deserialize(value) : defaultValue\n } catch {\n return defaultValue\n }\n },\n\n set value(value: T) {\n try {\n localStorage.setItem(key, serialize(value))\n } catch {\n // nothing we can do here\n }\n },\n }\n}\n"],"names":["mediaQuery","matchMedia","store","key","defaultValue","serialize","JSON","stringify","deserialize","parse","value","localStorage","getItem","_a","setItem","storage","navMachine","fsm","opened","toggle","close","closed","open","focusin","pointerenter","peek","focusout","pointerleave","dropdownOpen","click","blocked","dropdownClose","wait","timeout","unpeek","transitionend","Layout","LitElement","constructor","this","navSlot","SlotController","drawerSlot","direction","DirectionController","events","EventController","lightDismiss","LightDismissController","isOpen","navState","wideScreen","onDismiss","navTransition","isDismissible","node","navEl","navWidth","isDragging","matches","navOpen","padding","handleMediaQueryChange","handleToggleClick","handleNavFocus","handleMainFocus","handleMouseEnter","handleMouseLeave","handleTransitionEnd","connectedCallback","super","listen","e","isNavToggle","target","render","adjustedNavWidth","shouldRenderOwnNavToggle","hasContent","navToggle","html","classMap","isRTL","isEmpty","handleDropdownOpen","handleDropdownClose","cond","startDragging","handleDrag","stopDragging","handleKeyboardResize","handleClick","renderNavToggle","nothing","handleNavWidthChange","handleNavStateChange","prev","peekTimeoutId","clearTimeout","removeEventListener","setTimeout","addEventListener","once","handleOpenChange","setNavWidth","Math","max","event","transition","localName","Boolean","el","nodeType","Node","ELEMENT_NODE","id","isLTR","preventDefault","width","clamp","round","button","setPointerCapture","pointerId","clientWidth","clientX","styles","componentStyle","style","__decorate","query","prototype","state","property","reflect","type","attribute","observe","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Layout.js","sources":["../src/layout/Layout.ts","../src/common/storage.ts"],"sourcesContent":["/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { LitElement, html, nothing } from \"lit\"\nimport { customElement, property, query, state } from \"lit/decorators.js\"\nimport { classMap } from \"lit/directives/class-map.js\"\nimport { styleMap } from \"lit/directives/style-map.js\"\nimport { DirectionController } from \"../common/controllers/DirectionController.js\"\nimport { EventController } from \"../common/controllers/EventController.js\"\nimport { LightDismissController } from \"../common/controllers/LightDismissController.js\"\nimport { SlotController } from \"../common/controllers/SlotController.js\"\nimport { observe } from \"../common/decorators/observe.js\"\nimport { cond } from \"../common/directives/cond.js\"\nimport { Events, fsm, States } from \"../common/fsm.js\"\nimport { clamp } from \"../common/number.js\"\nimport { storage } from \"../common/storage.js\"\n\nimport \"../nav-toggle/NavToggle.js\"\n\nimport componentStyle from \"../common/styles/Component.css\"\nimport stickyStyle from \"../common/styles/Sticky.css\"\nimport style from \"./Layout.css\"\n\nconst NAV_DEFAULT_WIDTH = 250\nconst NAV_MIN_WIDTH = 220\nconst NAV_MAX_WIDTH = 400\nconst NAV_COLLAPSE_WIDTH = 100\nconst NAV_RESIZE_STEP = 30\nconst NAV_PEEK_DELAY = 300\n\nconst mediaQuery = matchMedia(\"(min-width: 768px)\")\nconst store = storage(\"nord-layout.navWidth\", NAV_DEFAULT_WIDTH)\n\nconst navMachine = fsm({\n opened: {\n toggle: \"closed\",\n close: \"closed\",\n },\n closed: {\n toggle: \"opened\",\n open: \"opened\",\n focusin: \"peek\",\n pointerenter: \"peek\",\n },\n peek: {\n toggle: \"opened\",\n focusout: \"unpeek\",\n pointerleave: \"wait\",\n dropdownOpen: \"blocked\",\n click: \"unpeek\",\n open: \"opened\",\n },\n blocked: {\n dropdownClose: \"peek\",\n open: \"opened\",\n },\n wait: {\n toggle: \"opened\",\n focusin: \"peek\",\n pointerenter: \"peek\",\n timeout: \"unpeek\",\n },\n unpeek: {\n toggle: \"opened\",\n focusin: \"peek\",\n pointerenter: \"peek\",\n transitionend: \"closed\",\n },\n})\n\ntype NavState = States<typeof navMachine>\ntype NavEvent = Events<typeof navMachine>\n\nfunction isElement(el: any): el is Element {\n return el != null && el.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * Layout component is used to create the main layout of an app. Layout\n * currently comes with one main configuration: two-column.\n *\n * @status ready\n * @category structure\n * @slot - The default main section content.\n * @slot nav - Used to place content inside the navigation sidebar.\n * @slot header - Used to place content inside the header section.\n * @slot drawer - Used to place additional content/details relating to a selected item.\n * @slot nav-toggle - Used to place a own nav-toggle component, for cases where you might need to add a tooltip.\n *\n * @cssprop [--n-layout-padding=var(--n-space-l)] - Controls the padding around the main layout area (the main slot), using our [spacing tokens](/tokens/#space).\n * @cssprop [--n-layout-drawer-inline-size=320px] - Controls the width of the drawer area, when used.\n * @cssprop [--n-layout-background-color=var(--n-color-background)] - Controls the background color of the layout, using [color tokens](/tokens/#color).\n */\n@customElement(\"nord-layout\")\nexport default class Layout extends LitElement {\n static styles = [componentStyle, stickyStyle, style]\n\n private peekTimeoutId?: ReturnType<typeof setTimeout>\n private resizeObserver = new ResizeObserver(entries => {\n this.stickySize = Math.round(entries[0].borderBoxSize[0].blockSize)\n })\n\n private navSlot = new SlotController(this, \"nav\")\n private drawerSlot = new SlotController(this, \"drawer\")\n private direction = new DirectionController(this)\n private events = new EventController(this)\n private lightDismiss = new LightDismissController(this, {\n isOpen: () => this.navState === \"opened\" && !this.wideScreen,\n onDismiss: () => this.navTransition(\"close\"),\n isDismissible: node => node !== this.navEl,\n })\n\n @query(\".n-sticky\", true) private stickyElement!: HTMLDivElement\n @query(\".n-layout-nav\", true) private navEl!: HTMLDivElement\n\n @state() private navWidth = store.value\n @state() private isDragging = false\n @state() private navState: NavState = mediaQuery.matches ? \"opened\" : \"closed\"\n @state() private wideScreen = mediaQuery.matches\n @state() private stickySize: number | null = 0\n\n /**\n * Controls whether the navigation is hidden off-screen or not.\n * Defaults to `true` for wide viewports, and `false` otherwise.\n */\n @property({ reflect: true, type: Boolean, attribute: \"nav-open\" }) navOpen: boolean = this.navState === \"opened\"\n\n /**\n * ID reference of element used to toggle the navigation.\n * This is deprecated, the layout component will now render its own nav toggle to simplify usage.\n * @deprecated\n */\n @property({ attribute: \"nav-toggle\" }) navToggle?: string\n\n /**\n * Controls the padding of the default main section slot. When set to “none”,\n * the nav and header slots will still have padding.\n */\n @property({ reflect: true }) padding: \"m\" | \"none\" = \"m\"\n\n /**\n * Controls whether the layout's header has sticky positioning.\n */\n @property({ type: Boolean, reflect: true }) sticky: boolean = false\n\n connectedCallback(): void {\n super.connectedCallback()\n\n this.events.listen(mediaQuery, \"change\", this.handleMediaQueryChange)\n\n this.events.listen(this, \"click\", e => {\n if (this.isNavToggle(e.target)) {\n this.handleToggleClick()\n }\n })\n this.events.listen(this, \"mouseover\", e => {\n if (this.isNavToggle(e.target)) {\n this.handleMouseEnter()\n }\n })\n this.events.listen(this, \"mouseout\", e => {\n if (this.isNavToggle(e.target)) {\n this.handleMouseLeave()\n }\n })\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n this.resizeObserver.disconnect()\n }\n\n render() {\n const { navWidth, navState, navSlot, isDragging, direction } = this\n const adjustedNavWidth = navState === \"opened\" && this.wideScreen ? navWidth : NAV_DEFAULT_WIDTH\n const shouldRenderOwnNavToggle = navSlot.hasContent && !this.navToggle\n\n return html`\n <div\n class=${classMap({\n \"n-layout\": true,\n \"n-rtl\": direction.isRTL,\n \"n-dragging\": isDragging,\n })}\n style=${styleMap({\n \"--_n-layout-nav-width\": `${adjustedNavWidth}px`,\n \"--_n-sticky-size\": typeof this.stickySize === \"number\" ? `${this.stickySize}px` : null,\n })}\n data-nav=${navSlot.hasContent ? navState : \"closed\"}\n data-screen=${this.wideScreen ? \"wide\" : \"narrow\"}\n >\n <div\n class=\"n-layout-nav\"\n ?hidden=${navSlot.isEmpty}\n @focusin=${this.handleNavFocus}\n @mouseenter=${this.handleMouseEnter}\n @mouseleave=${this.handleMouseLeave}\n @open=${this.handleDropdownOpen}\n @close=${this.handleDropdownClose}\n >\n <slot name=\"nav\"></slot>\n <div\n class=\"n-resize\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n tabindex=\"0\"\n @pointerdown=${cond(navState === \"opened\", this.startDragging)}\n @pointermove=${cond(isDragging, this.handleDrag)}\n @pointerleave=${this.stopDragging}\n @pointerup=${this.stopDragging}\n @keydown=${this.handleKeyboardResize}\n ></div>\n </div>\n\n <div\n class=${classMap({ \"n-layout-main\": true, \"n-has-own-nav-toggle\": shouldRenderOwnNavToggle })}\n @focusin=${this.handleMainFocus}\n @click=${this.handleClick}\n >\n <div class=${classMap({ \"n-has-drawer\": this.drawerSlot.hasContent })}>\n <div class=\"n-layout-header n-sticky\">\n ${shouldRenderOwnNavToggle ? this.renderNavToggle() : nothing}\n <slot name=\"header\"></slot>\n </div>\n <main>\n <slot></slot>\n </main>\n </div>\n <aside ?hidden=${this.drawerSlot.isEmpty}>\n <slot name=\"drawer\"></slot>\n </aside>\n </div>\n </div>\n `\n }\n\n private renderNavToggle() {\n /* eslint-disable lit-a11y/mouse-events-have-key-events */\n return html`\n <div class=\"n-nav-toggle-container\">\n <slot\n name=\"nav-toggle\"\n @click=${this.handleToggleClick}\n @mouseover=${this.handleMouseEnter}\n @mouseout=${this.handleMouseLeave}\n >\n <nord-nav-toggle></nord-nav-toggle>\n </slot>\n </div>\n `\n /* eslint-enable lit-a11y/mouse-events-have-key-events */\n }\n\n @observe(\"sticky\", \"updated\")\n protected handleStickyChange(prev: boolean) {\n if (this.sticky === true) {\n this.resizeObserver.observe(this.stickyElement, { box: \"border-box\" })\n } else if (prev === true && this.sticky === false) {\n this.resizeObserver.unobserve(this.stickyElement)\n this.stickySize = null\n }\n }\n\n @observe(\"navWidth\", \"updated\")\n protected handleNavWidthChange() {\n store.value = this.navWidth\n }\n\n @observe(\"navState\")\n protected handleNavStateChange(prev: NavState) {\n if (prev === \"wait\" && this.peekTimeoutId) {\n clearTimeout(this.peekTimeoutId)\n }\n if (prev === \"unpeek\") {\n this.navEl.removeEventListener(\"transitionend\", this.handleTransitionEnd)\n }\n\n switch (this.navState) {\n case \"closed\":\n this.navOpen = false\n break\n case \"opened\":\n this.navOpen = true\n break\n case \"wait\":\n this.peekTimeoutId = setTimeout(() => this.navTransition(\"timeout\"), NAV_PEEK_DELAY)\n break\n case \"unpeek\":\n this.navEl.addEventListener(\"transitionend\", this.handleTransitionEnd, { once: true })\n break\n default:\n break\n }\n }\n\n @observe(\"navOpen\", \"updated\")\n protected handleOpenChange() {\n if (!this.isDragging) {\n // when opening nav, it should restore to default width (or larger).\n // unless it is being dragged, in which case the drag width wins\n this.setNavWidth(Math.max(this.navWidth, NAV_DEFAULT_WIDTH))\n }\n\n this.navTransition(this.navOpen ? \"open\" : \"close\")\n }\n\n /* ---------------------------------------------\n / NAVIGATION OPEN/CLOSE LOGIC\n / --------------------------------------------- */\n\n private navTransition(event: NavEvent) {\n this.navState = navMachine.transition(this.navState, event)\n }\n\n private handleClick() {\n this.navTransition(\"click\")\n }\n\n private handleDropdownOpen(e: Event) {\n const target = e.target as Element\n\n if (target.localName === \"nord-dropdown\") {\n this.navTransition(\"dropdownOpen\")\n }\n }\n\n private handleDropdownClose(e: Event) {\n const target = e.target as Element\n\n if (target.localName === \"nord-dropdown\") {\n this.navTransition(\"dropdownClose\")\n }\n }\n\n private handleMediaQueryChange = () => {\n this.wideScreen = mediaQuery.matches\n this.navTransition(this.wideScreen ? \"open\" : \"close\")\n }\n\n private handleToggleClick = () => {\n this.navTransition(\"toggle\")\n }\n\n private handleNavFocus = () => {\n this.navTransition(\"focusin\")\n }\n\n private handleMainFocus = () => {\n this.navTransition(\"focusout\")\n }\n\n private handleMouseEnter = () => {\n if (this.wideScreen) {\n this.navTransition(\"pointerenter\")\n }\n }\n\n private handleMouseLeave = () => {\n this.navTransition(\"pointerleave\")\n }\n\n private handleTransitionEnd = () => {\n this.navTransition(\"transitionend\")\n }\n\n private isNavToggle(node: EventTarget | null) {\n return Boolean(this.navToggle) && isElement(node) && node.id === this.navToggle\n }\n\n /* ---------------------------------------------\n / RESIZE LOGIC\n / --------------------------------------------- */\n\n private handleKeyboardResize(e: KeyboardEvent) {\n const {\n navWidth,\n direction: { isLTR },\n } = this\n\n switch (e.key) {\n case \"ArrowLeft\":\n this.setNavWidth(navWidth + (isLTR ? -NAV_RESIZE_STEP : NAV_RESIZE_STEP))\n break\n case \"ArrowRight\":\n this.setNavWidth(navWidth + (isLTR ? NAV_RESIZE_STEP : -NAV_RESIZE_STEP))\n break\n case \"Enter\":\n this.navTransition(\"toggle\")\n break\n case \"Home\":\n this.setNavWidth(NAV_MIN_WIDTH)\n break\n case \"End\":\n this.setNavWidth(NAV_MAX_WIDTH)\n break\n default:\n return\n }\n\n e.preventDefault()\n }\n\n private setNavWidth(width: number) {\n this.navWidth = clamp(Math.round(width), NAV_MIN_WIDTH, NAV_MAX_WIDTH)\n }\n\n private startDragging(e: PointerEvent) {\n if (e.button === 0) {\n const target = e.target as Element\n target.setPointerCapture(e.pointerId)\n this.isDragging = true\n }\n }\n\n private stopDragging() {\n this.isDragging = false\n }\n\n private handleDrag(e: PointerEvent) {\n const width = this.direction.isRTL ? this.clientWidth - e.clientX : e.clientX\n\n this.setNavWidth(width)\n this.navTransition(width >= NAV_COLLAPSE_WIDTH ? \"open\" : \"close\")\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"nord-layout\": Layout\n }\n}\n","/**\n * Thin wrapper around local storage which simplifies (de)serialization and default values.\n * By default, (de)serializes as JSON.\n */\nexport function storage<T>(\n key: string,\n defaultValue: T,\n serialize: (value: T) => string = JSON.stringify,\n deserialize: (value: string) => T = JSON.parse\n) {\n return {\n get value(): T {\n try {\n const value = localStorage.getItem(key)\n return value ? deserialize(value) : defaultValue\n } catch {\n return defaultValue\n }\n },\n\n set value(value: T) {\n try {\n localStorage.setItem(key, serialize(value))\n } catch {\n // nothing we can do here\n }\n },\n }\n}\n"],"names":["mediaQuery","matchMedia","store","key","defaultValue","serialize","JSON","stringify","deserialize","parse","value","localStorage","getItem","_a","setItem","storage","navMachine","fsm","opened","toggle","close","closed","open","focusin","pointerenter","peek","focusout","pointerleave","dropdownOpen","click","blocked","dropdownClose","wait","timeout","unpeek","transitionend","Layout","LitElement","constructor","this","resizeObserver","ResizeObserver","entries","stickySize","Math","round","borderBoxSize","blockSize","navSlot","SlotController","drawerSlot","direction","DirectionController","events","EventController","lightDismiss","LightDismissController","isOpen","navState","wideScreen","onDismiss","navTransition","isDismissible","node","navEl","navWidth","isDragging","matches","navOpen","padding","sticky","handleMediaQueryChange","handleToggleClick","handleNavFocus","handleMainFocus","handleMouseEnter","handleMouseLeave","handleTransitionEnd","connectedCallback","super","listen","e","isNavToggle","target","disconnectedCallback","disconnect","render","adjustedNavWidth","shouldRenderOwnNavToggle","hasContent","navToggle","html","classMap","isRTL","styleMap","isEmpty","handleDropdownOpen","handleDropdownClose","cond","startDragging","handleDrag","stopDragging","handleKeyboardResize","handleClick","renderNavToggle","nothing","handleStickyChange","prev","observe","stickyElement","box","unobserve","handleNavWidthChange","handleNavStateChange","peekTimeoutId","clearTimeout","removeEventListener","setTimeout","addEventListener","once","handleOpenChange","setNavWidth","max","event","transition","localName","Boolean","el","nodeType","Node","ELEMENT_NODE","id","isLTR","preventDefault","width","clamp","button","setPointerCapture","pointerId","clientWidth","clientX","styles","componentStyle","stickyStyle","style","__decorate","query","prototype","state","property","reflect","type","attribute","customElement"],"mappings":"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"}
|
package/lib/Qrcode.js
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
import{_ as r,e as t}from"./query-assigned-elements-e6cbac30.js";import{x as e,i as n,s as o,y as i}from"./lit-element-9178eae5.js";import{e as a}from"./property-03f59dce.js";import{i as u}from"./query-2d22378e.js";import{e as l,i as f,t as c}from"./directive-de55b00a.js";import{o as s}from"./observe-a9c6dfb6.js";import{s as h}from"./Component-92eb6234.js";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright 2018 Google LLC
|
|
5
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
6
|
-
*/const v=l(class extends f{constructor(r){var t;if(super(r),r.type!==c.ATTRIBUTE||"style"!==r.name||(null===(t=r.strings)||void 0===t?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(r){return Object.keys(r).reduce(((t,e)=>{const n=r[e];return null==n?t:t+`${e=e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${n};`}),"")}update(r,[t]){const{style:n}=r.element;if(void 0===this.vt){this.vt=new Set;for(const r in t)this.vt.add(r);return this.render(t)}this.vt.forEach((r=>{null==t[r]&&(this.vt.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")}));for(const r in t){const e=t[r];null!=e&&(this.vt.add(r),r.includes("-")?n.setProperty(r,e):n[r]=e)}return e}});let d=null;class p{}p.render=function(r,t){d(r,t)},self.QrCreator=p,function(r){function t(t,e,n,o){var i={},a=r(n,e);a.u(t),a.J(),o=o||0;var u=a.h(),l=a.h()+2*o;return i.text=t,i.level=e,i.version=n,i.O=l,i.a=function(r,t){return t-=o,!(0>(r-=o)||r>=u||0>t||t>=u)&&a.a(r,t)},i}function e(r,t,e,n,o,i,a,u,l,f){function c(t,e,n,o,a,u,l){t?(r.lineTo(e+u,n+l),r.arcTo(e,n,o,a,i)):r.lineTo(e,n)}a?r.moveTo(t+i,e):r.moveTo(t,e),c(u,n,e,n,o,-i,0),c(l,n,o,t,o,0,-i),c(f,t,o,t,e,i,0),c(a,t,e,n,e,0,i)}function n(r,t,e,n,o,i,a,u,l,f){function c(t,e,n,o){r.moveTo(t+n,e),r.lineTo(t,e),r.lineTo(t,e+o),r.arcTo(t,e,t+n,e,i)}a&&c(t,e,i,i),u&&c(n,e,-i,i),l&&c(n,o,-i,-i),f&&c(t,o,i,-i)}function o(r,o){r:{var i=o.text,a=o.v,u=o.N,l=o.K,f=o.P;for(u=Math.max(1,u||1),l=Math.min(40,l||40);u<=l;u+=1)try{var c=t(i,a,u,f);break r}catch(r){}c=void 0}if(!c)return null;for(i=r.getContext("2d"),o.background&&(i.fillStyle=o.background,i.fillRect(o.left,o.top,o.size,o.size)),a=c.O,l=o.size/a,i.beginPath(),f=0;f<a;f+=1)for(u=0;u<a;u+=1){var s=i,h=o.left+u*l,v=o.top+f*l,d=f,p=u,g=c.a,b=h+l,m=v+l,y=d-1,z=d+1,w=p-1,M=p+1,k=Math.floor(Math.min(.5,Math.max(0,o.R))*l),x=g(d,p),A=g(y,w),C=g(y,p);y=g(y,M);var E=g(d,M);M=g(z,M),p=g(z,p),z=g(z,w),d=g(d,w),h=Math.round(h),v=Math.round(v),b=Math.round(b),m=Math.round(m),x?e(s,h,v,b,m,k,!C&&!d,!C&&!E,!p&&!E,!p&&!d):n(s,h,v,b,m,k,C&&d&&A,C&&E&&y,p&&E&&M,p&&d&&z)}return function(r,t){var e=t.fill;if("string"==typeof e)r.fillStyle=e;else{var n=e.type,o=e.colorStops;if(e=e.position.map((r=>Math.round(r*t.size))),"linear-gradient"===n)var i=r.createLinearGradient.apply(r,e);else{if("radial-gradient"!==n)throw Error("Unsupported fill");i=r.createRadialGradient.apply(r,e)}o.forEach((([r,t])=>{i.addColorStop(r,t)})),r.fillStyle=i}}(i,o),i.fill(),r}var i={minVersion:1,maxVersion:40,ecLevel:"L",left:0,top:0,size:200,fill:"#000",background:null,text:"no text",radius:.5,quiet:0};d=function(r,t){var e={};Object.assign(e,i,r),e.N=e.minVersion,e.K=e.maxVersion,e.v=e.ecLevel,e.left=e.left,e.top=e.top,e.size=e.size,e.fill=e.fill,e.background=e.background,e.text=e.text,e.R=e.radius,e.P=e.quiet,t instanceof HTMLCanvasElement?(t.width===e.size&&t.height===e.size||(t.width=e.size,t.height=e.size),t.getContext("2d").clearRect(0,0,t.width,t.height),o(t,e)):((r=document.createElement("canvas")).width=e.size,r.height=e.size,e=o(r,e),t.appendChild(e))}}(function(){function r(o,a){function u(r,t){for(var e=-1;7>=e;e+=1)if(!(-1>=r+e||s<=r+e))for(var n=-1;7>=n;n+=1)-1>=t+n||s<=t+n||(c[r+e][t+n]=0<=e&&6>=e&&(0==n||6==n)||0<=n&&6>=n&&(0==e||6==e)||2<=e&&4>=e&&2<=n&&4>=n)}function l(r,e){for(var a=s=4*o+17,l=Array(a),d=0;d<a;d+=1){l[d]=Array(a);for(var p=0;p<a;p+=1)l[d][p]=null}for(c=l,u(0,0),u(s-7,0),u(0,s-7),a=n.G(o),l=0;l<a.length;l+=1)for(d=0;d<a.length;d+=1){p=a[l];var g=a[d];if(null==c[p][g])for(var b=-2;2>=b;b+=1)for(var m=-2;2>=m;m+=1)c[p+b][g+m]=-2==b||2==b||-2==m||2==m||0==b&&0==m}for(a=8;a<s-8;a+=1)null==c[a][6]&&(c[a][6]=0==a%2);for(a=8;a<s-8;a+=1)null==c[6][a]&&(c[6][a]=0==a%2);for(a=n.w(f<<3|e),l=0;15>l;l+=1)d=!r&&1==(a>>l&1),c[6>l?l:8>l?l+1:s-15+l][8]=d,c[8][8>l?s-l-1:9>l?15-l:14-l]=d;if(c[s-8][8]=!r,7<=o){for(a=n.A(o),l=0;18>l;l+=1)d=!r&&1==(a>>l&1),c[Math.floor(l/3)][l%3+s-8-3]=d;for(l=0;18>l;l+=1)d=!r&&1==(a>>l&1),c[l%3+s-8-3][Math.floor(l/3)]=d}if(null==h){for(r=i.I(o,f),a=function(){var r=[],t=0,e={B:function(){return r},c:function(t){return 1==(r[Math.floor(t/8)]>>>7-t%8&1)},put:function(r,t){for(var n=0;n<t;n+=1)e.m(1==(r>>>t-n-1&1))},f:function(){return t},m:function(e){var n=Math.floor(t/8);r.length<=n&&r.push(0),e&&(r[n]|=128>>>t%8),t+=1}};return e}(),l=0;l<v.length;l+=1)d=v[l],a.put(4,4),a.put(d.b(),n.f(4,o)),d.write(a);for(l=d=0;l<r.length;l+=1)d+=r[l].j;if(a.f()>8*d)throw Error("code length overflow. ("+a.f()+">"+8*d+")");for(a.f()+4<=8*d&&a.put(0,4);0!=a.f()%8;)a.m(!1);for(;!(a.f()>=8*d)&&(a.put(236,8),!(a.f()>=8*d));)a.put(17,8);var y=0;for(d=l=0,p=Array(r.length),g=Array(r.length),b=0;b<r.length;b+=1){var z=r[b].j,w=r[b].o-z;for(l=Math.max(l,z),d=Math.max(d,w),p[b]=Array(z),m=0;m<p[b].length;m+=1)p[b][m]=255&a.B()[m+y];for(y+=z,m=n.C(w),z=t(p[b],m.b()-1).l(m),g[b]=Array(m.b()-1),m=0;m<g[b].length;m+=1)w=m+z.b()-g[b].length,g[b][m]=0<=w?z.c(w):0}for(m=a=0;m<r.length;m+=1)a+=r[m].o;for(a=Array(a),m=y=0;m<l;m+=1)for(b=0;b<r.length;b+=1)m<p[b].length&&(a[y]=p[b][m],y+=1);for(m=0;m<d;m+=1)for(b=0;b<r.length;b+=1)m<g[b].length&&(a[y]=g[b][m],y+=1);h=a}for(r=h,a=-1,l=s-1,d=7,p=0,e=n.F(e),g=s-1;0<g;g-=2)for(6==g&&--g;;){for(b=0;2>b;b+=1)null==c[l][g-b]&&(m=!1,p<r.length&&(m=1==(r[p]>>>d&1)),e(l,g-b)&&(m=!m),c[l][g-b]=m,-1==--d&&(p+=1,d=7));if(0>(l+=a)||s<=l){l-=a,a=-a;break}}}var f=e[a],c=null,s=0,h=null,v=[],d={u:function(t){t=function(t){var e=r.s(t);return{S:function(){return 4},b:function(){return e.length},write:function(r){for(var t=0;t<e.length;t+=1)r.put(e[t],8)}}}(t),v.push(t),h=null},a:function(r,t){if(0>r||s<=r||0>t||s<=t)throw Error(r+","+t);return c[r][t]},h:function(){return s},J:function(){for(var r=0,t=0,e=0;8>e;e+=1){l(!0,e);var o=n.D(d);(0==e||r>o)&&(r=o,t=e)}l(!1,t)}};return d}function t(r,e){if(void 0===r.length)throw Error(r.length+"/"+e);var n=function(){for(var t=0;t<r.length&&0==r[t];)t+=1;for(var n=Array(r.length-t+e),o=0;o<r.length-t;o+=1)n[o]=r[o+t];return n}(),i={c:function(r){return n[r]},b:function(){return n.length},multiply:function(r){for(var e=Array(i.b()+r.b()-1),n=0;n<i.b();n+=1)for(var a=0;a<r.b();a+=1)e[n+a]^=o.i(o.g(i.c(n))+o.g(r.c(a)));return t(e,0)},l:function(r){if(0>i.b()-r.b())return i;for(var e=o.g(i.c(0))-o.g(r.c(0)),n=Array(i.b()),a=0;a<i.b();a+=1)n[a]=i.c(a);for(a=0;a<r.b();a+=1)n[a]^=o.i(o.g(r.c(a))+e);return t(n,0).l(r)}};return i}r.s=function(r){for(var t=[],e=0;e<r.length;e++){var n=r.charCodeAt(e);128>n?t.push(n):2048>n?t.push(192|n>>6,128|63&n):55296>n||57344<=n?t.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&r.charCodeAt(e)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t};var e={L:1,M:0,Q:3,H:2},n=function(){function r(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t}var e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n={w:function(t){for(var e=t<<10;0<=r(e)-r(1335);)e^=1335<<r(e)-r(1335);return 21522^(t<<10|e)},A:function(t){for(var e=t<<12;0<=r(e)-r(7973);)e^=7973<<r(e)-r(7973);return t<<12|e},G:function(r){return e[r-1]},F:function(r){switch(r){case 0:return function(r,t){return 0==(r+t)%2};case 1:return function(r){return 0==r%2};case 2:return function(r,t){return 0==t%3};case 3:return function(r,t){return 0==(r+t)%3};case 4:return function(r,t){return 0==(Math.floor(r/2)+Math.floor(t/3))%2};case 5:return function(r,t){return 0==r*t%2+r*t%3};case 6:return function(r,t){return 0==(r*t%2+r*t%3)%2};case 7:return function(r,t){return 0==(r*t%3+(r+t)%2)%2};default:throw Error("bad maskPattern:"+r)}},C:function(r){for(var e=t([1],0),n=0;n<r;n+=1)e=e.multiply(t([1,o.i(n)],0));return e},f:function(r,t){if(4!=r||1>t||40<t)throw Error("mode: "+r+"; type: "+t);return 10>t?8:16},D:function(r){for(var t=r.h(),e=0,n=0;n<t;n+=1)for(var o=0;o<t;o+=1){for(var i=0,a=r.a(n,o),u=-1;1>=u;u+=1)if(!(0>n+u||t<=n+u))for(var l=-1;1>=l;l+=1)0>o+l||t<=o+l||(0!=u||0!=l)&&a==r.a(n+u,o+l)&&(i+=1);5<i&&(e+=3+i-5)}for(n=0;n<t-1;n+=1)for(o=0;o<t-1;o+=1)i=0,r.a(n,o)&&(i+=1),r.a(n+1,o)&&(i+=1),r.a(n,o+1)&&(i+=1),r.a(n+1,o+1)&&(i+=1),(0==i||4==i)&&(e+=3);for(n=0;n<t;n+=1)for(o=0;o<t-6;o+=1)r.a(n,o)&&!r.a(n,o+1)&&r.a(n,o+2)&&r.a(n,o+3)&&r.a(n,o+4)&&!r.a(n,o+5)&&r.a(n,o+6)&&(e+=40);for(o=0;o<t;o+=1)for(n=0;n<t-6;n+=1)r.a(n,o)&&!r.a(n+1,o)&&r.a(n+2,o)&&r.a(n+3,o)&&r.a(n+4,o)&&!r.a(n+5,o)&&r.a(n+6,o)&&(e+=40);for(o=i=0;o<t;o+=1)for(n=0;n<t;n+=1)r.a(n,o)&&(i+=1);return e+Math.abs(100*i/t/t-50)/5*10}};return n}(),o=function(){for(var r=Array(256),t=Array(256),e=0;8>e;e+=1)r[e]=1<<e;for(e=8;256>e;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(e=0;255>e;e+=1)t[r[e]]=e;return{g:function(r){if(1>r)throw Error("glog("+r+")");return t[r]},i:function(t){for(;0>t;)t+=255;for(;256<=t;)t-=255;return r[t]}}}(),i=function(){function r(r,n){switch(n){case e.L:return t[4*(r-1)];case e.M:return t[4*(r-1)+1];case e.Q:return t[4*(r-1)+2];case e.H:return t[4*(r-1)+3]}}var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],n={I:function(t,e){var n=r(t,e);if(void 0===n)throw Error("bad rs block @ typeNumber:"+t+"/errorCorrectLevel:"+e);t=n.length/3,e=[];for(var o=0;o<t;o+=1)for(var i=n[3*o],a=n[3*o+1],u=n[3*o+2],l=0;l<i;l+=1){var f=u,c={};c.o=a,c.j=f,e.push(c)}return e}};return n}();return r}());var g=QrCreator;const b=n`:host{display:inline-block}.n-qrcode{position:relative}canvas{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}`;let m=class extends o{constructor(){super(...arguments),this.value="",this.label="",this.size=128,this.color="var(--n-color-text)",this.background="var(--n-color-surface)",this.correction="H"}firstUpdated(){this.generate()}generate(){if(!this.hasUpdated)return;const{backgroundColor:r,color:t}=getComputedStyle(this.computed);g.render({text:this.value,radius:0,ecLevel:this.correction,fill:t,background:"transparent"===r?null:r,size:2*this.size},this.canvas)}render(){return i`<div class="n-qrcode" style="${v({"inline-size":`${this.size}px`,"block-size":`${this.size}px`})}"><canvas role="img" aria-label="${this.label.length>0?this.label:this.value}"></canvas></div><div class="computed" hidden style="${v({"background-color":`${this.background}`,color:`${this.color}`})}"></div>`}};m.styles=[h,b],r([u("canvas",!0)],m.prototype,"canvas",void 0),r([u(".computed",!0)],m.prototype,"computed",void 0),r([a({reflect:!0})],m.prototype,"value",void 0),r([a({reflect:!0})],m.prototype,"label",void 0),r([a({reflect:!0,type:Number})],m.prototype,"size",void 0),r([a({reflect:!0})],m.prototype,"color",void 0),r([a({reflect:!0})],m.prototype,"background",void 0),r([a({reflect:!0})],m.prototype,"correction",void 0),r([s("correction"),s("color"),s("background"),s("size"),s("value")],m.prototype,"generate",null),m=r([t("nord-qrcode")],m);var y=m;export{y as default};
|
|
1
|
+
import{_ as r,e as t}from"./query-assigned-elements-e6cbac30.js";import{i as e,s as o,y as n}from"./lit-element-9178eae5.js";import{e as a}from"./property-03f59dce.js";import{i}from"./query-2d22378e.js";import{i as f}from"./style-map-2fe03b77.js";import{o as u}from"./observe-a9c6dfb6.js";import{s as l}from"./Component-92eb6234.js";import"./directive-de55b00a.js";let c=null;class s{}s.render=function(r,t){c(r,t)},self.QrCreator=s,function(r){function t(t,e,o,n){var a={},i=r(o,e);i.u(t),i.J(),n=n||0;var f=i.h(),u=i.h()+2*n;return a.text=t,a.level=e,a.version=o,a.O=u,a.a=function(r,t){return t-=n,!(0>(r-=n)||r>=f||0>t||t>=f)&&i.a(r,t)},a}function e(r,t,e,o,n,a,i,f,u,l){function c(t,e,o,n,i,f,u){t?(r.lineTo(e+f,o+u),r.arcTo(e,o,n,i,a)):r.lineTo(e,o)}i?r.moveTo(t+a,e):r.moveTo(t,e),c(f,o,e,o,n,-a,0),c(u,o,n,t,n,0,-a),c(l,t,n,t,e,a,0),c(i,t,e,o,e,0,a)}function o(r,t,e,o,n,a,i,f,u,l){function c(t,e,o,n){r.moveTo(t+o,e),r.lineTo(t,e),r.lineTo(t,e+n),r.arcTo(t,e,t+o,e,a)}i&&c(t,e,a,a),f&&c(o,e,-a,a),u&&c(o,n,-a,-a),l&&c(t,n,a,-a)}function n(r,n){r:{var a=n.text,i=n.v,f=n.N,u=n.K,l=n.P;for(f=Math.max(1,f||1),u=Math.min(40,u||40);f<=u;f+=1)try{var c=t(a,i,f,l);break r}catch(r){}c=void 0}if(!c)return null;for(a=r.getContext("2d"),n.background&&(a.fillStyle=n.background,a.fillRect(n.left,n.top,n.size,n.size)),i=c.O,u=n.size/i,a.beginPath(),l=0;l<i;l+=1)for(f=0;f<i;f+=1){var s=a,h=n.left+f*u,v=n.top+l*u,d=l,p=f,g=c.a,b=h+u,m=v+u,y=d-1,z=d+1,M=p-1,k=p+1,x=Math.floor(Math.min(.5,Math.max(0,n.R))*u),w=g(d,p),A=g(y,M),C=g(y,p);y=g(y,k);var j=g(d,k);k=g(z,k),p=g(z,p),z=g(z,M),d=g(d,M),h=Math.round(h),v=Math.round(v),b=Math.round(b),m=Math.round(m),w?e(s,h,v,b,m,x,!C&&!d,!C&&!j,!p&&!j,!p&&!d):o(s,h,v,b,m,x,C&&d&&A,C&&j&&y,p&&j&&k,p&&d&&z)}return function(r,t){var e=t.fill;if("string"==typeof e)r.fillStyle=e;else{var o=e.type,n=e.colorStops;if(e=e.position.map((r=>Math.round(r*t.size))),"linear-gradient"===o)var a=r.createLinearGradient.apply(r,e);else{if("radial-gradient"!==o)throw Error("Unsupported fill");a=r.createRadialGradient.apply(r,e)}n.forEach((([r,t])=>{a.addColorStop(r,t)})),r.fillStyle=a}}(a,n),a.fill(),r}var a={minVersion:1,maxVersion:40,ecLevel:"L",left:0,top:0,size:200,fill:"#000",background:null,text:"no text",radius:.5,quiet:0};c=function(r,t){var e={};Object.assign(e,a,r),e.N=e.minVersion,e.K=e.maxVersion,e.v=e.ecLevel,e.left=e.left,e.top=e.top,e.size=e.size,e.fill=e.fill,e.background=e.background,e.text=e.text,e.R=e.radius,e.P=e.quiet,t instanceof HTMLCanvasElement?(t.width===e.size&&t.height===e.size||(t.width=e.size,t.height=e.size),t.getContext("2d").clearRect(0,0,t.width,t.height),n(t,e)):((r=document.createElement("canvas")).width=e.size,r.height=e.size,e=n(r,e),t.appendChild(e))}}(function(){function r(n,i){function f(r,t){for(var e=-1;7>=e;e+=1)if(!(-1>=r+e||s<=r+e))for(var o=-1;7>=o;o+=1)-1>=t+o||s<=t+o||(c[r+e][t+o]=0<=e&&6>=e&&(0==o||6==o)||0<=o&&6>=o&&(0==e||6==e)||2<=e&&4>=e&&2<=o&&4>=o)}function u(r,e){for(var i=s=4*n+17,u=Array(i),d=0;d<i;d+=1){u[d]=Array(i);for(var p=0;p<i;p+=1)u[d][p]=null}for(c=u,f(0,0),f(s-7,0),f(0,s-7),i=o.G(n),u=0;u<i.length;u+=1)for(d=0;d<i.length;d+=1){p=i[u];var g=i[d];if(null==c[p][g])for(var b=-2;2>=b;b+=1)for(var m=-2;2>=m;m+=1)c[p+b][g+m]=-2==b||2==b||-2==m||2==m||0==b&&0==m}for(i=8;i<s-8;i+=1)null==c[i][6]&&(c[i][6]=0==i%2);for(i=8;i<s-8;i+=1)null==c[6][i]&&(c[6][i]=0==i%2);for(i=o.w(l<<3|e),u=0;15>u;u+=1)d=!r&&1==(i>>u&1),c[6>u?u:8>u?u+1:s-15+u][8]=d,c[8][8>u?s-u-1:9>u?15-u:14-u]=d;if(c[s-8][8]=!r,7<=n){for(i=o.A(n),u=0;18>u;u+=1)d=!r&&1==(i>>u&1),c[Math.floor(u/3)][u%3+s-8-3]=d;for(u=0;18>u;u+=1)d=!r&&1==(i>>u&1),c[u%3+s-8-3][Math.floor(u/3)]=d}if(null==h){for(r=a.I(n,l),i=function(){var r=[],t=0,e={B:function(){return r},c:function(t){return 1==(r[Math.floor(t/8)]>>>7-t%8&1)},put:function(r,t){for(var o=0;o<t;o+=1)e.m(1==(r>>>t-o-1&1))},f:function(){return t},m:function(e){var o=Math.floor(t/8);r.length<=o&&r.push(0),e&&(r[o]|=128>>>t%8),t+=1}};return e}(),u=0;u<v.length;u+=1)d=v[u],i.put(4,4),i.put(d.b(),o.f(4,n)),d.write(i);for(u=d=0;u<r.length;u+=1)d+=r[u].j;if(i.f()>8*d)throw Error("code length overflow. ("+i.f()+">"+8*d+")");for(i.f()+4<=8*d&&i.put(0,4);0!=i.f()%8;)i.m(!1);for(;!(i.f()>=8*d)&&(i.put(236,8),!(i.f()>=8*d));)i.put(17,8);var y=0;for(d=u=0,p=Array(r.length),g=Array(r.length),b=0;b<r.length;b+=1){var z=r[b].j,M=r[b].o-z;for(u=Math.max(u,z),d=Math.max(d,M),p[b]=Array(z),m=0;m<p[b].length;m+=1)p[b][m]=255&i.B()[m+y];for(y+=z,m=o.C(M),z=t(p[b],m.b()-1).l(m),g[b]=Array(m.b()-1),m=0;m<g[b].length;m+=1)M=m+z.b()-g[b].length,g[b][m]=0<=M?z.c(M):0}for(m=i=0;m<r.length;m+=1)i+=r[m].o;for(i=Array(i),m=y=0;m<u;m+=1)for(b=0;b<r.length;b+=1)m<p[b].length&&(i[y]=p[b][m],y+=1);for(m=0;m<d;m+=1)for(b=0;b<r.length;b+=1)m<g[b].length&&(i[y]=g[b][m],y+=1);h=i}for(r=h,i=-1,u=s-1,d=7,p=0,e=o.F(e),g=s-1;0<g;g-=2)for(6==g&&--g;;){for(b=0;2>b;b+=1)null==c[u][g-b]&&(m=!1,p<r.length&&(m=1==(r[p]>>>d&1)),e(u,g-b)&&(m=!m),c[u][g-b]=m,-1==--d&&(p+=1,d=7));if(0>(u+=i)||s<=u){u-=i,i=-i;break}}}var l=e[i],c=null,s=0,h=null,v=[],d={u:function(t){t=function(t){var e=r.s(t);return{S:function(){return 4},b:function(){return e.length},write:function(r){for(var t=0;t<e.length;t+=1)r.put(e[t],8)}}}(t),v.push(t),h=null},a:function(r,t){if(0>r||s<=r||0>t||s<=t)throw Error(r+","+t);return c[r][t]},h:function(){return s},J:function(){for(var r=0,t=0,e=0;8>e;e+=1){u(!0,e);var n=o.D(d);(0==e||r>n)&&(r=n,t=e)}u(!1,t)}};return d}function t(r,e){if(void 0===r.length)throw Error(r.length+"/"+e);var o=function(){for(var t=0;t<r.length&&0==r[t];)t+=1;for(var o=Array(r.length-t+e),n=0;n<r.length-t;n+=1)o[n]=r[n+t];return o}(),a={c:function(r){return o[r]},b:function(){return o.length},multiply:function(r){for(var e=Array(a.b()+r.b()-1),o=0;o<a.b();o+=1)for(var i=0;i<r.b();i+=1)e[o+i]^=n.i(n.g(a.c(o))+n.g(r.c(i)));return t(e,0)},l:function(r){if(0>a.b()-r.b())return a;for(var e=n.g(a.c(0))-n.g(r.c(0)),o=Array(a.b()),i=0;i<a.b();i+=1)o[i]=a.c(i);for(i=0;i<r.b();i+=1)o[i]^=n.i(n.g(r.c(i))+e);return t(o,0).l(r)}};return a}r.s=function(r){for(var t=[],e=0;e<r.length;e++){var o=r.charCodeAt(e);128>o?t.push(o):2048>o?t.push(192|o>>6,128|63&o):55296>o||57344<=o?t.push(224|o>>12,128|o>>6&63,128|63&o):(e++,o=65536+((1023&o)<<10|1023&r.charCodeAt(e)),t.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o))}return t};var e={L:1,M:0,Q:3,H:2},o=function(){function r(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t}var e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],o={w:function(t){for(var e=t<<10;0<=r(e)-r(1335);)e^=1335<<r(e)-r(1335);return 21522^(t<<10|e)},A:function(t){for(var e=t<<12;0<=r(e)-r(7973);)e^=7973<<r(e)-r(7973);return t<<12|e},G:function(r){return e[r-1]},F:function(r){switch(r){case 0:return function(r,t){return 0==(r+t)%2};case 1:return function(r){return 0==r%2};case 2:return function(r,t){return 0==t%3};case 3:return function(r,t){return 0==(r+t)%3};case 4:return function(r,t){return 0==(Math.floor(r/2)+Math.floor(t/3))%2};case 5:return function(r,t){return 0==r*t%2+r*t%3};case 6:return function(r,t){return 0==(r*t%2+r*t%3)%2};case 7:return function(r,t){return 0==(r*t%3+(r+t)%2)%2};default:throw Error("bad maskPattern:"+r)}},C:function(r){for(var e=t([1],0),o=0;o<r;o+=1)e=e.multiply(t([1,n.i(o)],0));return e},f:function(r,t){if(4!=r||1>t||40<t)throw Error("mode: "+r+"; type: "+t);return 10>t?8:16},D:function(r){for(var t=r.h(),e=0,o=0;o<t;o+=1)for(var n=0;n<t;n+=1){for(var a=0,i=r.a(o,n),f=-1;1>=f;f+=1)if(!(0>o+f||t<=o+f))for(var u=-1;1>=u;u+=1)0>n+u||t<=n+u||(0!=f||0!=u)&&i==r.a(o+f,n+u)&&(a+=1);5<a&&(e+=3+a-5)}for(o=0;o<t-1;o+=1)for(n=0;n<t-1;n+=1)a=0,r.a(o,n)&&(a+=1),r.a(o+1,n)&&(a+=1),r.a(o,n+1)&&(a+=1),r.a(o+1,n+1)&&(a+=1),(0==a||4==a)&&(e+=3);for(o=0;o<t;o+=1)for(n=0;n<t-6;n+=1)r.a(o,n)&&!r.a(o,n+1)&&r.a(o,n+2)&&r.a(o,n+3)&&r.a(o,n+4)&&!r.a(o,n+5)&&r.a(o,n+6)&&(e+=40);for(n=0;n<t;n+=1)for(o=0;o<t-6;o+=1)r.a(o,n)&&!r.a(o+1,n)&&r.a(o+2,n)&&r.a(o+3,n)&&r.a(o+4,n)&&!r.a(o+5,n)&&r.a(o+6,n)&&(e+=40);for(n=a=0;n<t;n+=1)for(o=0;o<t;o+=1)r.a(o,n)&&(a+=1);return e+Math.abs(100*a/t/t-50)/5*10}};return o}(),n=function(){for(var r=Array(256),t=Array(256),e=0;8>e;e+=1)r[e]=1<<e;for(e=8;256>e;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(e=0;255>e;e+=1)t[r[e]]=e;return{g:function(r){if(1>r)throw Error("glog("+r+")");return t[r]},i:function(t){for(;0>t;)t+=255;for(;256<=t;)t-=255;return r[t]}}}(),a=function(){function r(r,o){switch(o){case e.L:return t[4*(r-1)];case e.M:return t[4*(r-1)+1];case e.Q:return t[4*(r-1)+2];case e.H:return t[4*(r-1)+3]}}var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],o={I:function(t,e){var o=r(t,e);if(void 0===o)throw Error("bad rs block @ typeNumber:"+t+"/errorCorrectLevel:"+e);t=o.length/3,e=[];for(var n=0;n<t;n+=1)for(var a=o[3*n],i=o[3*n+1],f=o[3*n+2],u=0;u<a;u+=1){var l=f,c={};c.o=i,c.j=l,e.push(c)}return e}};return o}();return r}());var h=QrCreator;const v=e`:host{display:inline-block}.n-qrcode{position:relative}canvas{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:100%}`;let d=class extends o{constructor(){super(...arguments),this.value="",this.label="",this.size=128,this.color="var(--n-color-text)",this.background="var(--n-color-surface)",this.correction="H"}firstUpdated(){this.generate()}generate(){if(!this.hasUpdated)return;const{backgroundColor:r,color:t}=getComputedStyle(this.computed);h.render({text:this.value,radius:0,ecLevel:this.correction,fill:t,background:"transparent"===r?null:r,size:2*this.size},this.canvas)}render(){return n`<div class="n-qrcode" style="${f({"inline-size":`${this.size}px`,"block-size":`${this.size}px`})}"><canvas role="img" aria-label="${this.label.length>0?this.label:this.value}"></canvas></div><div class="computed" hidden style="${f({"background-color":`${this.background}`,color:`${this.color}`})}"></div>`}};d.styles=[l,v],r([i("canvas",!0)],d.prototype,"canvas",void 0),r([i(".computed",!0)],d.prototype,"computed",void 0),r([a({reflect:!0})],d.prototype,"value",void 0),r([a({reflect:!0})],d.prototype,"label",void 0),r([a({reflect:!0,type:Number})],d.prototype,"size",void 0),r([a({reflect:!0})],d.prototype,"color",void 0),r([a({reflect:!0})],d.prototype,"background",void 0),r([a({reflect:!0})],d.prototype,"correction",void 0),r([u("correction"),u("color"),u("background"),u("size"),u("value")],d.prototype,"generate",null),d=r([t("nord-qrcode")],d);var p=d;export{p as default};
|
|
7
2
|
//# sourceMappingURL=Qrcode.js.map
|