@fluid-topics/ft-size-watcher 0.0.88

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/README.md ADDED
@@ -0,0 +1,19 @@
1
+ Pixel component used to get viewport size
2
+
3
+ ## Install
4
+
5
+ ```shell
6
+ npm install @fluid-topics/ft-size-watcher
7
+ yarn add @fluid-topics/ft-size-watcher
8
+ ```
9
+
10
+ ## Usage
11
+
12
+ ```typescript
13
+ import { html } from "lit"
14
+ import "@fluid-topics/ft-size-watcher"
15
+
16
+ function render() {
17
+ return html` <ft-size-watcher></ft-size-watcher> `
18
+ }
19
+ ```
@@ -0,0 +1,35 @@
1
+ import { PropertyValues } from "lit";
2
+ import { ElementDefinitionsMap, FtLitElement } from "@fluid-topics/ft-wc-utils";
3
+ export declare enum FtSizeCategory {
4
+ S = "S",
5
+ M = "M",
6
+ L = "L",
7
+ XL = "XL",
8
+ XXL = "XXL"
9
+ }
10
+ export interface FtSizeProperties {
11
+ size: number;
12
+ category: FtSizeCategory;
13
+ }
14
+ export declare class FtSizeChangeEvent extends CustomEvent<FtSizeProperties> {
15
+ constructor(size: number, category: FtSizeCategory);
16
+ }
17
+ export interface FtSizeWatcherProperties extends FtSizeProperties {
18
+ debounceTimeout: number;
19
+ local: boolean;
20
+ }
21
+ export declare class FtSizeWatcher extends FtLitElement implements FtSizeWatcherProperties {
22
+ static elementDefinitions: ElementDefinitionsMap;
23
+ protected getStyles(): import("lit").CSSResult;
24
+ debounceTimeout: number;
25
+ local: boolean;
26
+ size: number;
27
+ category: FtSizeCategory;
28
+ private watcher?;
29
+ private resizeObserver;
30
+ private debouncer;
31
+ protected getTemplate(): import("lit-html").TemplateResult<1>;
32
+ protected contentAvailableCallback(props: PropertyValues): void;
33
+ private updateSize;
34
+ }
35
+ //# sourceMappingURL=ft-size-watcher.d.ts.map
@@ -0,0 +1,114 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { css, html } from "lit";
8
+ import { property, query } from "lit/decorators.js";
9
+ import { customElement, Debouncer, FtLitElement } from "@fluid-topics/ft-wc-utils";
10
+ export var FtSizeCategory;
11
+ (function (FtSizeCategory) {
12
+ FtSizeCategory["S"] = "S";
13
+ FtSizeCategory["M"] = "M";
14
+ FtSizeCategory["L"] = "L";
15
+ FtSizeCategory["XL"] = "XL";
16
+ FtSizeCategory["XXL"] = "XXL";
17
+ })(FtSizeCategory || (FtSizeCategory = {}));
18
+ export class FtSizeChangeEvent extends CustomEvent {
19
+ constructor(size, category) {
20
+ super("change", { detail: { size, category } });
21
+ }
22
+ }
23
+ let FtSizeWatcher = class FtSizeWatcher extends FtLitElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.debounceTimeout = 100;
27
+ this.local = false;
28
+ this.size = 0;
29
+ this.category = FtSizeCategory.S;
30
+ this.resizeObserver = new ResizeObserver(() => this.updateSize());
31
+ this.debouncer = new Debouncer();
32
+ }
33
+ // language=CSS
34
+ getStyles() {
35
+ return css `
36
+ .ft-size-watcher--pixel {
37
+ width: 0;
38
+ height: 0;
39
+ overflow: hidden;
40
+ }
41
+
42
+ .ft-size-watcher--pixel.ft-size-watcher--local {
43
+ width: 100%;
44
+ }
45
+
46
+ .ft-size-watcher--watcher {
47
+ height: 1px;
48
+ width: 100vw;
49
+ }
50
+
51
+ .ft-size-watcher--local .ft-size-watcher--watcher {
52
+ width: 100%;
53
+ }
54
+ `;
55
+ }
56
+ getTemplate() {
57
+ return html `
58
+ <div class="ft-size-watcher--pixel ${this.local ? "ft-size-watcher--local" : ""}">
59
+ <div class="ft-size-watcher--watcher"></div>
60
+ </div>
61
+ `;
62
+ }
63
+ contentAvailableCallback(props) {
64
+ super.contentAvailableCallback(props);
65
+ if (this.watcher) {
66
+ this.resizeObserver.observe(this.watcher);
67
+ }
68
+ this.updateSize();
69
+ }
70
+ updateSize() {
71
+ this.debouncer.run(() => {
72
+ if (this.watcher && this.size !== this.watcher.clientWidth) {
73
+ this.size = this.watcher.clientWidth;
74
+ if (this.size < 768) {
75
+ this.category = FtSizeCategory.S;
76
+ }
77
+ else if (this.size < 976) {
78
+ this.category = FtSizeCategory.M;
79
+ }
80
+ else if (this.size < 1024) {
81
+ this.category = FtSizeCategory.L;
82
+ }
83
+ else if (this.size < 1440) {
84
+ this.category = FtSizeCategory.XL;
85
+ }
86
+ else {
87
+ this.category = FtSizeCategory.XXL;
88
+ }
89
+ this.dispatchEvent(new FtSizeChangeEvent(this.size, this.category));
90
+ }
91
+ }, this.debounceTimeout);
92
+ }
93
+ };
94
+ FtSizeWatcher.elementDefinitions = {};
95
+ __decorate([
96
+ property({ type: Number })
97
+ ], FtSizeWatcher.prototype, "debounceTimeout", void 0);
98
+ __decorate([
99
+ property({ type: Boolean })
100
+ ], FtSizeWatcher.prototype, "local", void 0);
101
+ __decorate([
102
+ property({ type: Number, reflect: true })
103
+ ], FtSizeWatcher.prototype, "size", void 0);
104
+ __decorate([
105
+ property({ type: String, reflect: true })
106
+ ], FtSizeWatcher.prototype, "category", void 0);
107
+ __decorate([
108
+ query(".ft-size-watcher--watcher")
109
+ ], FtSizeWatcher.prototype, "watcher", void 0);
110
+ FtSizeWatcher = __decorate([
111
+ customElement("ft-size-watcher")
112
+ ], FtSizeWatcher);
113
+ export { FtSizeWatcher };
114
+ //# sourceMappingURL=ft-size-watcher.js.map
@@ -0,0 +1,64 @@
1
+ !function(t){
2
+ /**
3
+ * @license
4
+ * Copyright 2019 Google LLC
5
+ * SPDX-License-Identifier: BSD-3-Clause
6
+ */
7
+ const i=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,e=Symbol(),s=new Map;class n{constructor(t,i){if(this._$cssResult$=!0,i!==e)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){let t=s.get(this.cssText);return i&&void 0===t&&(s.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}const o=(t,...i)=>{const s=1===t.length?t[0]:i.reduce(((i,e,s)=>i+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(e)+t[s+1]),t[0]);return new n(s,e)},r=(t,e)=>{i?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((i=>{const e=document.createElement("style"),s=window.litNonce;void 0!==s&&e.setAttribute("nonce",s),e.textContent=i.cssText,t.appendChild(e)}))},l=i?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let i="";for(const e of t.cssRules)i+=e.cssText;return(t=>new n("string"==typeof t?t:t+"",e))(i)})(t):t
8
+ /**
9
+ * @license
10
+ * Copyright 2017 Google LLC
11
+ * SPDX-License-Identifier: BSD-3-Clause
12
+ */;var h;const a=window.trustedTypes,u=a?a.emptyScript:"",c=window.reactiveElementPolyfillSupport,d={toAttribute(t,i){switch(i){case Boolean:t=t?u:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let e=t;switch(i){case Boolean:e=null!==t;break;case Number:e=null===t?null:Number(t);break;case Object:case Array:try{e=JSON.parse(t)}catch(t){e=null}}return e}},v=(t,i)=>i!==t&&(i==i||t==t),f={attribute:!0,type:String,converter:d,reflect:!1,hasChanged:v};class w extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var i;null!==(i=this.l)&&void 0!==i||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,e)=>{const s=this._$Eh(e,i);void 0!==s&&(this._$Eu.set(s,e),t.push(s))})),t}static createProperty(t,i=f){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const e="symbol"==typeof t?Symbol():"__"+t,s=this.getPropertyDescriptor(t,e,i);void 0!==s&&Object.defineProperty(this.prototype,t,s)}}static getPropertyDescriptor(t,i,e){return{get(){return this[i]},set(s){const n=this[t];this[i]=s,this.requestUpdate(t,n,e)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||f}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const e of i)this.createProperty(e,t[e])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const i=[];if(Array.isArray(t)){const e=new Set(t.flat(1/0).reverse());for(const t of e)i.unshift(l(t))}else void 0!==t&&i.push(l(t));return i}static _$Eh(t,i){const e=i.attribute;return!1===e?void 0:"string"==typeof e?e:"string"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,e;(null!==(i=this._$Eg)&&void 0!==i?i:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(e=t.hostConnected)||void 0===e||e.call(t))}removeController(t){var i;null===(i=this._$Eg)||void 0===i||i.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Et.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const i=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return r(i,this.constructor.elementStyles),i}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,e){this._$AK(t,e)}_$ES(t,i,e=f){var s,n;const o=this.constructor._$Eh(t,e);if(void 0!==o&&!0===e.reflect){const r=(null!==(n=null===(s=e.converter)||void 0===s?void 0:s.toAttribute)&&void 0!==n?n:d.toAttribute)(i,e.type);this._$Ei=t,null==r?this.removeAttribute(o):this.setAttribute(o,r),this._$Ei=null}}_$AK(t,i){var e,s,n;const o=this.constructor,r=o._$Eu.get(t);if(void 0!==r&&this._$Ei!==r){const t=o.getPropertyOptions(r),l=t.converter,h=null!==(n=null!==(s=null===(e=l)||void 0===e?void 0:e.fromAttribute)&&void 0!==s?s:"function"==typeof l?l:null)&&void 0!==n?n:d.fromAttribute;this._$Ei=r,this[r]=h(i,t.type),this._$Ei=null}}requestUpdate(t,i,e){let s=!0;void 0!==t&&(((e=e||this.constructor.getPropertyOptions(t)).hasChanged||v)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===e.reflect&&this._$Ei!==t&&(void 0===this._$E_&&(this._$E_=new Map),this._$E_.set(t,e))):s=!1),!this.isUpdatePending&&s&&(this._$Ep=this._$EC())}async _$EC(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,i)=>this[i]=t)),this._$Et=void 0);let i=!1;const e=this._$AL;try{i=this.shouldUpdate(e),i?(this.willUpdate(e),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(e)):this._$EU()}catch(t){throw i=!1,this._$EU(),t}i&&this._$AE(e)}willUpdate(t){}_$AE(t){var i;null===(i=this._$Eg)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$E_&&(this._$E_.forEach(((t,i)=>this._$ES(i,this[i],t))),this._$E_=void 0),this._$EU()}updated(t){}firstUpdated(t){}}
13
+ /**
14
+ * @license
15
+ * Copyright 2017 Google LLC
16
+ * SPDX-License-Identifier: BSD-3-Clause
17
+ */
18
+ var p;w.finalized=!0,w.elementProperties=new Map,w.elementStyles=[],w.shadowRootOptions={mode:"open"},null==c||c({ReactiveElement:w}),(null!==(h=globalThis.reactiveElementVersions)&&void 0!==h?h:globalThis.reactiveElementVersions=[]).push("1.2.2");const b=globalThis.trustedTypes,m=b?b.createPolicy("lit-html",{createHTML:t=>t}):void 0,y=`lit$${(Math.random()+"").slice(9)}$`,g="?"+y,S=`<${g}>`,$=document,E=(t="")=>$.createComment(t),C=t=>null===t||"object"!=typeof t&&"function"!=typeof t,O=Array.isArray,j=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,k=/-->/g,A=/>/g,M=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,T=/'/g,R=/"/g,_=/^(?:script|style|textarea|title)$/i,x=(t=>(i,...e)=>({_$litType$:t,strings:i,values:e}))(1),z=Symbol.for("lit-noChange"),L=Symbol.for("lit-nothing"),U=new WeakMap,N=$.createTreeWalker($,129,null,!1),H=(t,i)=>{const e=t.length-1,s=[];let n,o=2===i?"<svg>":"",r=j;for(let i=0;i<e;i++){const e=t[i];let l,h,a=-1,u=0;for(;u<e.length&&(r.lastIndex=u,h=r.exec(e),null!==h);)u=r.lastIndex,r===j?"!--"===h[1]?r=k:void 0!==h[1]?r=A:void 0!==h[2]?(_.test(h[2])&&(n=RegExp("</"+h[2],"g")),r=M):void 0!==h[3]&&(r=M):r===M?">"===h[0]?(r=null!=n?n:j,a=-1):void 0===h[1]?a=-2:(a=r.lastIndex-h[2].length,l=h[1],r=void 0===h[3]?M:'"'===h[3]?R:T):r===R||r===T?r=M:r===k||r===A?r=j:(r=M,n=void 0);const c=r===M&&t[i+1].startsWith("/>")?" ":"";o+=r===j?e+S:a>=0?(s.push(l),e.slice(0,a)+"$lit$"+e.slice(a)+y+c):e+y+(-2===a?(s.push(void 0),i):c)}const l=o+(t[e]||"<?>")+(2===i?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==m?m.createHTML(l):l,s]};class D{constructor({strings:t,_$litType$:i},e){let s;this.parts=[];let n=0,o=0;const r=t.length-1,l=this.parts,[h,a]=H(t,i);if(this.el=D.createElement(h,e),N.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(s=N.nextNode())&&l.length<r;){if(1===s.nodeType){if(s.hasAttributes()){const t=[];for(const i of s.getAttributeNames())if(i.endsWith("$lit$")||i.startsWith(y)){const e=a[o++];if(t.push(i),void 0!==e){const t=s.getAttribute(e.toLowerCase()+"$lit$").split(y),i=/([.?@])?(.*)/.exec(e);l.push({type:1,index:n,name:i[2],strings:t,ctor:"."===i[1]?V:"?"===i[1]?X:"@"===i[1]?q:W})}else l.push({type:6,index:n})}for(const i of t)s.removeAttribute(i)}if(_.test(s.tagName)){const t=s.textContent.split(y),i=t.length-1;if(i>0){s.textContent=b?b.emptyScript:"";for(let e=0;e<i;e++)s.append(t[e],E()),N.nextNode(),l.push({type:2,index:++n});s.append(t[i],E())}}}else if(8===s.nodeType)if(s.data===g)l.push({type:2,index:n});else{let t=-1;for(;-1!==(t=s.data.indexOf(y,t+1));)l.push({type:7,index:n}),t+=y.length-1}n++}}static createElement(t,i){const e=$.createElement("template");return e.innerHTML=t,e}}function F(t,i,e=t,s){var n,o,r,l;if(i===z)return i;let h=void 0!==s?null===(n=e._$Cl)||void 0===n?void 0:n[s]:e._$Cu;const a=C(i)?void 0:i._$litDirective$;return(null==h?void 0:h.constructor)!==a&&(null===(o=null==h?void 0:h._$AO)||void 0===o||o.call(h,!1),void 0===a?h=void 0:(h=new a(t),h._$AT(t,e,s)),void 0!==s?(null!==(r=(l=e)._$Cl)&&void 0!==r?r:l._$Cl=[])[s]=h:e._$Cu=h),void 0!==h&&(i=F(t,h._$AS(t,i.values),h,s)),i}class I{constructor(t,i){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var i;const{el:{content:e},parts:s}=this._$AD,n=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:$).importNode(e,!0);N.currentNode=n;let o=N.nextNode(),r=0,l=0,h=s[0];for(;void 0!==h;){if(r===h.index){let i;2===h.type?i=new P(o,o.nextSibling,this,t):1===h.type?i=new h.ctor(o,h.name,h.strings,this,t):6===h.type&&(i=new J(o,this,t)),this.v.push(i),h=s[++l]}r!==(null==h?void 0:h.index)&&(o=N.nextNode(),r++)}return n}m(t){let i=0;for(const e of this.v)void 0!==e&&(void 0!==e.strings?(e._$AI(t,e,i),i+=e.strings.length-2):e._$AI(t[i])),i++}}class P{constructor(t,i,e,s){var n;this.type=2,this._$AH=L,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=e,this.options=s,this._$Cg=null===(n=null==s?void 0:s.isConnected)||void 0===n||n}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=F(this,t,i),C(t)?t===L||null==t||""===t?(this._$AH!==L&&this._$AR(),this._$AH=L):t!==this._$AH&&t!==z&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.S(t):(t=>{var i;return O(t)||"function"==typeof(null===(i=t)||void 0===i?void 0:i[Symbol.iterator])})(t)?this.A(t):this.$(t)}M(t,i=this._$AB){return this._$AA.parentNode.insertBefore(t,i)}S(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==L&&C(this._$AH)?this._$AA.nextSibling.data=t:this.S($.createTextNode(t)),this._$AH=t}T(t){var i;const{values:e,_$litType$:s}=t,n="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=D.createElement(s.h,this.options)),s);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===n)this._$AH.m(e);else{const t=new I(n,this),i=t.p(this.options);t.m(e),this.S(i),this._$AH=t}}_$AC(t){let i=U.get(t.strings);return void 0===i&&U.set(t.strings,i=new D(t)),i}A(t){O(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let e,s=0;for(const n of t)s===i.length?i.push(e=new P(this.M(E()),this.M(E()),this,this.options)):e=i[s],e._$AI(n),s++;s<i.length&&(this._$AR(e&&e._$AB.nextSibling,s),i.length=s)}_$AR(t=this._$AA.nextSibling,i){var e;for(null===(e=this._$AP)||void 0===e||e.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cg=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class W{constructor(t,i,e,s,n){this.type=1,this._$AH=L,this._$AN=void 0,this.element=t,this.name=i,this._$AM=s,this.options=n,e.length>2||""!==e[0]||""!==e[1]?(this._$AH=Array(e.length-1).fill(new String),this.strings=e):this._$AH=L}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,e,s){const n=this.strings;let o=!1;if(void 0===n)t=F(this,t,i,0),o=!C(t)||t!==this._$AH&&t!==z,o&&(this._$AH=t);else{const s=t;let r,l;for(t=n[0],r=0;r<n.length-1;r++)l=F(this,s[e+r],i,r),l===z&&(l=this._$AH[r]),o||(o=!C(l)||l!==this._$AH[r]),l===L?t=L:t!==L&&(t+=(null!=l?l:"")+n[r+1]),this._$AH[r]=l}o&&!s&&this.k(t)}k(t){t===L?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class V extends W{constructor(){super(...arguments),this.type=3}k(t){this.element[this.name]=t===L?void 0:t}}const B=b?b.emptyScript:"";class X extends W{constructor(){super(...arguments),this.type=4}k(t){t&&t!==L?this.element.setAttribute(this.name,B):this.element.removeAttribute(this.name)}}class q extends W{constructor(t,i,e,s,n){super(t,i,e,s,n),this.type=5}_$AI(t,i=this){var e;if((t=null!==(e=F(this,t,i,0))&&void 0!==e?e:L)===z)return;const s=this._$AH,n=t===L&&s!==L||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,o=t!==L&&(s===L||n);n&&this.element.removeEventListener(this.name,this,s),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,e;"function"==typeof this._$AH?this._$AH.call(null!==(e=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==e?e:this.element,t):this._$AH.handleEvent(t)}}class J{constructor(t,i,e){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=e}get _$AU(){return this._$AM._$AU}_$AI(t){F(this,t)}}const K=window.litHtmlPolyfillSupport;
19
+ /**
20
+ * @license
21
+ * Copyright 2017 Google LLC
22
+ * SPDX-License-Identifier: BSD-3-Clause
23
+ */
24
+ var Z,G;null==K||K(D,P),(null!==(p=globalThis.litHtmlVersions)&&void 0!==p?p:globalThis.litHtmlVersions=[]).push("2.1.3");class Q extends w{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,i;const e=super.createRenderRoot();return null!==(t=(i=this.renderOptions).renderBefore)&&void 0!==t||(i.renderBefore=e.firstChild),e}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=((t,i,e)=>{var s,n;const o=null!==(s=null==e?void 0:e.renderBefore)&&void 0!==s?s:i;let r=o._$litPart$;if(void 0===r){const t=null!==(n=null==e?void 0:e.renderBefore)&&void 0!==n?n:null;o._$litPart$=r=new P(i.insertBefore(E(),t),t,void 0,null!=e?e:{})}return r._$AI(t),r})(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return z}}Q.finalized=!0,Q._$litElement$=!0,null===(Z=globalThis.litElementHydrateSupport)||void 0===Z||Z.call(globalThis,{LitElement:Q});const Y=globalThis.litElementPolyfillSupport;null==Y||Y({LitElement:Q}),(null!==(G=globalThis.litElementVersions)&&void 0!==G?G:globalThis.litElementVersions=[]).push("3.1.2");
25
+ /**
26
+ * @license
27
+ * Copyright 2017 Google LLC
28
+ * SPDX-License-Identifier: BSD-3-Clause
29
+ */
30
+ const tt=(t,i)=>"method"===i.kind&&i.descriptor&&!("value"in i.descriptor)?{...i,finisher(e){e.createProperty(i.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:i.key,initializer(){"function"==typeof i.initializer&&(this[i.key]=i.initializer.call(this))},finisher(e){e.createProperty(i.key,t)}};function it(t){return(i,e)=>void 0!==e?((t,i,e)=>{i.constructor.createProperty(e,t)})(t,i,e):tt(t,i)
31
+ /**
32
+ * @license
33
+ * Copyright 2017 Google LLC
34
+ * SPDX-License-Identifier: BSD-3-Clause
35
+ */}
36
+ /**
37
+ * @license
38
+ * Copyright 2021 Google LLC
39
+ * SPDX-License-Identifier: BSD-3-Clause
40
+ */
41
+ var et;null===(et=window.HTMLSlotElement)||void 0===et||et.prototype.assignedElements,function(){function t(t){var i=0;return function(){return i<t.length?{done:!1,value:t[i++]}:{done:!0}}}function i(i){var e="undefined"!=typeof Symbol&&Symbol.iterator&&i[Symbol.iterator];return e?e.call(i):{next:t(i)}}function e(t){if(!(t instanceof Array)){t=i(t);for(var e,s=[];!(e=t.next()).done;)s.push(e.value);t=s}return t}var s="function"==typeof Object.create?Object.create:function(t){function i(){}return i.prototype=t,new i};var n,o=function(t){t=["object"==typeof globalThis&&globalThis,t,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var i=0;i<t.length;++i){var e=t[i];if(e&&e.Math==Math)return e}throw Error("Cannot find global object")}(this),r=function(){if("undefined"!=typeof Reflect&&Reflect.construct){if(function(){function t(){}return Reflect.construct(t,[],(function(){})),new t instanceof t}())return Reflect.construct;var t=Reflect.construct;return function(i,e,s){return i=t(i,e),s&&Reflect.setPrototypeOf(i,s.prototype),i}}return function(t,i,e){return void 0===e&&(e=t),e=s(e.prototype||Object.prototype),Function.prototype.apply.call(t,e,i)||e}}();if("function"==typeof Object.setPrototypeOf)n=Object.setPrototypeOf;else{var l;t:{var h={};try{h.__proto__={a:!0},l=h.a;break t}catch(t){}l=!1}n=l?function(t,i){if(t.__proto__=i,t.__proto__!==i)throw new TypeError(t+" is not extensible");return t}:null}var a=n;if(!ShadowRoot.prototype.createElement){var u,c=window.HTMLElement,d=window.customElements.define,v=window.customElements.get,f=window.customElements,w=new WeakMap,p=new WeakMap,b=new WeakMap,m=new WeakMap;window.CustomElementRegistry=function(){this.l=new Map,this.o=new Map,this.i=new Map,this.h=new Map},window.CustomElementRegistry.prototype.define=function(t,e){if(t=t.toLowerCase(),void 0!==this.j(t))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': the name \""+t+'" has already been used with this registry');if(void 0!==this.o.get(e))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");var s=e.prototype.attributeChangedCallback,n=new Set(e.observedAttributes||[]);if(g(e,n,s),s={g:e,connectedCallback:e.prototype.connectedCallback,disconnectedCallback:e.prototype.disconnectedCallback,adoptedCallback:e.prototype.adoptedCallback,attributeChangedCallback:s,formAssociated:e.formAssociated,formAssociatedCallback:e.prototype.formAssociatedCallback,formDisabledCallback:e.prototype.formDisabledCallback,formResetCallback:e.prototype.formResetCallback,formStateRestoreCallback:e.prototype.formStateRestoreCallback,observedAttributes:n},this.l.set(t,s),this.o.set(e,s),(n=v.call(f,t))||(n=y(t),d.call(f,t,n)),this===window.customElements&&(b.set(e,s),s.s=n),n=this.h.get(t)){this.h.delete(t);for(var o=(n=i(n)).next();!o.done;o=n.next())o=o.value,p.delete(o),$(o,s,!0)}return void 0!==(s=this.i.get(t))&&(s.resolve(e),this.i.delete(t)),e},window.CustomElementRegistry.prototype.upgrade=function(){C.push(this),f.upgrade.apply(f,arguments),C.pop()},window.CustomElementRegistry.prototype.get=function(t){var i;return null==(i=this.l.get(t))?void 0:i.g},window.CustomElementRegistry.prototype.j=function(t){return this.l.get(t)},window.CustomElementRegistry.prototype.whenDefined=function(t){var i=this.j(t);if(void 0!==i)return Promise.resolve(i.g);var e=this.i.get(t);return void 0===e&&((e={}).promise=new Promise((function(t){return e.resolve=t})),this.i.set(t,e)),e.promise},window.CustomElementRegistry.prototype.m=function(t,i,e){var s=this.h.get(i);s||this.h.set(i,s=new Set),e?s.add(t):s.delete(t)},window.HTMLElement=function(){var t=u;if(t)return u=void 0,t;var i=b.get(this.constructor);if(!i)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return t=Reflect.construct(c,[],i.s),Object.setPrototypeOf(t,this.constructor.prototype),w.set(t,i),t},window.HTMLElement.prototype=c.prototype;var y=function(t){function i(){var i=Reflect.construct(c,[],this.constructor);Object.setPrototypeOf(i,HTMLElement.prototype);t:{var e=i.getRootNode();if(!(e===document||e instanceof ShadowRoot)){if((e=C[C.length-1])instanceof CustomElementRegistry){var s=e;break t}(e=e.getRootNode())===document||e instanceof ShadowRoot||(e=(null==(s=m.get(e))?void 0:s.getRootNode())||document)}s=e.customElements}return(e=(s=s||window.customElements).j(t))?$(i,e):p.set(i,s),i}return o.Object.defineProperty(i,"formAssociated",{configurable:!0,enumerable:!0,get:function(){return!0}}),i.prototype.connectedCallback=function(){var i=w.get(this);i?i.connectedCallback&&i.connectedCallback.apply(this,arguments):p.get(this).m(this,t,!0)},i.prototype.disconnectedCallback=function(){var i=w.get(this);i?i.disconnectedCallback&&i.disconnectedCallback.apply(this,arguments):p.get(this).m(this,t,!1)},i.prototype.adoptedCallback=function(){var t,i;null==(t=w.get(this))||null==(i=t.adoptedCallback)||i.apply(this,arguments)},i.prototype.formAssociatedCallback=function(){var t,i=w.get(this);i&&i.formAssociated&&(null==i||null==(t=i.formAssociatedCallback)||t.apply(this,arguments))},i.prototype.formDisabledCallback=function(){var t,i=w.get(this);null!=i&&i.formAssociated&&(null==i||null==(t=i.formDisabledCallback)||t.apply(this,arguments))},i.prototype.formResetCallback=function(){var t,i=w.get(this);null!=i&&i.formAssociated&&(null==i||null==(t=i.formResetCallback)||t.apply(this,arguments))},i.prototype.formStateRestoreCallback=function(){var t,i=w.get(this);null!=i&&i.formAssociated&&(null==i||null==(t=i.formStateRestoreCallback)||t.apply(this,arguments))},i},g=function(t,i,e){if(0!==i.size&&void 0!==e){var s=t.prototype.setAttribute;s&&(t.prototype.setAttribute=function(t,n){if(t=t.toLowerCase(),i.has(t)){var o=this.getAttribute(t);s.call(this,t,n),e.call(this,t,o,n)}else s.call(this,t,n)});var n=t.prototype.removeAttribute;n&&(t.prototype.removeAttribute=function(t){if(t=t.toLowerCase(),i.has(t)){var s=this.getAttribute(t);n.call(this,t),e.call(this,t,s,null)}else n.call(this,t)})}},S=function(t){var i=Object.getPrototypeOf(t);if(i!==window.HTMLElement)return i===c?Object.setPrototypeOf(t,window.HTMLElement):S(i)},$=function(t,i,e){e=void 0!==e&&e,Object.setPrototypeOf(t,i.g.prototype),w.set(t,i),u=t;try{new i.g}catch(t){S(i.g),new i.g}i.observedAttributes.forEach((function(e){t.hasAttribute(e)&&i.attributeChangedCallback.call(t,e,null,t.getAttribute(e))})),e&&i.connectedCallback&&t.isConnected&&i.connectedCallback.call(t)},E=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){var i=E.apply(this,arguments);return t.customElements&&(i.customElements=t.customElements),i};var C=[document],O=function(t,i,e){var s=(e?Object.getPrototypeOf(e):t.prototype)[i];t.prototype[i]=function(){C.push(this);var t=s.apply(e||this,arguments);return void 0!==t&&m.set(t,this),C.pop(),t}};O(ShadowRoot,"createElement",document),O(ShadowRoot,"importNode",document),O(Element,"insertAdjacentHTML");var j=function(t){var i=Object.getOwnPropertyDescriptor(t.prototype,"innerHTML");Object.defineProperty(t.prototype,"innerHTML",Object.assign({},i,{set:function(t){C.push(this),i.set.call(this,t),C.pop()}}))};if(j(Element),j(ShadowRoot),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){var k=new WeakMap,A=HTMLElement.prototype.attachInternals;HTMLElement.prototype.attachInternals=function(t){for(var i=[],s=0;s<arguments.length;++s)i[s]=arguments[s];return i=A.call.apply(A,[this].concat(e(i))),k.set(i,this),i},["setFormValue","setValidity","checkValidity","reportValidity"].forEach((function(t){var i=window.ElementInternals.prototype,s=i[t];i[t]=function(t){for(var i=[],n=0;n<arguments.length;++n)i[n]=arguments[n];if(n=k.get(this),!0!==w.get(n).formAssociated)throw new DOMException("Failed to execute "+s+" on 'ElementInternals': The target element is not a form-associated custom element.");null==s||s.call.apply(s,[this].concat(e(i)))}}));var M=function(t){var i=r(Array,[].concat(e(t)),this.constructor);return i.h=t,i},T=M,R=Array;if(T.prototype=s(R.prototype),T.prototype.constructor=T,a)a(T,R);else for(var _ in R)if("prototype"!=_)if(Object.defineProperties){var x=Object.getOwnPropertyDescriptor(R,_);x&&Object.defineProperty(T,_,x)}else T[_]=R[_];T.u=R.prototype,o.Object.defineProperty(M.prototype,"value",{configurable:!0,enumerable:!0,get:function(){var t;return(null==(t=this.h.find((function(t){return!0===t.checked})))?void 0:t.value)||""}});var z=function(t){var i=this,e=new Map;t.forEach((function(t,s){var n=t.getAttribute("name"),o=e.get(n)||[];i[+s]=t,o.push(t),e.set(n,o)})),this.length=t.length,e.forEach((function(t,e){t&&(i[e]=1===t.length?t[0]:new M(t))}))};z.prototype.namedItem=function(t){return this[t]};var L=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){for(var t=L.get.call(this,[]),e=[],s=(t=i(t)).next();!s.done;s=t.next()){s=s.value;var n=w.get(s);n&&!0!==n.formAssociated||e.push(s)}return new z(e)}})}}}.call(self);try{window.customElements.define("custom-element",null)}catch(rt){const t=window.customElements.define;window.customElements.define=(i,e,s)=>{try{t.bind(window.customElements)(i,e,s)}catch(t){console.warn(i,e,s,t)}}}class st{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,i){this.callbacks=[t],this.debounce(i)}queue(t,i){this.callbacks.push(t),this.debounce(i)}cancel(){null!=this._debounce&&window.clearTimeout(this._debounce)}debounce(t){this.cancel(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout)}runCallbacks(){for(let t of this.callbacks)t();this.callbacks=[]}}class nt extends(
42
+ /**
43
+ * @license
44
+ * Copyright 2021 Google LLC
45
+ * SPDX-License-Identifier: BSD-3-Clause
46
+ */
47
+ function(t){return class extends t{createRenderRoot(){const t=this.constructor,{registry:i,elementDefinitions:e,shadowRootOptions:s}=t;e&&!i&&(t.registry=new CustomElementRegistry,Object.entries(e).forEach((([i,e])=>t.registry.define(i,e))));const n=this.renderOptions.creationScope=this.attachShadow({...s,customElements:t.registry});return r(n,this.constructor.elementStyles),n}}}(Q)){constructor(){super(),this.constructorName=this.constructor.name,this.proto=this.constructor.prototype}getStyles(){return[]}getTemplate(){return null}render(){let t=this.getStyles();return Array.isArray(t)||(t=[t]),x`${t.map((t=>x`<style>${t}</style>`))} ${this.getTemplate()}`}adoptedCallback(){Object.getPrototypeOf(this)!==this.constructorName&&Object.setPrototypeOf(this,this.proto)}updated(t){super.updated(t),setTimeout((()=>this.contentAvailableCallback(t)),0)}contentAvailableCallback(t){}}
48
+ /**
49
+ * @license
50
+ * Copyright 2017 Google LLC
51
+ * SPDX-License-Identifier: BSD-3-Clause
52
+ */const ot=2;
53
+ /**
54
+ * @license
55
+ * Copyright 2017 Google LLC
56
+ * SPDX-License-Identifier: BSD-3-Clause
57
+ */
58
+ class rt extends class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,i,e){this._$Ct=t,this._$AM=i,this._$Ci=e}_$AS(t,i){return this.update(t,i)}update(t,i){return this.render(...i)}}{constructor(t){if(super(t),this.it=L,t.type!==ot)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===L||null==t)return this.vt=void 0,this.it=t;if(t===z)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this.vt;this.it=t;const i=[t];return i.raw=i,this.vt={_$litType$:this.constructor.resultType,strings:i,values:[]}}}var lt,ht;rt.directiveName="unsafeHTML",rt.resultType=1,navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(ht=null===(lt=window.safari)||void 0===lt?void 0:lt.pushNotification)||void 0===ht||ht.toString());var at,ut,ct=function(t,i,e,s){for(var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s,l=t.length-1;l>=0;l--)(n=t[l])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r};t.FtSizeCategory=void 0,(at=t.FtSizeCategory||(t.FtSizeCategory={})).S="S",at.M="M",at.L="L",at.XL="XL",at.XXL="XXL";class dt extends CustomEvent{constructor(t,i){super("change",{detail:{size:t,category:i}})}}t.FtSizeWatcher=class extends nt{constructor(){super(...arguments),this.debounceTimeout=100,this.local=!1,this.size=0,this.category=t.FtSizeCategory.S,this.resizeObserver=new ResizeObserver((()=>this.updateSize())),this.debouncer=new st}getStyles(){return o`.ft-size-watcher--pixel{width:0;height:0;overflow:hidden}.ft-size-watcher--pixel.ft-size-watcher--local{width:100%}.ft-size-watcher--watcher{height:1px;width:100vw}.ft-size-watcher--local .ft-size-watcher--watcher{width:100%}`}getTemplate(){return x`<div class="ft-size-watcher--pixel ${this.local?"ft-size-watcher--local":""}"><div class="ft-size-watcher--watcher"></div></div>`}contentAvailableCallback(t){super.contentAvailableCallback(t),this.watcher&&this.resizeObserver.observe(this.watcher),this.updateSize()}updateSize(){this.debouncer.run((()=>{this.watcher&&this.size!==this.watcher.clientWidth&&(this.size=this.watcher.clientWidth,this.size<768?this.category=t.FtSizeCategory.S:this.size<976?this.category=t.FtSizeCategory.M:this.size<1024?this.category=t.FtSizeCategory.L:this.size<1440?this.category=t.FtSizeCategory.XL:this.category=t.FtSizeCategory.XXL,this.dispatchEvent(new dt(this.size,this.category)))}),this.debounceTimeout)}},t.FtSizeWatcher.elementDefinitions={},ct([it({type:Number})],t.FtSizeWatcher.prototype,"debounceTimeout",void 0),ct([it({type:Boolean})],t.FtSizeWatcher.prototype,"local",void 0),ct([it({type:Number,reflect:!0})],t.FtSizeWatcher.prototype,"size",void 0),ct([it({type:String,reflect:!0})],t.FtSizeWatcher.prototype,"category",void 0),ct([
59
+ /**
60
+ * @license
61
+ * Copyright 2017 Google LLC
62
+ * SPDX-License-Identifier: BSD-3-Clause
63
+ */
64
+ function(t,i){return(({finisher:t,descriptor:i})=>(e,s)=>{var n;if(void 0===s){const s=null!==(n=e.originalKey)&&void 0!==n?n:e.key,o=null!=i?{kind:"method",placement:"prototype",key:s,descriptor:i(e.key)}:{...e,key:s};return null!=t&&(o.finisher=function(i){t(i,s)}),o}{const n=e.constructor;void 0!==i&&Object.defineProperty(e,s,i(s)),null==t||t(n,s)}})({descriptor:e=>{const s={get(){var i,e;return null!==(e=null===(i=this.renderRoot)||void 0===i?void 0:i.querySelector(t))&&void 0!==e?e:null},enumerable:!0,configurable:!0};if(i){const i="symbol"==typeof e?Symbol():"__"+e;s.get=function(){var e,s;return void 0===this[i]&&(this[i]=null!==(s=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==s?s:null),this[i]}}return s}})}(".ft-size-watcher--watcher")],t.FtSizeWatcher.prototype,"watcher",void 0),t.FtSizeWatcher=ct([(ut="ft-size-watcher",t=>{window.customElements.get(ut)||window.customElements.define(ut,t)})],t.FtSizeWatcher),t.FtSizeChangeEvent=dt,Object.defineProperty(t,"t",{value:!0})}({});
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@fluid-topics/ft-size-watcher",
3
+ "version": "0.0.88",
4
+ "description": "Pixel component used to get viewport size",
5
+ "keywords": [
6
+ "Lit"
7
+ ],
8
+ "author": "Fluid Topics <devtopics@antidot.net>",
9
+ "license": "ISC",
10
+ "main": "build/ft-size-watcher.js",
11
+ "web": "build/ft-size-watcher.min.js",
12
+ "typings": "build/ft-size-watcher",
13
+ "files": [
14
+ "build/*.ts",
15
+ "build/*.js"
16
+ ],
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
+ },
21
+ "dependencies": {
22
+ "@fluid-topics/ft-wc-utils": "^0.0.88",
23
+ "lit": "^2.0.2"
24
+ },
25
+ "gitHead": "220e53dba55dfa1de1560abbc30067555f72198c"
26
+ }