UNPKG

7.57 kBPlain TextView Raw
1{"code":"function defineName$__(cls,name){\n\tObject.defineProperty(cls,\"name\",{value:name,configurable:true});\n};;\nfunction inheritClass$__(cls){\n\tObject.getPrototypeOf(cls.prototype).constructor?.inherited?.(cls);\n};;\nfunction iter$__(a){ let v; return a ? ((v=a.toIterable) ? v.call(a) : a) : a; };;\nfunction extend$__(target,ext){\n\t// @ts-ignore\n\tconst descriptors = Object.getOwnPropertyDescriptors(ext);\n\tdelete descriptors.constructor;\n\tif(target.extend__ instanceof Function){\n\t\ttarget.extend__(descriptors,ext);\n\t} else {\n\t\t// @ts-ignore\n\t\tObject.defineProperties(target,descriptors);\n\t}\n\treturn target;\n};\nconst $width$ = Symbol.for('#width'), $height$ = Symbol.for('#height'), $extendType$ = Symbol.for('#extendType');\n\n/*body*/\n// imba$imbaPath=global\nimport {Event,CustomEvent,Element} from '../dom/core';\nimport * as helpers from './helpers';\n\nexport function use_events_resize(){\n\t\n\tglobalThis.imba.uses_events_resize = true;\n\treturn true;\n};\n\nlet resizeObserver = null;\n\nclass ResizeEvent extends CustomEvent {\n\t\n\tαcss(wunit = '1elw',hunit = '1elh',sel = ''){\n\t\t\n\t\tconst target = this.entry?.target;\n\t\t\n\t\tif (target && target.offsetParent) {\n\t\t\t\n\t\t\tlet wu = helpers.parseDimension(wunit);\n\t\t\tlet hu = helpers.parseDimension(hunit);\n\t\t\tlet el = helpers.toElement(sel,target);\n\t\t\t\n\t\t\tlet wp = wu ? ((\"--u_\" + (wu[1]))) : ((\"--\" + wunit));\n\t\t\tlet hp = hu ? ((\"--u_\" + (hu[1]))) : ((\"--\" + hunit));\n\t\t\t\n\t\t\tlet wval = wu ? ((this.width / wu[0])) : this.width;\n\t\t\tlet hval = hu ? ((this.height / hu[0])) : this.height;\n\t\t\t\n\t\t\tel.style.setProperty(wp,wval);\n\t\t\tel.style.setProperty(hp,hval);\n\t\t};\n\t\t\n\t\treturn true;\n\t}\n\t\n\tget width(){\n\t\t\n\t\treturn this[$width$] ??= this.entry.target.offsetWidth;\n\t}\n\t\n\tget height(){\n\t\t\n\t\treturn this[$height$] ??= this.entry.target.offsetHeight;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'ResizeEvent');inheritClass$__(this);}\n};\n\nfunction getResizeObserver(){\n\t\n\tif (!(globalThis.ResizeObserver)) {\n\t\t\n\t\tif (!(resizeObserver)) {\n\t\t\t\n\t\t\tconsole.warn(':resize not supported in this browser');\n\t\t\tresizeObserver = {observe: function() { return true; }};\n\t\t};\n\t};\n\t\n\treturn resizeObserver ||= new ResizeObserver(function(entries) {\n\t\t\n\t\tfor (let $1 = 0, $2 = iter$__(entries), $3 = $2.length; $1 < $3; $1++) {\n\t\t\tlet entry = $2[$1];\n\t\t\tlet e = new CustomEvent('resize',{bubbles: false,detail: entry});\n\t\t\te.entry = entry;\n\t\t\te.rect = entry.contentRect;\n\t\t\te[$extendType$](ResizeEvent);\n\t\t\tentry.target.dispatchEvent(e);\n\t\t\t\n\t\t\tlet e2 = new CustomEvent('resized',{bubbles: true,detail: entry});\n\t\t\tentry.target.dispatchEvent(e2);\n\t\t};\n\t\treturn;\n\t\t// TODO Add modifier for only triggering when element is attached.\n\t\t// resize triggers by default with w/h 0 when element is removed.\n\t});\n};\n\nclass ΩElement {\n\t\n\ton$resize(chain,context,handler,o){\n\t\t\n\t\tgetResizeObserver().observe(this);\n\t\tthis.addEventListener('resize',handler,o);\n\t\treturn handler;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Element');}\n};\nextend$__(Element.prototype,ΩElement.prototype);\n;\n","map":{"version":3,"file":"resize.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/events/resize.imba"],"sourcesContent":["# imba$imbaPath=global\nimport {Event,CustomEvent,Element} from '../dom/core'\nimport * as helpers from './helpers'\n\nexport def use_events_resize\n\tglobal.imba.uses_events_resize = yes\n\tyes\n\nlet resizeObserver = null\n\nclass ResizeEvent < CustomEvent\n\tdef @css wunit = '1elw', hunit = '1elh', sel = ''\n\t\tconst target = entry..target\n\t\t\n\t\tif target and target.offsetParent\n\t\t\tlet wu = helpers.parseDimension(wunit)\n\t\t\tlet hu = helpers.parseDimension(hunit)\n\t\t\tlet el = helpers.toElement(sel,target)\n\n\t\t\tlet wp = wu ? \"--u_{wu[1]}\" : \"--{wunit}\"\n\t\t\tlet hp = hu ? \"--u_{hu[1]}\" : \"--{hunit}\"\n\n\t\t\tlet wval = wu ? (self.width / wu[0]) : self.width\n\t\t\tlet hval = hu ? (self.height / hu[0]) : self.height\n\n\t\t\tel.style.setProperty(wp,wval)\n\t\t\tel.style.setProperty(hp,hval)\n\n\t\treturn yes\n\n\tget width\n\t\t#width ??= entry.target.offsetWidth\n\n\tget height\n\t\t#height ??= entry.target.offsetHeight\n\ndef getResizeObserver\n\tunless global.ResizeObserver\n\t\tunless resizeObserver\n\t\t\tconsole.warn(':resize not supported in this browser')\n\t\t\tresizeObserver = {observe: (do yes)}\n\n\tresizeObserver ||= new ResizeObserver do(entries)\n\t\tfor entry in entries\n\t\t\tlet e = new CustomEvent('resize', bubbles: false, detail: entry)\n\t\t\te.entry = entry\n\t\t\te.rect = entry.contentRect\n\t\t\te.#extendType(ResizeEvent)\n\t\t\tentry.target.dispatchEvent(e)\n\n\t\t\tlet e2 = new CustomEvent('resized', bubbles: true, detail: entry)\n\t\t\tentry.target.dispatchEvent(e2)\n\t\treturn\n# TODO Add modifier for only triggering when element is attached.\n# resize triggers by default with w/h 0 when element is removed.\n\nextend class Element\n\tdef on$resize(chain, context, handler,o)\n\t\tgetResizeObserver!.observe(this)\n\t\tself.addEventListener('resize',handler,o)\n\t\treturn handler"],"names":[],"mappings":"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"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file