22import {
33 addAnimationListener ,
44 animationGenerator ,
5+ applyAnimationValues ,
56 displayAnimationPreview ,
67} from './pages/animation' ;
78import {
89 addBorderRadiusListener ,
10+ applyBorderRadiusValues ,
911 borderRadiusGenerator ,
1012} from './pages/border-radius' ;
11- import { addBoxShadowListener , boxShadowGenerator } from './pages/box-shadow' ;
13+ import {
14+ addBoxShadowListener ,
15+ applyBoxShadowValues ,
16+ boxShadowGenerator ,
17+ } from './pages/box-shadow' ;
1218import {
1319 addGradientBackgroundListener ,
1420 gradientBackgroundGenerator ,
@@ -21,10 +27,14 @@ import {
2127 addGradientTextListener ,
2228 gradientTextGenerator ,
2329} from './pages/gradient-text' ;
24- import { rangeGenerator } from './pages/input-range' ;
30+ import { applyInputRangeValues , rangeGenerator } from './pages/input-range' ;
2531import { picTextGenerator } from './pages/pic-text' ;
26- import { addTextShadowListener , textShadowGenerator } from './pages/text-shadow' ;
27- import { gridGenerator } from './pages/grid-generator' ;
32+ import {
33+ addTextShadowListener ,
34+ applyTextShadowValues ,
35+ textShadowGenerator ,
36+ } from './pages/text-shadow' ;
37+ import { applyGridValues , gridGenerator } from './pages/grid-generator' ;
2838
2939// Packages
3040import * as FilePond from 'filepond' ;
@@ -44,8 +54,18 @@ import {
4454 getRange ,
4555 getResultPage ,
4656} from './lib/getElements' ;
47- import { addTransformListener , transformGenerator } from './pages/transform' ;
57+ import {
58+ addTransformListener ,
59+ applyTransformValue ,
60+ transformGenerator ,
61+ } from './pages/transform' ;
4862import { scrollGenerator } from './pages/scroll' ;
63+ import {
64+ deleteQueryParam ,
65+ getQueryParam ,
66+ setQueryParam ,
67+ } from './lib/packages/helpers' ;
68+ import { applyGradientValues } from './lib/packages/utils' ;
4969
5070FilePond . registerPlugin (
5171 FilePondPluginImagePreview ,
@@ -204,6 +224,31 @@ FilePond.create(getImageEntryElement, {
204224 } ,
205225} ) ;
206226
227+ const generatorParam = getQueryParam ( 'generator' ) ;
228+ const valuesParam = getQueryParam ( 'values' ) ;
229+
230+ if ( generatorParam ) {
231+ showContent ( generatorParam ) ;
232+
233+ if ( valuesParam ) {
234+ generatorParam === 'animation' &&
235+ applyAnimationValues ( JSON . parse ( valuesParam ) ) ;
236+ generatorParam === 'border-radius' &&
237+ applyBorderRadiusValues ( JSON . parse ( valuesParam ) ) ;
238+ generatorParam === 'box-shadow' && applyBoxShadowValues ( valuesParam ) ;
239+ generatorParam === 'gradient-background' &&
240+ applyGradientValues ( valuesParam , 'gradient-background' ) ;
241+ generatorParam === 'gradient-border' &&
242+ applyGradientValues ( valuesParam , 'gradient-border' ) ;
243+ generatorParam === 'gradient-text' &&
244+ applyGradientValues ( valuesParam , 'gradient-text' ) ;
245+ generatorParam === 'grid-generators' && applyGridValues ( valuesParam ) ;
246+ generatorParam === 'input-range' && applyInputRangeValues ( valuesParam ) ;
247+ generatorParam === 'text-shadow' && applyTextShadowValues ( valuesParam ) ;
248+ generatorParam === 'transform' && applyTransformValue ( valuesParam ) ;
249+ }
250+ }
251+
207252/**
208253 * sets which generator to call
209254 *
@@ -229,7 +274,7 @@ function generatorsFunction(attribute: string, type: openResults): void {
229274 * @param attribute The attribute name of the generator element
230275 * @param display display type
231276 */
232- function showContent ( attribute : string , display : Display ) : void {
277+ function showInputSection ( attribute : string , display : Display ) : void {
233278 const generatorsContent = document . querySelectorAll ( `[data-content]` ) ;
234279 const showGen = document . querySelector (
235280 `[data-content=${ attribute } ]`
@@ -312,6 +357,19 @@ function showOpenPreviousResultText() {
312357 getOpenPreviousResult . style . animationFillMode = 'backwards' ;
313358}
314359
360+ function showContent ( generatorName : string ) {
361+ ! navBar ?. classList . contains ( 'closed-nav' ) &&
362+ openOrCloseNavigationBar ( 'close' ) ;
363+
364+ sidebar . style . display = 'none' ;
365+
366+ if ( getHomePage && getGeneratorSection ) {
367+ getHomePage . style . display = 'none' ;
368+ getGeneratorSection . style . display = 'flex' ;
369+ showInputSection ( generatorName , 'flex' ) ;
370+ }
371+ }
372+
315373// clicking outside the nav bar should close the nav bar
316374document . addEventListener ( 'click' , ( e : Event ) => {
317375 const event = e . target as HTMLElement ;
@@ -364,6 +422,9 @@ getHeaderText?.addEventListener('click', () => {
364422 } ) ;
365423 getHomePage . style . display = 'flex' ;
366424 getGeneratorSection . style . display = 'none' ;
425+
426+ deleteQueryParam ( 'generator' ) ;
427+ deleteQueryParam ( 'values' ) ;
367428} ) ;
368429
369430// clicking on the get result icon should show the old results
@@ -396,24 +457,15 @@ getDegreeElement?.addEventListener('change', () => displayAnimationPreview());
396457// adds event listner for which generator should show
397458generators . forEach ( ( generator ) => {
398459 generator ?. addEventListener ( 'click' , ( ) : void => {
399- const checking = generator . getAttribute ( 'data-gen' ) ;
460+ const generatorName = generator . getAttribute ( 'data-gen' ) ;
400461 openSidePanelButton . style . display = 'none' ;
401462
402- if (
403- checking === null ||
404- getHomePage === null ||
405- getGeneratorSection === null
406- )
407- return ;
463+ if ( generatorName === null ) return ;
408464
409- ! navBar ?. classList . contains ( 'closed-nav' ) &&
410- openOrCloseNavigationBar ( 'close' ) ;
465+ showContent ( generatorName ) ;
411466
412- sidebar . style . display = 'none' ;
413- attributeValue = checking ;
414- getHomePage . style . display = 'none' ;
415- getGeneratorSection . style . display = 'flex' ;
416- showContent ( attributeValue , 'flex' ) ;
467+ deleteQueryParam ( 'values' ) ;
468+ setQueryParam ( 'generator' , generatorName ) ;
417469 } ) ;
418470} ) ;
419471
0 commit comments