@angelscmf/front 1.0.30 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AngelsFrontAnimationLibrary.js +15 -14
- package/dist/AngelsFrontAnimationLibrary.js.map +1 -1
- package/dist/AngelsFrontAnimationLibrary.mjs +15 -14
- package/dist/AngelsFrontAnimationLibrary.mjs.map +1 -1
- package/dist/AngelsFrontApplication.js +59 -47
- package/dist/AngelsFrontApplication.js.map +1 -1
- package/dist/AngelsFrontApplication.mjs +59 -47
- package/dist/AngelsFrontApplication.mjs.map +1 -1
- package/dist/AngelsFrontDOMLibrary.d.mts +3 -2
- package/dist/AngelsFrontDOMLibrary.d.ts +3 -2
- package/dist/AngelsFrontDOMLibrary.js +30 -16
- package/dist/AngelsFrontDOMLibrary.js.map +1 -1
- package/dist/AngelsFrontDOMLibrary.mjs +29 -16
- package/dist/AngelsFrontDOMLibrary.mjs.map +1 -1
- package/dist/AngelsFrontElement.d.mts +2 -1
- package/dist/AngelsFrontElement.d.ts +2 -1
- package/dist/AngelsFrontElement.js +15 -14
- package/dist/AngelsFrontElement.js.map +1 -1
- package/dist/AngelsFrontElement.mjs +15 -14
- package/dist/AngelsFrontElement.mjs.map +1 -1
- package/dist/AngelsFrontLoader.js +177 -16
- package/dist/AngelsFrontLoader.js.map +1 -1
- package/dist/AngelsFrontLoader.mjs +183 -16
- package/dist/AngelsFrontLoader.mjs.map +1 -1
- package/dist/AngelsFrontPage.js +59 -47
- package/dist/AngelsFrontPage.js.map +1 -1
- package/dist/AngelsFrontPage.mjs +59 -47
- package/dist/AngelsFrontPage.mjs.map +1 -1
- package/dist/AngelsFrontWidgetClass.js +59 -47
- package/dist/AngelsFrontWidgetClass.js.map +1 -1
- package/dist/AngelsFrontWidgetClass.mjs +59 -47
- package/dist/AngelsFrontWidgetClass.mjs.map +1 -1
- package/package.json +5 -1
- package/sass/AngelsDesign.scss +5 -0
- package/sass/angelsTags/_a-alpha.scss +29 -0
- package/sass/angelsTags/_a-center.scss +15 -0
- package/sass/angelsTags/_a-float.scss +42 -0
- package/sass/angelsTags/_a-icenter.scss +15 -0
- package/sass/angelsTags/_a-page.scss +2 -2
- package/sass/angelsTags/_a-text-transform.scss +29 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/AngelsFrontWidgetClass.ts","../src/AngelsFrontDOMLibrary.ts","../src/AngelsFrontAnimationLibrary.ts","../src/AngelsFrontElement.ts","../src/AngelsFrontMod.ts"],"sourcesContent":["import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport AngelsFrontMod from \"./AngelsFrontMod\";\n\nexport type AngelsFrontWidget<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontWidgetClass<THTMLElement> & THTMLElement;\n\nexport default interface AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends HTMLElement { }\n\nexport default class AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends AngelsFrontMod {\n\n readonly widElement: AngelsFrontElement<TWidgetHTMLElement>;\n\n constructor(element: TWidgetHTMLElement) {\n super();\n this.widElement = new AngelsFrontElementClass(element) as AngelsFrontElement<TWidgetHTMLElement>;\n return new Proxy(this, {\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n const valueOfProperty = target[prop];\n if (typeof valueOfProperty === 'function') {\n return Reflect.get(target, prop);\n }\n return valueOfProperty;\n }\n\n const valueOfProperty = target.widElement[prop];\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.widElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target) {\n target[prop] = newValue;\n } else {\n target.widElement[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontWidget<TWidgetHTMLElement>;\n }\n\n widFindElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> | null | null {\n const findElement = this.widElement.querySelector(selector);\n if (findElement) {\n return aFindElement<THTMLElement>(findElement);\n }\n return null;\n }\n\n widFindElements<THTMLElement extends HTMLElement = HTMLElement>(selector: string): Array<AngelsFrontElement<THTMLElement>> {\n return Array.from(this.widElement.querySelectorAll(selector))\n .map(aFindElement);\n }\n\n widRequireElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> {\n const element = this.widElement.querySelector(selector);\n if (element) {\n return aFindElement<THTMLElement>(element);\n }\n throw Error(`Element '${selector}' is not found.`);\n }\n}","import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport { AngelsFrontWidget } from \"./AngelsFrontWidgetClass\";\nimport AngelsFrontWidgetClass from \"./AngelsFrontWidgetClass\";\n\nexport function aLibCreateWidget<THTMLElement extends HTMLElement = HTMLElement>(element: THTMLElement): AngelsFrontWidget<THTMLElement> {\n return (new AngelsFrontWidgetClass<THTMLElement>(element)) as AngelsFrontWidget<THTMLElement>;\n}\n\nexport function aLibFindElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType<THTMLElement>): AngelsFrontElement<THTMLElement> | null {\n\n let element: THTMLElement;\n if (typeof selector === 'undefined') {\n return null;\n } else if (selector === null) {\n return null;\n } else if (typeof selector === 'string') {\n const findElement = document.querySelector<THTMLElement>(selector);\n if (!findElement) {\n return null;\n }\n element = findElement;\n } else if (selector instanceof HTMLElement) {\n element = selector as THTMLElement;\n } else if (selector instanceof Element) {\n element = selector as THTMLElement;\n } else if (selector instanceof AngelsFrontElementClass) {\n return selector as AngelsFrontElement<THTMLElement>;\n } else {\n element = selector;\n }\n return new AngelsFrontElementClass(element) as AngelsFrontElement<THTMLElement>;\n}\n\nexport function aLibRequireElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibFindElement<THTMLElement>(selector);\n if (element) {\n return element;\n }\n throw Error(`Element not found by '${selector}' selector.`);\n}\n\nexport function aLibHideElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = true;\n return element;\n}\n\nexport function aLibShowElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = false;\n return element;\n}\n\nexport function aLibToggleElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = !innerElement.hidden;\n }\n if (switcher) {\n return aLibShowElement(innerElement);\n } else {\n return aLibHideElement(innerElement);\n }\n}\n","import { aLibRequireElement } from \"./AngelsFrontDOMLibrary\";\n\nexport async function aLibConcealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n resolve();\n }\n\n innerElement.classList.add('a-out-animation');\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n innerElement.hidden = true;\n resolve();\n }\n });\n\n return promise;\n}\n\nexport async function aLibEngageElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = innerElement.hidden;\n }\n\n if (switcher) {\n return await aLibRevealElement(innerElement);\n } else {\n return await aLibConcealElement(innerElement);\n }\n}\n\nexport async function aLibRevealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (!innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n resolve();\n }\n\n innerElement.hidden = false;\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n resolve();\n }\n });\n\n return promise;\n}\n","import { aLibConcealElement, aLibEngageElement, aLibRevealElement } from \"./AngelsFrontAnimationLibrary\";\n\nexport type AngelsFrontElement<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontElementClass<THTMLElement> & THTMLElement;\n\nexport default class AngelsFrontElementClass<THTMLElement extends HTMLElement = HTMLElement> {\n\n public originalElement: THTMLElement;\n\n constructor(element: THTMLElement) {\n\n this.originalElement = element;\n\n return new Proxy(this, {\n\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n // @test AngelsFrontElementClass proxies methods to the original element\n return Reflect.get(target, prop);\n }\n // @test AngelsFrontElementClass uses methods of the main object\n const valueOfProperty = Reflect.get(target.originalElement, prop);\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.originalElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target.originalElement) {\n // @test AngelsFrontElementClass sets properties on the original element\n target.originalElement[prop] = newValue;\n } else {\n // @test AngelsFrontElementClass sets properties on the main object\n target[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontElement<THTMLElement>;\n }\n\n aConcealElement(): this {\n\n // @test aConcealElement() calls aLibConcealElement() with the original element\n aLibConcealElement(this.originalElement);\n\n // @test aConcealElement() returns this\n return this;\n }\n\n aEngageElement(switcher: boolean | undefined = undefined): this {\n\n // @test aEngageElement() calls aLibEngageElement() with the original element and the same switcher\n aLibEngageElement(this.originalElement, switcher);\n\n // @test aEngageElement() returns this\n return this;\n }\n\n aHideElement(): this {\n\n // @test aHideElement() sets the hidden property of the element to true\n this.originalElement.hidden = true;\n\n // @test aHideElement() returns this\n return this;\n }\n\n aRevealElement(): this {\n\n // @test aRevealElement() calls aLibRevealElement() with the original element\n aLibRevealElement(this.originalElement);\n\n // @test aRevealElement() returns this\n return this;\n }\n\n aShowElement(): this {\n\n // @test aShowElement() sets the hidden property of the element to false\n this.originalElement.hidden = false;\n\n // @test aShowElement() returns this\n return this;\n }\n\n aSetTextContent(content: string): this {\n\n // @test aSetTextContent() converts non-string content to string before setting\n const contentToSet = content.toString();\n\n // @test aSetTextContent() sets originalElement.textContent\n this.originalElement.textContent = contentToSet;\n\n // @test aSetTextContent() returns this for chaining\n return this;\n }\n\n aTextContent(): string {\n if (this.originalElement.textContent === null) {\n // @test aTextContent() returns empty string if originalElement.textContent is null\n return ``;\n }\n\n // @test aTextContent() returns textContent of originalElement\n return this.originalElement.textContent;\n }\n}\n","export default class AngelsFrontMod {\n\n protected modSubMods: Array<AngelsFrontMod>;\n public modWaitStartTimeout = 1000;\n\n constructor() {\n this.modSubMods = new Array;\n }\n\n /**\n * Starts AngelsFrontMod.\n */\n modStart() {\n this.modInit();\n this.modBind();\n this.modLink();\n this.modRun();\n setTimeout(() => {\n this.modWait();\n }, this.modWaitStartTimeout);\n }\n\n /**\n * Finishes AngelsFrontMod.\n */\n modFinish() {\n this.modDeWait();\n this.modDeRun();\n this.modDeLink();\n this.modDeBind();\n this.modDeInit();\n }\n\n /**\n * Inits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modInit() {\n this.modSubMods.forEach(mod => mod.modInit());\n }\n\n /**\n * Binds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modBind() {\n this.modSubMods.forEach(mod => mod.modBind());\n }\n\n /**\n * Links AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modLink() {\n this.modSubMods.forEach(mod => mod.modLink());\n }\n\n /**\n * Runs AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modRun() {\n this.modSubMods.forEach(mod => mod.modRun());\n }\n\n /**\n * Waits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modWait() {\n this.modSubMods.forEach(mod => mod.modWait());\n }\n\n /**\n * DeInits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeInit() {\n this.modSubMods.forEach(mod => mod.modDeInit());\n }\n /**\n * DeBinds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeBind() {\n this.modSubMods.forEach(mod => mod.modDeBind());\n }\n /**\n * DeLinks AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeLink() {\n this.modSubMods.forEach(mod => mod.modDeLink());\n }\n /**\n * DeRuns AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeRun() {\n this.modSubMods.forEach(mod => mod.modDeRun());\n }\n /**\n * DeWaits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeWait() {\n this.modSubMods.forEach(mod => mod.modDeWait());\n }\n\n modDestructor() {\n this.modSubMods.forEach(mod => mod.modDestructor());\n }\n\n modAddSubMod(mod: null): null;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod | null): TMod | null {\n if (mod) {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n return null;\n }\n\n modRequireSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n}"],"mappings":"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","names":["valueOfProperty"]}
|
|
1
|
+
{"version":3,"sources":["../src/AngelsFrontWidgetClass.ts","../src/AngelsFrontAnimationLibrary.ts","../src/AngelsFrontElement.ts","../src/AngelsFrontDOMLibrary.ts","../src/AngelsFrontMod.ts"],"sourcesContent":["import { aLibPrepareElement } from \"./AngelsFrontDOMLibrary\";\nimport { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport AngelsFrontMod from \"./AngelsFrontMod\";\n\nexport type AngelsFrontWidget<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontWidgetClass<THTMLElement> & THTMLElement;\n\nexport default interface AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends HTMLElement { }\n\nexport default class AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends AngelsFrontMod {\n\n readonly widElement: AngelsFrontElement<TWidgetHTMLElement>;\n\n constructor(element: TWidgetHTMLElement) {\n super();\n this.widElement = aLibPrepareElement<TWidgetHTMLElement>(element);\n return new Proxy(this, {\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n const valueOfProperty = target[prop];\n if (typeof valueOfProperty === 'function') {\n return Reflect.get(target, prop);\n }\n return valueOfProperty;\n }\n\n const valueOfProperty = target.widElement[prop];\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.widElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target) {\n target[prop] = newValue;\n } else {\n target.widElement[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontWidget<TWidgetHTMLElement>;\n }\n\n widFindElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> | null | null {\n const findElement = this.widElement.querySelector(selector);\n if (findElement) {\n return aFindElement<THTMLElement>(findElement);\n }\n return null;\n }\n\n widFindElements<THTMLElement extends HTMLElement = HTMLElement>(selector: string): Array<AngelsFrontElement<THTMLElement>> {\n return Array.from(this.widElement.querySelectorAll(selector))\n .map(aFindElement);\n }\n\n widRequireElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> {\n const element = this.widElement.querySelector(selector);\n if (element) {\n return aFindElement<THTMLElement>(element);\n }\n throw Error(`Element '${selector}' is not found.`);\n }\n}","import { aLibRequireElement } from \"./AngelsFrontDOMLibrary\";\n\nexport async function aLibConcealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n resolve();\n }\n\n innerElement.classList.add('a-out-animation');\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n innerElement.hidden = true;\n resolve();\n }\n });\n\n return promise;\n}\n\nexport async function aLibEngageElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = innerElement.hidden;\n }\n\n if (switcher) {\n return await aLibRevealElement(innerElement);\n } else {\n return await aLibConcealElement(innerElement);\n }\n}\n\nexport async function aLibRevealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (!innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n resolve();\n }\n\n innerElement.hidden = false;\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n resolve();\n }\n });\n\n return promise;\n}\n","import { aLibConcealElement, aLibEngageElement, aLibRevealElement } from \"./AngelsFrontAnimationLibrary\";\n\nexport type AngelsFrontElement<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontElementClass<THTMLElement> & THTMLElement;\n\nexport default class AngelsFrontElementClass<THTMLElement extends HTMLElement = HTMLElement> {\n\n public elementBase: THTMLElement;\n aProxyBaseClass: typeof AngelsFrontElementClass = AngelsFrontElementClass;\n\n constructor(element: THTMLElement) {\n\n this.elementBase = element;\n\n return new Proxy(this, {\n\n get(target: AngelsFrontElementClass, prop: string | symbol, receiver: any) {\n if (prop in target) {\n // @test AngelsFrontElementClass proxies methods to the original element\n return Reflect.get(target, prop);\n }\n // @test AngelsFrontElementClass uses methods of the main object\n const valueOfProperty = Reflect.get(target.elementBase, prop);\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.elementBase);\n }\n return valueOfProperty;\n },\n\n set(target: AngelsFrontElementClass, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target.elementBase) {\n // @test AngelsFrontElementClass sets properties on the original element\n (target as any).elementBase[prop] = newValue;\n } else {\n // @test AngelsFrontElementClass sets properties on the main object\n (target as any)[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontElement<THTMLElement>;\n }\n\n aConcealElement(): this {\n\n // @test aConcealElement() calls aLibConcealElement() with the original element\n aLibConcealElement(this.elementBase);\n\n // @test aConcealElement() returns this\n return this;\n }\n\n aEngageElement(switcher: boolean | undefined = undefined): this {\n\n // @test aEngageElement() calls aLibEngageElement() with the original element and the same switcher\n aLibEngageElement(this.elementBase, switcher);\n\n // @test aEngageElement() returns this\n return this;\n }\n\n aHideElement(): this {\n\n // @test aHideElement() sets the hidden property of the element to true\n this.elementBase.hidden = true;\n\n // @test aHideElement() returns this\n return this;\n }\n\n aRevealElement(): this {\n\n // @test aRevealElement() calls aLibRevealElement() with the original element\n aLibRevealElement(this.elementBase);\n\n // @test aRevealElement() returns this\n return this;\n }\n\n aShowElement(): this {\n\n // @test aShowElement() sets the hidden property of the element to false\n this.elementBase.hidden = false;\n\n // @test aShowElement() returns this\n return this;\n }\n\n aSetTextContent(content: string): this {\n\n // @test aSetTextContent() converts non-string content to string before setting\n const contentToSet = content.toString();\n\n // @test aSetTextContent() sets elementBase.textContent\n this.elementBase.textContent = contentToSet;\n\n // @test aSetTextContent() returns this for chaining\n return this;\n }\n\n aTextContent(): string {\n if (this.elementBase.textContent === null) {\n // @test aTextContent() returns empty string if elementBase.textContent is null\n return ``;\n }\n\n // @test aTextContent() returns textContent of elementBase\n return this.elementBase.textContent;\n }\n}\n","import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport { AngelsFrontWidget } from \"./AngelsFrontWidgetClass\";\nimport AngelsFrontWidgetClass from \"./AngelsFrontWidgetClass\";\n\nexport function aLibCreateWidget<THTMLElement extends HTMLElement = HTMLElement>(element: THTMLElement): AngelsFrontWidget<THTMLElement> {\n return (new AngelsFrontWidgetClass<THTMLElement>(element)) as AngelsFrontWidget<THTMLElement>;\n}\n\nexport function aLibFindElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType<THTMLElement>): AngelsFrontElement<THTMLElement> | null {\n\n let element: THTMLElement;\n if (typeof selector === 'undefined') {\n return null;\n } else if (selector === null) {\n return null;\n } else if (typeof selector === 'string') {\n const findElement = document.querySelector<THTMLElement>(selector);\n if (!findElement) {\n return null;\n }\n element = findElement;\n } else if (selector instanceof HTMLElement) {\n element = selector as THTMLElement;\n } else if (selector instanceof Element) {\n element = selector as THTMLElement;\n } else if (selector instanceof AngelsFrontElementClass) {\n return selector as AngelsFrontElement<THTMLElement>;\n } else {\n element = selector;\n }\n return new AngelsFrontElementClass(element) as AngelsFrontElement<THTMLElement>;\n}\n\nexport function aLibRequireElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibFindElement<THTMLElement>(selector);\n if (element) {\n return element;\n }\n throw Error(`Element not found by '${selector}' selector.`);\n}\n\nexport function aLibHideElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = true;\n return element;\n}\n\nexport function aLibPrepareElement<TWidgetHTMLElement extends HTMLElement = HTMLElement>(element: TWidgetHTMLElement | AngelsFrontElementClass<TWidgetHTMLElement>): AngelsFrontElement<TWidgetHTMLElement> {\n let angelsFrontElement: AngelsFrontElement<TWidgetHTMLElement>;\n if ('aProxyBaseClass' in element && element.aProxyBaseClass === AngelsFrontElementClass) {\n // @test aLibPrepareElement() returns existing AngelsFrontElement when element has aProxyBaseClass\n angelsFrontElement = element as AngelsFrontElement<TWidgetHTMLElement>;\n } else if (element instanceof HTMLElement) {\n // @test aLibPrepareElement() creates new AngelsFrontElement when element is HTMLElement\n angelsFrontElement = new AngelsFrontElementClass(element) as AngelsFrontElement<TWidgetHTMLElement>;\n } else {\n // @test aLibPrepareElement() throws error when element is invalid type\n throw Error('Cannot prepare element: invalid element type.');\n }\n return angelsFrontElement\n}\n\nexport function aLibShowElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = false;\n return element;\n}\n\nexport function aLibToggleElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n // @test aLibToggleElement() toggles element when switcher undefined and hidden false\n // @test aLibToggleElement() toggles element when switcher undefined and hidden true\n switcher = innerElement.hidden;\n }\n if (switcher) {\n // @test aLibToggleElement() shows element when switcher is true\n return aLibShowElement(innerElement);\n } else {\n // @test aLibToggleElement() hides element when switcher is false\n return aLibHideElement(innerElement);\n }\n}\n","export default class AngelsFrontMod {\n\n protected modSubMods: Array<AngelsFrontMod>;\n public modWaitStartTimeout = 1000;\n\n constructor() {\n this.modSubMods = new Array;\n }\n\n /**\n * Starts AngelsFrontMod.\n */\n modStart() {\n this.modInit();\n this.modBind();\n this.modLink();\n this.modRun();\n setTimeout(() => {\n this.modWait();\n }, this.modWaitStartTimeout);\n }\n\n /**\n * Finishes AngelsFrontMod.\n */\n modFinish() {\n this.modDeWait();\n this.modDeRun();\n this.modDeLink();\n this.modDeBind();\n this.modDeInit();\n }\n\n /**\n * Inits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modInit() {\n this.modSubMods.forEach(mod => mod.modInit());\n }\n\n /**\n * Binds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modBind() {\n this.modSubMods.forEach(mod => mod.modBind());\n }\n\n /**\n * Links AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modLink() {\n this.modSubMods.forEach(mod => mod.modLink());\n }\n\n /**\n * Runs AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modRun() {\n this.modSubMods.forEach(mod => mod.modRun());\n }\n\n /**\n * Waits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modWait() {\n this.modSubMods.forEach(mod => mod.modWait());\n }\n\n /**\n * DeInits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeInit() {\n this.modSubMods.forEach(mod => mod.modDeInit());\n }\n /**\n * DeBinds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeBind() {\n this.modSubMods.forEach(mod => mod.modDeBind());\n }\n /**\n * DeLinks AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeLink() {\n this.modSubMods.forEach(mod => mod.modDeLink());\n }\n /**\n * DeRuns AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeRun() {\n this.modSubMods.forEach(mod => mod.modDeRun());\n }\n /**\n * DeWaits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeWait() {\n this.modSubMods.forEach(mod => mod.modDeWait());\n }\n\n modDestructor() {\n this.modSubMods.forEach(mod => mod.modDestructor());\n }\n\n modAddSubMod(mod: null): null;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod | null): TMod | null {\n if (mod) {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n return null;\n }\n\n modRequireSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n}"],"mappings":"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","names":["valueOfProperty"]}
|
|
@@ -19,38 +19,6 @@ var __async = (__this, __arguments, generator) => {
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
// src/AngelsFrontDOMLibrary.ts
|
|
23
|
-
function aLibFindElement(selector) {
|
|
24
|
-
let element;
|
|
25
|
-
if (typeof selector === "undefined") {
|
|
26
|
-
return null;
|
|
27
|
-
} else if (selector === null) {
|
|
28
|
-
return null;
|
|
29
|
-
} else if (typeof selector === "string") {
|
|
30
|
-
const findElement = document.querySelector(selector);
|
|
31
|
-
if (!findElement) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
element = findElement;
|
|
35
|
-
} else if (selector instanceof HTMLElement) {
|
|
36
|
-
element = selector;
|
|
37
|
-
} else if (selector instanceof Element) {
|
|
38
|
-
element = selector;
|
|
39
|
-
} else if (selector instanceof AngelsFrontElementClass) {
|
|
40
|
-
return selector;
|
|
41
|
-
} else {
|
|
42
|
-
element = selector;
|
|
43
|
-
}
|
|
44
|
-
return new AngelsFrontElementClass(element);
|
|
45
|
-
}
|
|
46
|
-
function aLibRequireElement(selector) {
|
|
47
|
-
const element = aLibFindElement(selector);
|
|
48
|
-
if (element) {
|
|
49
|
-
return element;
|
|
50
|
-
}
|
|
51
|
-
throw Error(`Element not found by '${selector}' selector.`);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
22
|
// src/AngelsFrontAnimationLibrary.ts
|
|
55
23
|
function aLibConcealElement(originalElement) {
|
|
56
24
|
return __async(this, null, function* () {
|
|
@@ -132,23 +100,24 @@ function aLibRevealElement(originalElement) {
|
|
|
132
100
|
}
|
|
133
101
|
|
|
134
102
|
// src/AngelsFrontElement.ts
|
|
135
|
-
var AngelsFrontElementClass = class {
|
|
103
|
+
var AngelsFrontElementClass = class _AngelsFrontElementClass {
|
|
136
104
|
constructor(element) {
|
|
137
|
-
this.
|
|
105
|
+
this.aProxyBaseClass = _AngelsFrontElementClass;
|
|
106
|
+
this.elementBase = element;
|
|
138
107
|
return new Proxy(this, {
|
|
139
108
|
get(target, prop, receiver) {
|
|
140
109
|
if (prop in target) {
|
|
141
110
|
return Reflect.get(target, prop);
|
|
142
111
|
}
|
|
143
|
-
const valueOfProperty = Reflect.get(target.
|
|
112
|
+
const valueOfProperty = Reflect.get(target.elementBase, prop);
|
|
144
113
|
if (typeof valueOfProperty === "function") {
|
|
145
|
-
return valueOfProperty.bind(target.
|
|
114
|
+
return valueOfProperty.bind(target.elementBase);
|
|
146
115
|
}
|
|
147
116
|
return valueOfProperty;
|
|
148
117
|
},
|
|
149
118
|
set(target, prop, newValue, receiver) {
|
|
150
|
-
if (prop in target.
|
|
151
|
-
target.
|
|
119
|
+
if (prop in target.elementBase) {
|
|
120
|
+
target.elementBase[prop] = newValue;
|
|
152
121
|
} else {
|
|
153
122
|
target[prop] = newValue;
|
|
154
123
|
}
|
|
@@ -157,38 +126,81 @@ var AngelsFrontElementClass = class {
|
|
|
157
126
|
});
|
|
158
127
|
}
|
|
159
128
|
aConcealElement() {
|
|
160
|
-
aLibConcealElement(this.
|
|
129
|
+
aLibConcealElement(this.elementBase);
|
|
161
130
|
return this;
|
|
162
131
|
}
|
|
163
132
|
aEngageElement(switcher = void 0) {
|
|
164
|
-
aLibEngageElement(this.
|
|
133
|
+
aLibEngageElement(this.elementBase, switcher);
|
|
165
134
|
return this;
|
|
166
135
|
}
|
|
167
136
|
aHideElement() {
|
|
168
|
-
this.
|
|
137
|
+
this.elementBase.hidden = true;
|
|
169
138
|
return this;
|
|
170
139
|
}
|
|
171
140
|
aRevealElement() {
|
|
172
|
-
aLibRevealElement(this.
|
|
141
|
+
aLibRevealElement(this.elementBase);
|
|
173
142
|
return this;
|
|
174
143
|
}
|
|
175
144
|
aShowElement() {
|
|
176
|
-
this.
|
|
145
|
+
this.elementBase.hidden = false;
|
|
177
146
|
return this;
|
|
178
147
|
}
|
|
179
148
|
aSetTextContent(content) {
|
|
180
149
|
const contentToSet = content.toString();
|
|
181
|
-
this.
|
|
150
|
+
this.elementBase.textContent = contentToSet;
|
|
182
151
|
return this;
|
|
183
152
|
}
|
|
184
153
|
aTextContent() {
|
|
185
|
-
if (this.
|
|
154
|
+
if (this.elementBase.textContent === null) {
|
|
186
155
|
return ``;
|
|
187
156
|
}
|
|
188
|
-
return this.
|
|
157
|
+
return this.elementBase.textContent;
|
|
189
158
|
}
|
|
190
159
|
};
|
|
191
160
|
|
|
161
|
+
// src/AngelsFrontDOMLibrary.ts
|
|
162
|
+
function aLibFindElement(selector) {
|
|
163
|
+
let element;
|
|
164
|
+
if (typeof selector === "undefined") {
|
|
165
|
+
return null;
|
|
166
|
+
} else if (selector === null) {
|
|
167
|
+
return null;
|
|
168
|
+
} else if (typeof selector === "string") {
|
|
169
|
+
const findElement = document.querySelector(selector);
|
|
170
|
+
if (!findElement) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
element = findElement;
|
|
174
|
+
} else if (selector instanceof HTMLElement) {
|
|
175
|
+
element = selector;
|
|
176
|
+
} else if (selector instanceof Element) {
|
|
177
|
+
element = selector;
|
|
178
|
+
} else if (selector instanceof AngelsFrontElementClass) {
|
|
179
|
+
return selector;
|
|
180
|
+
} else {
|
|
181
|
+
element = selector;
|
|
182
|
+
}
|
|
183
|
+
return new AngelsFrontElementClass(element);
|
|
184
|
+
}
|
|
185
|
+
function aLibRequireElement(selector) {
|
|
186
|
+
const element = aLibFindElement(selector);
|
|
187
|
+
if (element) {
|
|
188
|
+
return element;
|
|
189
|
+
}
|
|
190
|
+
throw Error(`Element not found by '${selector}' selector.`);
|
|
191
|
+
}
|
|
192
|
+
function aLibPrepareElement(element) {
|
|
193
|
+
let angelsFrontElement;
|
|
194
|
+
if ("aProxyBaseClass" in element && element.aProxyBaseClass === AngelsFrontElementClass) {
|
|
195
|
+
angelsFrontElement = element;
|
|
196
|
+
} else if (element instanceof HTMLElement) {
|
|
197
|
+
angelsFrontElement = new AngelsFrontElementClass(element);
|
|
198
|
+
} else {
|
|
199
|
+
throw Error("Cannot prepare element: invalid element type.");
|
|
200
|
+
}
|
|
201
|
+
return angelsFrontElement;
|
|
202
|
+
}
|
|
203
|
+
|
|
192
204
|
// src/AngelsFrontMod.ts
|
|
193
205
|
var AngelsFrontMod = class {
|
|
194
206
|
constructor() {
|
|
@@ -299,7 +311,7 @@ var AngelsFrontMod = class {
|
|
|
299
311
|
var AngelsFrontWidgetClass = class extends AngelsFrontMod {
|
|
300
312
|
constructor(element) {
|
|
301
313
|
super();
|
|
302
|
-
this.widElement =
|
|
314
|
+
this.widElement = aLibPrepareElement(element);
|
|
303
315
|
return new Proxy(this, {
|
|
304
316
|
get(target, prop, receiver) {
|
|
305
317
|
if (prop in target) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/AngelsFrontDOMLibrary.ts","../src/AngelsFrontAnimationLibrary.ts","../src/AngelsFrontElement.ts","../src/AngelsFrontMod.ts","../src/AngelsFrontWidgetClass.ts"],"sourcesContent":["import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport { AngelsFrontWidget } from \"./AngelsFrontWidgetClass\";\nimport AngelsFrontWidgetClass from \"./AngelsFrontWidgetClass\";\n\nexport function aLibCreateWidget<THTMLElement extends HTMLElement = HTMLElement>(element: THTMLElement): AngelsFrontWidget<THTMLElement> {\n return (new AngelsFrontWidgetClass<THTMLElement>(element)) as AngelsFrontWidget<THTMLElement>;\n}\n\nexport function aLibFindElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType<THTMLElement>): AngelsFrontElement<THTMLElement> | null {\n\n let element: THTMLElement;\n if (typeof selector === 'undefined') {\n return null;\n } else if (selector === null) {\n return null;\n } else if (typeof selector === 'string') {\n const findElement = document.querySelector<THTMLElement>(selector);\n if (!findElement) {\n return null;\n }\n element = findElement;\n } else if (selector instanceof HTMLElement) {\n element = selector as THTMLElement;\n } else if (selector instanceof Element) {\n element = selector as THTMLElement;\n } else if (selector instanceof AngelsFrontElementClass) {\n return selector as AngelsFrontElement<THTMLElement>;\n } else {\n element = selector;\n }\n return new AngelsFrontElementClass(element) as AngelsFrontElement<THTMLElement>;\n}\n\nexport function aLibRequireElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibFindElement<THTMLElement>(selector);\n if (element) {\n return element;\n }\n throw Error(`Element not found by '${selector}' selector.`);\n}\n\nexport function aLibHideElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = true;\n return element;\n}\n\nexport function aLibShowElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = false;\n return element;\n}\n\nexport function aLibToggleElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = !innerElement.hidden;\n }\n if (switcher) {\n return aLibShowElement(innerElement);\n } else {\n return aLibHideElement(innerElement);\n }\n}\n","import { aLibRequireElement } from \"./AngelsFrontDOMLibrary\";\n\nexport async function aLibConcealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n resolve();\n }\n\n innerElement.classList.add('a-out-animation');\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n innerElement.hidden = true;\n resolve();\n }\n });\n\n return promise;\n}\n\nexport async function aLibEngageElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = innerElement.hidden;\n }\n\n if (switcher) {\n return await aLibRevealElement(innerElement);\n } else {\n return await aLibConcealElement(innerElement);\n }\n}\n\nexport async function aLibRevealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (!innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n resolve();\n }\n\n innerElement.hidden = false;\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n resolve();\n }\n });\n\n return promise;\n}\n","import { aLibConcealElement, aLibEngageElement, aLibRevealElement } from \"./AngelsFrontAnimationLibrary\";\n\nexport type AngelsFrontElement<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontElementClass<THTMLElement> & THTMLElement;\n\nexport default class AngelsFrontElementClass<THTMLElement extends HTMLElement = HTMLElement> {\n\n public originalElement: THTMLElement;\n\n constructor(element: THTMLElement) {\n\n this.originalElement = element;\n\n return new Proxy(this, {\n\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n // @test AngelsFrontElementClass proxies methods to the original element\n return Reflect.get(target, prop);\n }\n // @test AngelsFrontElementClass uses methods of the main object\n const valueOfProperty = Reflect.get(target.originalElement, prop);\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.originalElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target.originalElement) {\n // @test AngelsFrontElementClass sets properties on the original element\n target.originalElement[prop] = newValue;\n } else {\n // @test AngelsFrontElementClass sets properties on the main object\n target[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontElement<THTMLElement>;\n }\n\n aConcealElement(): this {\n\n // @test aConcealElement() calls aLibConcealElement() with the original element\n aLibConcealElement(this.originalElement);\n\n // @test aConcealElement() returns this\n return this;\n }\n\n aEngageElement(switcher: boolean | undefined = undefined): this {\n\n // @test aEngageElement() calls aLibEngageElement() with the original element and the same switcher\n aLibEngageElement(this.originalElement, switcher);\n\n // @test aEngageElement() returns this\n return this;\n }\n\n aHideElement(): this {\n\n // @test aHideElement() sets the hidden property of the element to true\n this.originalElement.hidden = true;\n\n // @test aHideElement() returns this\n return this;\n }\n\n aRevealElement(): this {\n\n // @test aRevealElement() calls aLibRevealElement() with the original element\n aLibRevealElement(this.originalElement);\n\n // @test aRevealElement() returns this\n return this;\n }\n\n aShowElement(): this {\n\n // @test aShowElement() sets the hidden property of the element to false\n this.originalElement.hidden = false;\n\n // @test aShowElement() returns this\n return this;\n }\n\n aSetTextContent(content: string): this {\n\n // @test aSetTextContent() converts non-string content to string before setting\n const contentToSet = content.toString();\n\n // @test aSetTextContent() sets originalElement.textContent\n this.originalElement.textContent = contentToSet;\n\n // @test aSetTextContent() returns this for chaining\n return this;\n }\n\n aTextContent(): string {\n if (this.originalElement.textContent === null) {\n // @test aTextContent() returns empty string if originalElement.textContent is null\n return ``;\n }\n\n // @test aTextContent() returns textContent of originalElement\n return this.originalElement.textContent;\n }\n}\n","export default class AngelsFrontMod {\n\n protected modSubMods: Array<AngelsFrontMod>;\n public modWaitStartTimeout = 1000;\n\n constructor() {\n this.modSubMods = new Array;\n }\n\n /**\n * Starts AngelsFrontMod.\n */\n modStart() {\n this.modInit();\n this.modBind();\n this.modLink();\n this.modRun();\n setTimeout(() => {\n this.modWait();\n }, this.modWaitStartTimeout);\n }\n\n /**\n * Finishes AngelsFrontMod.\n */\n modFinish() {\n this.modDeWait();\n this.modDeRun();\n this.modDeLink();\n this.modDeBind();\n this.modDeInit();\n }\n\n /**\n * Inits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modInit() {\n this.modSubMods.forEach(mod => mod.modInit());\n }\n\n /**\n * Binds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modBind() {\n this.modSubMods.forEach(mod => mod.modBind());\n }\n\n /**\n * Links AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modLink() {\n this.modSubMods.forEach(mod => mod.modLink());\n }\n\n /**\n * Runs AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modRun() {\n this.modSubMods.forEach(mod => mod.modRun());\n }\n\n /**\n * Waits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modWait() {\n this.modSubMods.forEach(mod => mod.modWait());\n }\n\n /**\n * DeInits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeInit() {\n this.modSubMods.forEach(mod => mod.modDeInit());\n }\n /**\n * DeBinds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeBind() {\n this.modSubMods.forEach(mod => mod.modDeBind());\n }\n /**\n * DeLinks AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeLink() {\n this.modSubMods.forEach(mod => mod.modDeLink());\n }\n /**\n * DeRuns AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeRun() {\n this.modSubMods.forEach(mod => mod.modDeRun());\n }\n /**\n * DeWaits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeWait() {\n this.modSubMods.forEach(mod => mod.modDeWait());\n }\n\n modDestructor() {\n this.modSubMods.forEach(mod => mod.modDestructor());\n }\n\n modAddSubMod(mod: null): null;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod | null): TMod | null {\n if (mod) {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n return null;\n }\n\n modRequireSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n}","import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport AngelsFrontMod from \"./AngelsFrontMod\";\n\nexport type AngelsFrontWidget<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontWidgetClass<THTMLElement> & THTMLElement;\n\nexport default interface AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends HTMLElement { }\n\nexport default class AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends AngelsFrontMod {\n\n readonly widElement: AngelsFrontElement<TWidgetHTMLElement>;\n\n constructor(element: TWidgetHTMLElement) {\n super();\n this.widElement = new AngelsFrontElementClass(element) as AngelsFrontElement<TWidgetHTMLElement>;\n return new Proxy(this, {\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n const valueOfProperty = target[prop];\n if (typeof valueOfProperty === 'function') {\n return Reflect.get(target, prop);\n }\n return valueOfProperty;\n }\n\n const valueOfProperty = target.widElement[prop];\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.widElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target) {\n target[prop] = newValue;\n } else {\n target.widElement[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontWidget<TWidgetHTMLElement>;\n }\n\n widFindElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> | null | null {\n const findElement = this.widElement.querySelector(selector);\n if (findElement) {\n return aFindElement<THTMLElement>(findElement);\n }\n return null;\n }\n\n widFindElements<THTMLElement extends HTMLElement = HTMLElement>(selector: string): Array<AngelsFrontElement<THTMLElement>> {\n return Array.from(this.widElement.querySelectorAll(selector))\n .map(aFindElement);\n }\n\n widRequireElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> {\n const element = this.widElement.querySelector(selector);\n if (element) {\n return aFindElement<THTMLElement>(element);\n }\n throw Error(`Element '${selector}' is not found.`);\n }\n}"],"mappings":"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","names":["valueOfProperty"]}
|
|
1
|
+
{"version":3,"sources":["../src/AngelsFrontAnimationLibrary.ts","../src/AngelsFrontElement.ts","../src/AngelsFrontDOMLibrary.ts","../src/AngelsFrontMod.ts","../src/AngelsFrontWidgetClass.ts"],"sourcesContent":["import { aLibRequireElement } from \"./AngelsFrontDOMLibrary\";\n\nexport async function aLibConcealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n resolve();\n }\n\n innerElement.classList.add('a-out-animation');\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n innerElement.hidden = true;\n resolve();\n }\n });\n\n return promise;\n}\n\nexport async function aLibEngageElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = innerElement.hidden;\n }\n\n if (switcher) {\n return await aLibRevealElement(innerElement);\n } else {\n return await aLibConcealElement(innerElement);\n }\n}\n\nexport async function aLibRevealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (!innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n resolve();\n }\n\n innerElement.hidden = false;\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n resolve();\n }\n });\n\n return promise;\n}\n","import { aLibConcealElement, aLibEngageElement, aLibRevealElement } from \"./AngelsFrontAnimationLibrary\";\n\nexport type AngelsFrontElement<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontElementClass<THTMLElement> & THTMLElement;\n\nexport default class AngelsFrontElementClass<THTMLElement extends HTMLElement = HTMLElement> {\n\n public elementBase: THTMLElement;\n aProxyBaseClass: typeof AngelsFrontElementClass = AngelsFrontElementClass;\n\n constructor(element: THTMLElement) {\n\n this.elementBase = element;\n\n return new Proxy(this, {\n\n get(target: AngelsFrontElementClass, prop: string | symbol, receiver: any) {\n if (prop in target) {\n // @test AngelsFrontElementClass proxies methods to the original element\n return Reflect.get(target, prop);\n }\n // @test AngelsFrontElementClass uses methods of the main object\n const valueOfProperty = Reflect.get(target.elementBase, prop);\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.elementBase);\n }\n return valueOfProperty;\n },\n\n set(target: AngelsFrontElementClass, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target.elementBase) {\n // @test AngelsFrontElementClass sets properties on the original element\n (target as any).elementBase[prop] = newValue;\n } else {\n // @test AngelsFrontElementClass sets properties on the main object\n (target as any)[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontElement<THTMLElement>;\n }\n\n aConcealElement(): this {\n\n // @test aConcealElement() calls aLibConcealElement() with the original element\n aLibConcealElement(this.elementBase);\n\n // @test aConcealElement() returns this\n return this;\n }\n\n aEngageElement(switcher: boolean | undefined = undefined): this {\n\n // @test aEngageElement() calls aLibEngageElement() with the original element and the same switcher\n aLibEngageElement(this.elementBase, switcher);\n\n // @test aEngageElement() returns this\n return this;\n }\n\n aHideElement(): this {\n\n // @test aHideElement() sets the hidden property of the element to true\n this.elementBase.hidden = true;\n\n // @test aHideElement() returns this\n return this;\n }\n\n aRevealElement(): this {\n\n // @test aRevealElement() calls aLibRevealElement() with the original element\n aLibRevealElement(this.elementBase);\n\n // @test aRevealElement() returns this\n return this;\n }\n\n aShowElement(): this {\n\n // @test aShowElement() sets the hidden property of the element to false\n this.elementBase.hidden = false;\n\n // @test aShowElement() returns this\n return this;\n }\n\n aSetTextContent(content: string): this {\n\n // @test aSetTextContent() converts non-string content to string before setting\n const contentToSet = content.toString();\n\n // @test aSetTextContent() sets elementBase.textContent\n this.elementBase.textContent = contentToSet;\n\n // @test aSetTextContent() returns this for chaining\n return this;\n }\n\n aTextContent(): string {\n if (this.elementBase.textContent === null) {\n // @test aTextContent() returns empty string if elementBase.textContent is null\n return ``;\n }\n\n // @test aTextContent() returns textContent of elementBase\n return this.elementBase.textContent;\n }\n}\n","import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport { AngelsFrontWidget } from \"./AngelsFrontWidgetClass\";\nimport AngelsFrontWidgetClass from \"./AngelsFrontWidgetClass\";\n\nexport function aLibCreateWidget<THTMLElement extends HTMLElement = HTMLElement>(element: THTMLElement): AngelsFrontWidget<THTMLElement> {\n return (new AngelsFrontWidgetClass<THTMLElement>(element)) as AngelsFrontWidget<THTMLElement>;\n}\n\nexport function aLibFindElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType<THTMLElement>): AngelsFrontElement<THTMLElement> | null {\n\n let element: THTMLElement;\n if (typeof selector === 'undefined') {\n return null;\n } else if (selector === null) {\n return null;\n } else if (typeof selector === 'string') {\n const findElement = document.querySelector<THTMLElement>(selector);\n if (!findElement) {\n return null;\n }\n element = findElement;\n } else if (selector instanceof HTMLElement) {\n element = selector as THTMLElement;\n } else if (selector instanceof Element) {\n element = selector as THTMLElement;\n } else if (selector instanceof AngelsFrontElementClass) {\n return selector as AngelsFrontElement<THTMLElement>;\n } else {\n element = selector;\n }\n return new AngelsFrontElementClass(element) as AngelsFrontElement<THTMLElement>;\n}\n\nexport function aLibRequireElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibFindElement<THTMLElement>(selector);\n if (element) {\n return element;\n }\n throw Error(`Element not found by '${selector}' selector.`);\n}\n\nexport function aLibHideElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = true;\n return element;\n}\n\nexport function aLibPrepareElement<TWidgetHTMLElement extends HTMLElement = HTMLElement>(element: TWidgetHTMLElement | AngelsFrontElementClass<TWidgetHTMLElement>): AngelsFrontElement<TWidgetHTMLElement> {\n let angelsFrontElement: AngelsFrontElement<TWidgetHTMLElement>;\n if ('aProxyBaseClass' in element && element.aProxyBaseClass === AngelsFrontElementClass) {\n // @test aLibPrepareElement() returns existing AngelsFrontElement when element has aProxyBaseClass\n angelsFrontElement = element as AngelsFrontElement<TWidgetHTMLElement>;\n } else if (element instanceof HTMLElement) {\n // @test aLibPrepareElement() creates new AngelsFrontElement when element is HTMLElement\n angelsFrontElement = new AngelsFrontElementClass(element) as AngelsFrontElement<TWidgetHTMLElement>;\n } else {\n // @test aLibPrepareElement() throws error when element is invalid type\n throw Error('Cannot prepare element: invalid element type.');\n }\n return angelsFrontElement\n}\n\nexport function aLibShowElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = false;\n return element;\n}\n\nexport function aLibToggleElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n // @test aLibToggleElement() toggles element when switcher undefined and hidden false\n // @test aLibToggleElement() toggles element when switcher undefined and hidden true\n switcher = innerElement.hidden;\n }\n if (switcher) {\n // @test aLibToggleElement() shows element when switcher is true\n return aLibShowElement(innerElement);\n } else {\n // @test aLibToggleElement() hides element when switcher is false\n return aLibHideElement(innerElement);\n }\n}\n","export default class AngelsFrontMod {\n\n protected modSubMods: Array<AngelsFrontMod>;\n public modWaitStartTimeout = 1000;\n\n constructor() {\n this.modSubMods = new Array;\n }\n\n /**\n * Starts AngelsFrontMod.\n */\n modStart() {\n this.modInit();\n this.modBind();\n this.modLink();\n this.modRun();\n setTimeout(() => {\n this.modWait();\n }, this.modWaitStartTimeout);\n }\n\n /**\n * Finishes AngelsFrontMod.\n */\n modFinish() {\n this.modDeWait();\n this.modDeRun();\n this.modDeLink();\n this.modDeBind();\n this.modDeInit();\n }\n\n /**\n * Inits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modInit() {\n this.modSubMods.forEach(mod => mod.modInit());\n }\n\n /**\n * Binds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modBind() {\n this.modSubMods.forEach(mod => mod.modBind());\n }\n\n /**\n * Links AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modLink() {\n this.modSubMods.forEach(mod => mod.modLink());\n }\n\n /**\n * Runs AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modRun() {\n this.modSubMods.forEach(mod => mod.modRun());\n }\n\n /**\n * Waits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modWait() {\n this.modSubMods.forEach(mod => mod.modWait());\n }\n\n /**\n * DeInits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeInit() {\n this.modSubMods.forEach(mod => mod.modDeInit());\n }\n /**\n * DeBinds AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeBind() {\n this.modSubMods.forEach(mod => mod.modDeBind());\n }\n /**\n * DeLinks AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeLink() {\n this.modSubMods.forEach(mod => mod.modDeLink());\n }\n /**\n * DeRuns AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeRun() {\n this.modSubMods.forEach(mod => mod.modDeRun());\n }\n /**\n * DeWaits AngelsFrontMod and its sub-modules AngelsFrontMod.\n */\n modDeWait() {\n this.modSubMods.forEach(mod => mod.modDeWait());\n }\n\n modDestructor() {\n this.modSubMods.forEach(mod => mod.modDestructor());\n }\n\n modAddSubMod(mod: null): null;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod;\n modAddSubMod<TMod extends AngelsFrontMod>(mod: TMod | null): TMod | null {\n if (mod) {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n return null;\n }\n\n modRequireSubMod<TMod extends AngelsFrontMod>(mod: TMod): TMod {\n this.modSubMods.push(mod);\n mod.modInit();\n return mod;\n }\n}","import { aLibPrepareElement } from \"./AngelsFrontDOMLibrary\";\nimport { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport AngelsFrontMod from \"./AngelsFrontMod\";\n\nexport type AngelsFrontWidget<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontWidgetClass<THTMLElement> & THTMLElement;\n\nexport default interface AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends HTMLElement { }\n\nexport default class AngelsFrontWidgetClass<TWidgetHTMLElement extends HTMLElement = HTMLElement> extends AngelsFrontMod {\n\n readonly widElement: AngelsFrontElement<TWidgetHTMLElement>;\n\n constructor(element: TWidgetHTMLElement) {\n super();\n this.widElement = aLibPrepareElement<TWidgetHTMLElement>(element);\n return new Proxy(this, {\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n const valueOfProperty = target[prop];\n if (typeof valueOfProperty === 'function') {\n return Reflect.get(target, prop);\n }\n return valueOfProperty;\n }\n\n const valueOfProperty = target.widElement[prop];\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.widElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target) {\n target[prop] = newValue;\n } else {\n target.widElement[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontWidget<TWidgetHTMLElement>;\n }\n\n widFindElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> | null | null {\n const findElement = this.widElement.querySelector(selector);\n if (findElement) {\n return aFindElement<THTMLElement>(findElement);\n }\n return null;\n }\n\n widFindElements<THTMLElement extends HTMLElement = HTMLElement>(selector: string): Array<AngelsFrontElement<THTMLElement>> {\n return Array.from(this.widElement.querySelectorAll(selector))\n .map(aFindElement);\n }\n\n widRequireElement<THTMLElement extends HTMLElement = HTMLElement>(selector: string): AngelsFrontElement<THTMLElement> {\n const element = this.widElement.querySelector(selector);\n if (element) {\n return aFindElement<THTMLElement>(element);\n }\n throw Error(`Element '${selector}' is not found.`);\n }\n}"],"mappings":"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","names":["valueOfProperty"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angelscmf/front",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.31",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
],
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@jest/globals": "^30.2.0",
|
|
27
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
27
28
|
"@types/jest": "^30.0.0",
|
|
28
29
|
"browser-sync": "^3.0.4",
|
|
29
30
|
"browserify": "^17.0.1",
|
|
@@ -48,5 +49,8 @@
|
|
|
48
49
|
"typescript": "^5.8.3",
|
|
49
50
|
"vinyl-buffer": "^1.0.1",
|
|
50
51
|
"vinyl-source-stream": "^2.0.0"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"pretty": "^2.0.0"
|
|
51
55
|
}
|
|
52
56
|
}
|
package/sass/AngelsDesign.scss
CHANGED
|
@@ -11,15 +11,20 @@
|
|
|
11
11
|
@forward 'angelsMessages/AngelsTip';
|
|
12
12
|
@forward 'angelsMessages/AngelsWarn';
|
|
13
13
|
@forward 'AngelsScreenRanges';
|
|
14
|
+
@forward 'angelsTags/a-alpha';
|
|
14
15
|
@forward 'angelsTags/a-block';
|
|
15
16
|
@forward 'angelsTags/a-board';
|
|
16
17
|
@forward 'angelsTags/a-brick';
|
|
18
|
+
@forward 'angelsTags/a-center';
|
|
17
19
|
@forward 'angelsTags/a-flex';
|
|
20
|
+
@forward 'angelsTags/a-float';
|
|
18
21
|
@forward 'angelsTags/a-grid';
|
|
22
|
+
@forward 'angelsTags/a-icenter';
|
|
19
23
|
@forward 'angelsTags/a-iflex';
|
|
20
24
|
@forward 'angelsTags/a-igrid';
|
|
21
25
|
@forward 'angelsTags/a-infra';
|
|
22
26
|
@forward 'angelsTags/a-page';
|
|
23
27
|
@forward 'angelsTags/a-state';
|
|
24
28
|
@forward 'angelsTags/a-table';
|
|
29
|
+
@forward 'angelsTags/a-text-transform';
|
|
25
30
|
@forward 'angelsAnimation/AngelsAnimations';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
a-fixed,
|
|
2
|
+
.a-fixed,
|
|
3
|
+
[a-fixed] {
|
|
4
|
+
position: fixed;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
a-absolute,
|
|
8
|
+
.a-absolute,
|
|
9
|
+
[a-absolute] {
|
|
10
|
+
position: absolute;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
a-relative,
|
|
14
|
+
.a-relative,
|
|
15
|
+
[a-relative] {
|
|
16
|
+
position: relative;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
a-sticky,
|
|
20
|
+
.a-sticky,
|
|
21
|
+
[a-sticky] {
|
|
22
|
+
position: sticky;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
a-static,
|
|
26
|
+
.a-static,
|
|
27
|
+
[a-static] {
|
|
28
|
+
position: static;
|
|
29
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @example <a-center> ... </a-center>
|
|
3
|
+
* @example <div a-center> ... </div>
|
|
4
|
+
* @example <div class="a-center"> ... </div>
|
|
5
|
+
* @example <a-flex a-center> ... </a-flex>
|
|
6
|
+
*/
|
|
7
|
+
a-center,
|
|
8
|
+
.a-center,
|
|
9
|
+
[a-center] {
|
|
10
|
+
align-content: center;
|
|
11
|
+
align-items: center;
|
|
12
|
+
display: flex;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
flex-wrap: wrap;
|
|
15
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
<a-float-box>
|
|
3
|
+
<div a-float-left>Float left</div>
|
|
4
|
+
<div a-float-right>Float right</div>
|
|
5
|
+
<p>Other content without float</p>
|
|
6
|
+
</a-float-box>
|
|
7
|
+
|
|
8
|
+
<div class="a-float-box">
|
|
9
|
+
<div class="a-float-left">Float left</div>
|
|
10
|
+
<div class="a-float-right">Float right</div>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<section a-float-box>
|
|
14
|
+
<div a-float-left>Float left</div>
|
|
15
|
+
<div a-float-right>Float right</div>
|
|
16
|
+
</section>
|
|
17
|
+
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
a-float-box,
|
|
21
|
+
.a-float-box,
|
|
22
|
+
[a-float-box] {
|
|
23
|
+
display: block;
|
|
24
|
+
|
|
25
|
+
&::after {
|
|
26
|
+
content: "";
|
|
27
|
+
display: block;
|
|
28
|
+
clear: both;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
a-float-left,
|
|
33
|
+
.a-float-left,
|
|
34
|
+
[a-float-left] {
|
|
35
|
+
float: left;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
a-float-right,
|
|
39
|
+
.a-float-right,
|
|
40
|
+
[a-float-right] {
|
|
41
|
+
float: right;
|
|
42
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @example <a-icenter> ... </a-icenter>
|
|
3
|
+
* @example <a-brick a-icenter> ... </a-brick>
|
|
4
|
+
* @example <a-brick class="a-icenter"> ... </a-brick>
|
|
5
|
+
* @example <a-iflex a-icenter> ... </a-iflex>
|
|
6
|
+
*/
|
|
7
|
+
a-icenter,
|
|
8
|
+
.a-icenter,
|
|
9
|
+
[a-icenter] {
|
|
10
|
+
align-content: center;
|
|
11
|
+
align-items: center;
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
flex-wrap: wrap;
|
|
15
|
+
}
|
|
@@ -40,8 +40,8 @@ a-page-header {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
:root {
|
|
43
|
-
--a-page-body-gap: var(--a-
|
|
44
|
-
--a-page-body-padding: var(--a-
|
|
43
|
+
--a-page-body-gap: var(--a-doubleSize);
|
|
44
|
+
--a-page-body-padding: var(--a-doubleSize) var(--a-baseSize);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
a-page-body {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* angelsTags/_a-text-transform.scss
|
|
3
|
+
*
|
|
4
|
+
* Text transform utilities for Angels Design System.
|
|
5
|
+
*
|
|
6
|
+
* This file defines a set of utility classes and attributes to apply various text-transform
|
|
7
|
+
* styles to HTML elements. The supported text-transform values include 'none', 'capitalize',
|
|
8
|
+
* 'full-size-kana', 'full-width', 'lowercase', 'math-auto', and 'uppercase'.
|
|
9
|
+
*
|
|
10
|
+
* @example <h1 a-text-transform=uppercase>HEADLINE IN UPPERCASE</h1>
|
|
11
|
+
* @example <button a-text-transform=lowercase>button in lowercase</button>
|
|
12
|
+
* @example <li a-text-transform=capitalize>list item capitalized</li>
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
$text-transform-values: 'none',
|
|
16
|
+
'capitalize',
|
|
17
|
+
'full-size-kana',
|
|
18
|
+
'full-width',
|
|
19
|
+
'lowercase',
|
|
20
|
+
'math-auto',
|
|
21
|
+
'uppercase'
|
|
22
|
+
;
|
|
23
|
+
|
|
24
|
+
@each $value in $text-transform-values {
|
|
25
|
+
|
|
26
|
+
[a-text-transform=#{$value}] {
|
|
27
|
+
text-transform: #{$value};
|
|
28
|
+
}
|
|
29
|
+
}
|