@nanoporetech-digital/components 5.8.0 → 5.8.1
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/CHANGELOG.md +11 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/nano-components.cjs.js +1 -1
- package/dist/cjs/nano-details.cjs.entry.js +6 -2
- package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-table-31c953f4.js → nano-table-0f4ea38f.js} +2 -2
- package/dist/cjs/{nano-table-31c953f4.js.map → nano-table-0f4ea38f.js.map} +1 -1
- package/dist/cjs/nano-table.cjs.entry.js +1 -1
- package/dist/cjs/{table.worker-31839f14.js → table.worker-ba6685a0.js} +2 -2
- package/dist/cjs/table.worker-ba6685a0.js.map +1 -0
- package/dist/collection/components/details/details.js +26 -2
- package/dist/collection/components/details/details.js.map +1 -1
- package/dist/components/nano-details.js +8 -3
- package/dist/components/nano-details.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/nano-components.js +1 -1
- package/dist/esm/nano-details.entry.js +6 -2
- package/dist/esm/nano-details.entry.js.map +1 -1
- package/dist/esm/{nano-table-c365bb42.js → nano-table-cc0fc046.js} +2 -2
- package/dist/esm/{nano-table-c365bb42.js.map → nano-table-cc0fc046.js.map} +1 -1
- package/dist/esm/nano-table.entry.js +1 -1
- package/dist/esm/{table.worker-66324663.js → table.worker-ca7b069b.js} +2 -2
- package/dist/esm/table.worker-ca7b069b.js.map +1 -0
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/p-43573870.js +5 -0
- package/dist/nano-components/{p-c2ccac87.entry.js → p-4b7e85b2.entry.js} +2 -2
- package/dist/nano-components/{p-512194c4.entry.js → p-5ca9275c.entry.js} +2 -2
- package/dist/nano-components/p-5ca9275c.entry.js.map +1 -0
- package/dist/nano-components/{p-7c0c892a.js → p-d2705006.js} +2 -2
- package/dist/types/components/details/details.d.ts +5 -0
- package/dist/types/components.d.ts +8 -0
- package/docs-json.json +20 -1
- package/docs-vscode.json +4 -0
- package/hydrate/index.js +8 -3
- package/package.json +2 -2
- package/dist/cjs/table.worker-31839f14.js.map +0 -1
- package/dist/esm/table.worker-66324663.js.map +0 -1
- package/dist/nano-components/p-2cc0faeb.js +0 -5
- package/dist/nano-components/p-512194c4.entry.js.map +0 -1
- /package/dist/nano-components/{p-2cc0faeb.js.map → p-43573870.js.map} +0 -0
- /package/dist/nano-components/{p-c2ccac87.entry.js.map → p-4b7e85b2.entry.js.map} +0 -0
- /package/dist/nano-components/{p-7c0c892a.js.map → p-d2705006.js.map} +0 -0
package/docs-json.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
"timestamp": "2023-10-
|
2
|
+
"timestamp": "2023-10-11T16:13:10",
|
3
3
|
"compiler": {
|
4
4
|
"name": "@stencil/core",
|
5
5
|
"version": "2.23.1",
|
@@ -4169,6 +4169,25 @@
|
|
4169
4169
|
"required": false,
|
4170
4170
|
"getter": false,
|
4171
4171
|
"setter": false
|
4172
|
+
},
|
4173
|
+
{
|
4174
|
+
"name": "useCacheHeight",
|
4175
|
+
"type": "boolean",
|
4176
|
+
"mutable": false,
|
4177
|
+
"attr": "use-cache-height",
|
4178
|
+
"reflectToAttr": false,
|
4179
|
+
"docs": "Sometimes, nested content will resize within the details component which results in choppy show/hide animations.\nSet `useCacheHeight` to `true` try to keep animations smooth.",
|
4180
|
+
"docsTags": [],
|
4181
|
+
"default": "false",
|
4182
|
+
"values": [
|
4183
|
+
{
|
4184
|
+
"type": "boolean"
|
4185
|
+
}
|
4186
|
+
],
|
4187
|
+
"optional": false,
|
4188
|
+
"required": false,
|
4189
|
+
"getter": false,
|
4190
|
+
"setter": false
|
4172
4191
|
}
|
4173
4192
|
],
|
4174
4193
|
"methods": [],
|
package/docs-vscode.json
CHANGED
@@ -832,6 +832,10 @@
|
|
832
832
|
{
|
833
833
|
"name": "open",
|
834
834
|
"description": "Should item be open on load"
|
835
|
+
},
|
836
|
+
{
|
837
|
+
"name": "use-cache-height",
|
838
|
+
"description": "Sometimes, nested content will resize within the details component which results in choppy show/hide animations.\nSet `useCacheHeight` to `true` try to keep animations smooth."
|
835
839
|
}
|
836
840
|
]
|
837
841
|
},
|
package/hydrate/index.js
CHANGED
@@ -12251,6 +12251,7 @@ class Details {
|
|
12251
12251
|
this.disabled = false;
|
12252
12252
|
this.noHandle = false;
|
12253
12253
|
this.iconRotation = 90;
|
12254
|
+
this.useCacheHeight = false;
|
12254
12255
|
}
|
12255
12256
|
toggleClick() {
|
12256
12257
|
this.stateChanging = true;
|
@@ -12266,7 +12267,8 @@ class Details {
|
|
12266
12267
|
this.detailsEl.open = true;
|
12267
12268
|
return;
|
12268
12269
|
}
|
12269
|
-
this.
|
12270
|
+
this.cacheHeight = this.contentEl.scrollHeight;
|
12271
|
+
this.bodyEl.style.height = this.cacheHeight + 'px';
|
12270
12272
|
displayTransition(this.bodyEl, 'is-shown', false).then(() => {
|
12271
12273
|
this.stateChanging = false;
|
12272
12274
|
this.detailsEl.open = false;
|
@@ -12287,7 +12289,9 @@ class Details {
|
|
12287
12289
|
this.stateChanging = false;
|
12288
12290
|
this.bodyEl.style.height = 'auto';
|
12289
12291
|
});
|
12290
|
-
this.bodyEl.style.height =
|
12292
|
+
this.bodyEl.style.height =
|
12293
|
+
(this.useCacheHeight ? this.cacheHeight : this.contentEl.scrollHeight) +
|
12294
|
+
'px';
|
12291
12295
|
}
|
12292
12296
|
attachMo() {
|
12293
12297
|
if (this.mo || !this.detailsEl || !Build.isBrowser)
|
@@ -12346,7 +12350,8 @@ class Details {
|
|
12346
12350
|
"open": [1540],
|
12347
12351
|
"disabled": [1540],
|
12348
12352
|
"noHandle": [4, "no-handle"],
|
12349
|
-
"iconRotation": [2, "icon-rotation"]
|
12353
|
+
"iconRotation": [2, "icon-rotation"],
|
12354
|
+
"useCacheHeight": [4, "use-cache-height"]
|
12350
12355
|
},
|
12351
12356
|
"$listeners$": undefined,
|
12352
12357
|
"$lazyBundleId$": "-",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nanoporetech-digital/components",
|
3
|
-
"version": "5.8.
|
3
|
+
"version": "5.8.1",
|
4
4
|
"repository": {
|
5
5
|
"type": "git",
|
6
6
|
"url": "https://git.oxfordnanolabs.local/Digital/nano-components"
|
@@ -131,7 +131,7 @@
|
|
131
131
|
"nanopore",
|
132
132
|
"digital"
|
133
133
|
],
|
134
|
-
"gitHead": "
|
134
|
+
"gitHead": "fed5a165db8918f46d56956446b279a735c3e546",
|
135
135
|
"volta": {
|
136
136
|
"node": "14.18.1",
|
137
137
|
"npm": "8.6.0"
|
@@ -1 +0,0 @@
|
|
1
|
-
{"file":"table.worker-31839f14.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"file":"table.worker-66324663.js","mappings":";;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
@@ -1,5 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Web Components for Nanopore digital Web Apps
|
3
|
-
*/
|
4
|
-
import{c as t}from"./p-7c0c892a.js";import"./p-d6a04b3a.js";import"./p-ee045579.js";import"./p-7bff5224.js";import"./p-70747f20.js";const o="table.worker";const p="stencil.table.worker";const s=new URL("p-f258383d.js",import.meta.url).href;const r=new Blob(['importScripts("'+s+'")'],{type:"text/javascript"});const c=URL.createObjectURL(r);const e=t(c,o,p);URL.revokeObjectURL(c);export{e as worker,p as workerMsgId,o as workerName,s as workerPath};
|
5
|
-
//# sourceMappingURL=p-2cc0faeb.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["detailsCss","Details","this","stateChanging","onKeyDown","e","disabled","key","preventDefault","open","onMouseDown","headerEl","focus","toggleClick","show","hide","nanoClose","nanoClosed","emit","defaultPrevented","detailsEl","bodyEl","style","height","contentEl","scrollHeight","displayTransition","then","requestAnimationFrame","nanoOpen","nanoOpened","attachMo","mo","Build","isBrowser","MutationObserver","changes","change","type","attributeName","observe","attributes","componentWillLoad","hasStartSlot","host","querySelector","hasEndSlot","componentDidLoad","setAttribute","connectedCallback","disconnectedCallback","disconnect","undefined","render","h","part","ref","d","class","details","tabindex","display","noHandle","id","role","s","onClick","transform","iconRotation","name","label","div"],"sources":["./src/components/details/details.scss?tag=nano-details&encapsulation=shadow","./src/components/details/details.tsx"],"sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/colours';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/form';\n\n:host {\n /**\n * @prop --padding: Default to 1em;\n\n * @prop --btn-padding: Defaults to var(--padding);\n * @prop --btn-bg-color: Defaults to var(--nano-color-contrast, #dad6d3);\n * @prop --btn-bg-color--open: Defaults to var(--nano-color-base, #dad6d3);\n * @prop --btn-bg-color--hover: Defaults to var(--nano-color-tint, #{map.get($colors, offwhite)});\n\n * @prop --btn-text-color: Defaults to var(--nano-color-base, #455556);\n * @prop --btn-text-color--open: Defaults to var(--nano-color-contrast, var(--btn-text-color));\n * @prop --btn-text-color--hover: Defaults to var(--nano-color-contrast, var(--btn-text-color));\n\n * @prop --content-transition: Defaults to height .2s ease-out;\n\n * @prop --border-width: Defaults to none;\n * @prop --border-color: Defaults to none;\n * @prop --border-style: Defaults to none;\n * @prop --border-radius: Defaults to none;\n * @prop --box-shadow: Defaults to none;\n * @prop --focus-style: Defaults to #{$control-focus-style}\n */\n\n @include text-inherit();\n\n --padding: 1em;\n --btn-padding: var(--padding);\n --btn-bg-color: var(--nano-color-contrast, #dad6d3);\n --btn-bg-color--open: var(--nano-color-base, #dad6d3);\n --btn-bg-color--hover: var(--nano-color-tint, #{map.get($colors, offwhite)});\n --btn-text-color: var(--nano-color-base, #455556);\n --btn-text-color--open: var(--nano-color-contrast, var(--btn-text-color));\n --btn-text-color--hover: var(--nano-color-contrast, var(--btn-text-color));\n --content-transition: height 0.2s ease-out;\n --border-width: none;\n --border-color: none;\n --border-style: none;\n --border-radius: none;\n --box-shadow: none;\n --focus-style: #{$control-focus-style};\n\n display: block;\n border-style: var(--border-style);\n border-width: var(--border-width-dims);\n border-color: var(--border-color);\n border-radius: var(--border-radius-dims);\n box-shadow: var(--box-shadow);\n}\n\n:host([disabled]) {\n opacity: 0.5;\n}\n\n:host(:last-of-type) {\n --border-width-dims: 0 var(--border-width) var(--border-width);\n --border-radius-dims: 0 0 var(--border-radius) var(--border-radius);\n\n .open .content {\n border-radius: 0 0 var(--border-radius) var(--border-radius);\n }\n}\n\n:host(:first-of-type) {\n --border-radius-dims: var(--border-radius) var(--border-radius) 0 0;\n --border-width-dims: var(--border-width);\n}\n\n:host(:first-of-type:last-of-type) {\n --border-radius-dims: var(--border-radius);\n --border-width-dims: var(--border-width);\n}\n\n:host(:not(:last-of-type):not(:first-of-type)) {\n --border-width-dims: 0 var(--border-width) var(--border-width);\n}\n\n.header {\n height: auto;\n padding: var(--btn-padding);\n text-align: inherit;\n position: relative;\n font-size: 1em;\n line-height: 1;\n margin: 0;\n transition: 0.3s ease background, 0.3s ease color, 0.15s ease box-shadow;\n display: flex;\n align-items: center;\n background: var(--btn-bg-color);\n color: var(--btn-text-color);\n border-radius: var(--border-radius-dims);\n cursor: pointer;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n box-shadow: var(--focus-style);\n outline: none;\n position: relative;\n z-index: 1;\n }\n\n &:hover {\n background: var(--btn-bg-color--hover);\n color: var(--btn-text-color--hover);\n }\n\n .open & {\n background: var(--btn-bg-color--open);\n color: var(--btn-text-color--open);\n border-end-end-radius: 0;\n border-end-start-radius: 0;\n }\n\n .disabled & {\n cursor: not-allowed;\n }\n\n .label {\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n flex: 1;\n display: inline-block;\n }\n\n .icon {\n line-height: 0;\n flex-direction: column;\n justify-content: center;\n display: inline-block;\n color: currentcolor;\n transition: 0.3s ease transform;\n transform-origin: center;\n\n &--start {\n margin-inline: 0 var(--padding);\n margin-block: 0;\n }\n\n &--end {\n margin-inline: var(--padding) 0;\n margin-block: 0;\n }\n\n ::slotted(nano-icon) {\n --color: currentcolor;\n }\n }\n}\n\n.body {\n overflow: hidden;\n transition: var(--content-transition), 0.2s ease border-radius;\n outline: none;\n\n > * {\n opacity: 0;\n transition: opacity 0.2s ease-out;\n\n .open & {\n opacity: 1;\n }\n }\n}\n\n.content {\n padding: var(--padding);\n}\n","import {\n Component,\n Event,\n EventEmitter,\n Prop,\n h,\n Element,\n Watch,\n Build,\n} from '@stencil/core';\nimport { displayTransition } from '../../utils/transitions';\n\n/**\n * A simple element used to hide or reveal more content with slide effect. Can be used independently or nested within a [accordion](story/components-accordion--accordion) element to add 'one item open at a time' support.\n */\n/**\n * @slot - content that will be hidden / revealed\n * @slot icon-start - used for icons at the start of the handle\n * @slot label - can be used when you wish to insert complex label markup\n * @slot icon-end - used for icons at the end of the handle\n *\n * @part base - the root `details` element\n * @part header - the main `summary` ui control\n * @part label - the text wrapper of the ui control\n * @part icon--start - the icon wrapper at the start of the ui control\n * @part icon--end - the icon wrapper at the end of the ui control\n * @part body - the wrapper around content\n * @part content - the main content wrapper\n */\n@Component({\n tag: 'nano-details',\n styleUrl: 'details.scss',\n shadow: true,\n})\nexport class Details {\n private hasStartSlot: boolean;\n private hasEndSlot: boolean;\n private mo?: MutationObserver;\n private stateChanging: boolean = false;\n private bodyEl: HTMLElement;\n private detailsEl: HTMLDetailsElement;\n private headerEl: HTMLElement;\n private contentEl: HTMLDivElement;\n\n @Element() private host: HTMLNanoDetailsElement;\n\n /** Summary / handle text. Use the `label` slot for HTML markup */\n @Prop() label: string = '';\n\n /** Should item be open on load */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /** Disables the details so it can't be toggled. */\n @Prop({ mutable: true, reflect: true }) disabled: boolean = false;\n\n /** Hide the handle. (You will need to control the hiding / showing of content with script) */\n @Prop() noHandle: boolean = false;\n\n /** Icon slot rotation amount (degrees) on open */\n @Prop() iconRotation: number = 90;\n\n /**\n * Emitted when the component opens.\n * Note: when wrapped in an accordion this event will not propogate. Use nanoToggle events instead.\n */\n @Event() nanoOpened: EventEmitter;\n\n /**\n * Emitted when the component closes.\n * Note: when wrapped in an accordion this event will not propogate. Use nanoToggle events instead.\n */\n @Event() nanoClosed: EventEmitter;\n\n @Watch('open')\n toggleClick() {\n this.stateChanging = true;\n if (this.open) this.show();\n else this.hide();\n }\n\n private onKeyDown = (e: KeyboardEvent) => {\n if (this.stateChanging || this.disabled) return;\n\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n this.open = !this.open;\n break;\n case 'ArrowUp':\n e.preventDefault();\n this.open = false;\n break;\n case 'ArrowDown':\n e.preventDefault();\n this.open = true;\n break;\n }\n };\n\n private onMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.headerEl.focus();\n\n if (this.stateChanging || this.disabled) return;\n this.open = !this.open;\n };\n\n private hide() {\n const nanoClose = this.nanoClosed.emit(this.open);\n\n if (nanoClose.defaultPrevented) {\n this.open = true;\n this.detailsEl.open = true;\n return;\n }\n\n this.bodyEl.style.height = this.contentEl.scrollHeight + 'px';\n\n displayTransition(this.bodyEl, 'is-shown', false).then(() => {\n this.stateChanging = false;\n this.detailsEl.open = false;\n });\n\n requestAnimationFrame(() => {\n this.bodyEl.style.height = '0px';\n });\n }\n\n private show() {\n const nanoOpen = this.nanoOpened.emit();\n this.detailsEl.open = true;\n\n if (nanoOpen.defaultPrevented) {\n this.open = false;\n this.detailsEl.open = false;\n return;\n }\n\n displayTransition(this.bodyEl, 'is-shown', true).then(() => {\n this.stateChanging = false;\n this.bodyEl.style.height = 'auto';\n });\n this.bodyEl.style.height = this.contentEl.scrollHeight + 'px';\n }\n\n private attachMo() {\n if (this.mo || !this.detailsEl || !Build.isBrowser) return;\n\n this.mo = new MutationObserver((changes) => {\n if (this.stateChanging) return;\n\n for (const change of changes) {\n if (change.type === 'attributes' && change.attributeName === 'open') {\n this.open = this.detailsEl.open;\n }\n }\n });\n this.mo.observe(this.detailsEl, { attributes: true });\n }\n\n componentWillLoad() {\n this.hasStartSlot = !!this.host.querySelector('[slot=\"icon-start\"]');\n this.hasEndSlot = !!this.host.querySelector('[slot=\"icon-end\"]');\n }\n\n componentDidLoad() {\n this.bodyEl.style.height = this.open ? 'auto' : '0';\n if (this.open) this.detailsEl.setAttribute('open', 'true');\n this.attachMo();\n }\n\n connectedCallback() {\n this.attachMo();\n }\n\n disconnectedCallback() {\n if (this.mo) {\n this.mo.disconnect();\n this.mo = undefined;\n }\n }\n\n render() {\n return (\n <details\n part=\"base\"\n ref={(d: HTMLDetailsElement) => (this.detailsEl = d)}\n class={{\n details: true,\n open: this.open,\n disabled: this.disabled,\n }}\n >\n <summary\n part=\"header\"\n aria-controls=\"content\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n tabindex={this.disabled ? '-1' : '0'}\n style={{ display: this.noHandle ? 'none' : '' }}\n id=\"header\"\n role=\"button\"\n class=\"header\"\n ref={(s) => (this.headerEl = s)}\n onKeyDown={this.onKeyDown}\n onClick={this.onMouseDown}\n >\n {this.hasStartSlot ? (\n <span\n part=\"icon--start\"\n class=\"icon icon--start\"\n style={{\n transform: this.open ? `rotate(${this.iconRotation}deg)` : '',\n }}\n >\n <slot name=\"icon-start\" />\n </span>\n ) : (\n ''\n )}\n <div part=\"label\" class=\"label\">\n {this.label ? this.label : <slot name=\"label\" />}\n </div>\n {this.hasEndSlot ? (\n <span\n part=\"icon--end\"\n class=\"icon icon--end\"\n style={{\n transform: this.open ? `rotate(${this.iconRotation}deg)` : '',\n }}\n >\n <slot name=\"icon-end\" />\n </span>\n ) : (\n ''\n )}\n </summary>\n <div\n part=\"body\"\n class=\"body\"\n ref={(div) => (this.bodyEl = div)}\n tabindex=\"-1\"\n role=\"region\"\n aria-labelledby=\"header\"\n >\n <div\n part=\"content\"\n ref={(div) => (this.contentEl = div)}\n class=\"content\"\n id=\"content\"\n >\n <slot />\n </div>\n </div>\n </details>\n );\n }\n}\n"],"mappings":"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"}
|
File without changes
|
File without changes
|
File without changes
|