Advanced Angular Elements

Поделиться
HTML-код
  • Опубликовано: 18 дек 2024

Комментарии • 183

  • @ikezedev
    @ikezedev 6 лет назад +29

    I deployed my first major Angular app today.... Thanks Jeff, you engineered it all. I'm eternally grateful ❤

    • @Fireship
      @Fireship  6 лет назад +3

      Wow, congrats! Happy to have played a small role in the process :)

    • @ikezedev
      @ikezedev 6 лет назад +3

      It wasn't a small one.... It was everything... Merci

  • @rajapal9736
    @rajapal9736 5 лет назад +3

    👍Your videos are not just rad, they are fast paced, to the point, packed with right balance of explanation and code, no nonsense... testimony of your smartness. Thank you, I just made my custom component with Angular elements. Take a bow Fireship! Keep the good work going.

    • @Fireship
      @Fireship  5 лет назад

      Thank you! Awesome to hear that :)

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Raja! Are you looking out for jobs in web development currently? We are a web dev company and looking to hire; let me know if interested.

  • @Fireship
    @Fireship  6 лет назад +7

    FYI this video is a premiere so pull up the live chat for the full experience

    • @Nalopotato
      @Nalopotato 6 лет назад

      Says it's disabled tho?

    • @Fireship
      @Fireship  6 лет назад

      @@Nalopotato Not sure what the problem is there... RUclips is not letting me enable the chat replay :(

  • @ajdaling
    @ajdaling 6 лет назад +8

    Game changing. Much like Angular Firebase itself. You're doing God's work here, Jeff.

  • @tim_t
    @tim_t 6 лет назад

    I'm still new to Angular and I find your videos immensely helpful. Thanks.

  • @software-egineering-be-tounsi
    @software-egineering-be-tounsi 6 лет назад +1

    dude I can't tell you how much u're making my life easier around here !!
    amazing work

  • @nikhiltalwar318
    @nikhiltalwar318 6 лет назад +1

    This is actually the best part of Angular - Angular elements !!!
    Let's go !

  • @Noone-ig5ui
    @Noone-ig5ui 6 лет назад +1

    Just started coding with angular and typescript this past 2 months, and I am loving it.

    • @alsaamit
      @alsaamit 6 лет назад

      Really .. is better than React .. i m talking about syntax ??

    • @Noone-ig5ui
      @Noone-ig5ui 6 лет назад

      @@alsaamit So far I got no complaints.

  • @derrickawuah9477
    @derrickawuah9477 6 лет назад

    Don’t know how I went so long without seeing these videos, keep up the good work!

  • @pierrechavaroche7060
    @pierrechavaroche7060 6 лет назад

    Jeff + Angular Elements = Pure ingenuity 👍🏼👍🏼

  • @HarikrishnanKK
    @HarikrishnanKK 6 лет назад +1

    Awesome! I am already a subscriber for the angular firebase premium! and I believe that's the best money i spent on getting updated with new angular happenings in bit sized videos, something that i can watch when i am travelling, something that can be quickly referenced, and every code written in detail in the main website too. Thanks a lot! Looking forward to more awesomeness..

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Hari! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @CodingCatDev
    @CodingCatDev 6 лет назад +5

    🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥Angular Elements (aka Web Components) for the win in 2019!!🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥

  • @LeoN11rus
    @LeoN11rus 6 лет назад +4

    Just received my sticker for completing the github tutorial! Thanks, Jeff! I did not expect you to send it to Russia! :D
    And thanks for a great tutorial, as always!

    • @Fireship
      @Fireship  6 лет назад +1

      Glad to hear it landed successfully, I send stickers to every country 😀

    • @simonkalu
      @simonkalu 5 лет назад

      @@Fireship How do I get the sticker and Tshirt to Nigeria. I don't mind paying... I paid to learn last year but I could not complete it because I was busy with office work

  • @patrickmullot73
    @patrickmullot73 6 лет назад +1

    Superior! This one is really cool. You've just raised to the "I can walk on water" level!

    • @Fireship
      @Fireship  6 лет назад

      Haha, not so sure about that :)

  • @vikasrajput3687
    @vikasrajput3687 6 лет назад +1

    where was this channel all this time, Subscribed!!

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi VIkas! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @mouhibbennasser7570
    @mouhibbennasser7570 6 лет назад

    I'm not really into Angular but I just enjoy your videos.

  • @wuilliam321
    @wuilliam321 6 лет назад

    Wow! lot of learning this in a short video! Thanks a lot!

  • @saadabbasi2063
    @saadabbasi2063 6 лет назад

    This is one of the best things ever happened to web

  • @danielnovitzkas9668
    @danielnovitzkas9668 6 лет назад

    If you ever make it to South Africa I would love to meet up with you, so much of what I've learnt is thanks to you.

  • @Jonathan-nh3cc
    @Jonathan-nh3cc 6 лет назад +1

    What would be the appropriate way of including the element.js file in another angular project? Can I use the element.js file to use the web component tags in another project's tag? When I try I get conflict with the web component's zone.js and the main app zone.js dependency.

  • @satajyotidhawa4937
    @satajyotidhawa4937 6 лет назад +1

    Awesome feature angular element and awesome tutorials

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Satyajoti! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @jesucristoesteban908
    @jesucristoesteban908 6 лет назад +1

    I love the first angular elements video and can't wait to see this, i had made a chatbot with that. Thanks for all!

    • @Fireship
      @Fireship  6 лет назад

      Oh wow, that's awesome. I'm building my next website with elements and Firebase. It's a great way to build web apps.

    • @jesucristoesteban908
      @jesucristoesteban908 6 лет назад +1

      @@Fireship Yeah! Excuse me, it would be awesome you should make a video with Dialogflow or mixing something about crypto, like ethereum. Either way, your channel it's a great guideline. I owe you so much.

  • @Mr_BetaMax
    @Mr_BetaMax 5 лет назад

    I really was surprised that the destructuring with square brackets in the for loop! That's a great tip! I was expecting curly braces! Thanks for the awesome content!

  • @kazpeh
    @kazpeh 6 лет назад

    These videos are always top quality! Keep up the great work!

  • @srivastava-swapnil
    @srivastava-swapnil 6 лет назад

    Advanced Angular Elements that's something to look forward to .... Keep up the good work

  • @phillippantaleano2930
    @phillippantaleano2930 4 года назад +1

    I would like it if you could go deeper into how to handle nested components using shadowDom slots

  • @TheEhtesam
    @TheEhtesam 4 года назад +1

    Great video. I have a question. If I have a shared dependency like DevExtreme in my element, how do I exclude this from build?

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hey! Are you looking out for jobs in web development currently? We are a web dev company and looking to hire; let me know if interested.

  • @TarekkMA
    @TarekkMA 6 лет назад +1

    Nice video. Angular is the best framework

  • @KartikSharma1607
    @KartikSharma1607 5 лет назад +2

    Some problems you guys may get stuck on
    1. Create 2 angular apps and expose custom elements from each and use them in a third app. : Zone.js is already loaded.
    Solution : Use ngx-build-plus or don't use zone at all.
    2. TypeError: Failed to construct 'HTMLElement'
    Solution : Web components required ES6 classes. Angular by default compiles code to ES5, so either include native-shim polyfill or change compilation target to es2016.
    3. Shadow DOM and global styles ?
    Solution : This is bit tricky. Use @import or don't use global styles.
    4. Shadow DOM in Edge and IE and using ?
    Solution: Use shady DOM polyfill.
    5. Shady DOM and angular router is buggy: No solution for now.
    6. Exclude dependencies
    Solution: Use ngx-build-plus. This again is tricky and even more tricky to reimport. Suggestion is to wait for ivy.

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Kartik! Thanks for all that information! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @DesuSudarsana
    @DesuSudarsana 6 лет назад

    Another awesome video to watch from Angular Firebase. You have a great contents, cool 👍🏻

  • @carniattos
    @carniattos 6 лет назад

    That's really amazing, this allows to reuse angular components inside other frameworks like react 🤯

  • @davilinkicefire
    @davilinkicefire 6 лет назад

    Nice Demo.
    Question: Why not use window.addEventListener("scroll") et remove the listener when the component is visible ?
    Is it possible to remove the hostListener ?

  • @Francis06100
    @Francis06100 6 лет назад

    Great explanation

  • @masterlup
    @masterlup 5 лет назад

    1. How can we split up each Element into separate chunks? When we load some of those chunks dynamically into the browser:
    A) can they still share an injector?
    B) can they share core dependencies so i dont have to load it n-times?
    The background: lets say I have 6 elements.
    I want userA to use and only know about elements {1-4} and userB {2, 5-6}

  • @tjlajsc
    @tjlajsc 6 лет назад

    Thanks for all your efforts!

  • @MayyasNakhli
    @MayyasNakhli 3 года назад

    01:55
    Anyone know the name of this icon theme in VS Code?

  • @d4lep0ro
    @d4lep0ro 6 лет назад

    Your content is top notch. Thank you.

  • @RoshanKumar-yr1jf
    @RoshanKumar-yr1jf 6 лет назад +1

    Hi,
    I'm struggling to find a way to create an expandable and collapsible table rows using Angular material,
    This could be a parent, child visualisation, which I need to create.
    I'll be thankful if you spend some time to crack through the angular material table or some other libraries in Angular. Please have one video over it.. explaining those.
    Thanks

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Roshan! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @pranayamr
    @pranayamr 6 лет назад +1

    Wow, Awesome, Its very helpful and help to learn new concepts
    Really Helpful

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Pranay! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @sparrowhawkl
    @sparrowhawkl 6 лет назад

    love Angular. Thanks a lot for the videos.

  • @v.bourdeix
    @v.bourdeix 4 года назад

    When I tried to export a few elements with Angular Elements I did have issues that I was unable to debug, so I had to give up and load a whole angular application containing the elements I wanted to use... huge fail. However, this might be related to the issue you are talking about : disabling NgZone. I will have to give it another try. That said, it's a pity that we cannot reliably use NgZone as writing custom elements still feels a bit hacky for this reason.

  • @NandaKumar5
    @NandaKumar5 6 лет назад +1

    This is a great start...
    But tracking scroll event and checking with boundingRect may not be performant and can cause jank when more images are present in the page.
    Could you please use IntersectionObservers in future examples as we expect top notch quality content and best practices from you.

    • @Fireship
      @Fireship  6 лет назад +1

      Thanks for the suggestion, that would make a cool video. The browser support is not universal for IntersectionObservers, but I also considered using Rx fromEvent to throttle and unsubscribe from events.

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Nanda! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @jeromestsauver
    @jeromestsauver 6 лет назад

    love this channel

  • @HSDevStudio
    @HSDevStudio 6 лет назад

    Hey Jeff, awesome tips.
    However, shadow DOM is a cool and a strong feature but the browser support really breaks the will to use it. Am currently working on a notification angular element, but not able to use this feature on IE11+. Shady Dom polyfills also did no good. Any pointers?

  • @emarticor
    @emarticor 6 лет назад

    Did I understand correctly that you didn't use `ngx-build-plus` but instead just concatenated the CLI's build output js into a single `elements.js` file?

    • @Fireship
      @Fireship  6 лет назад +1

      Yes, for this demo. I just wanted to point that out as a resource but it requires some setup that would have slowed down the video.

  • @denyslymarenko4142
    @denyslymarenko4142 6 лет назад

    Hi, thanks for the lesson, if I have to pass an array of data as an attribute, should I make JSON.stringify and parse it in my angular component? because of setAttribute only for a string value
    and do we have some tools for hot reloading or we have to bundle all the time?

  • @RageBasterd
    @RageBasterd 6 лет назад +1

    super exited for stencil. and ionic 4

    • @Fireship
      @Fireship  6 лет назад

      Stencil is awesome, their use of TS decorators is spot on and I hope Angular takes some hints.

  • @pabloguaza
    @pabloguaza 5 лет назад

    Hi! Really nice vid, thanks! One question: does it make sense or is it even possible to create a web component which is quite complex and requires routing, forms, tabs... or should I create instead a library considering this element would not be used outside of an Angular app?

  • @MrJerczu
    @MrJerczu 6 лет назад

    Nice work as always

  • @sivathangeswaran2517
    @sivathangeswaran2517 6 лет назад +1

    End-less possibilities with Elements, looking forward to the future

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Siva! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @keshavgodani3135
    @keshavgodani3135 6 лет назад +1

    I love Angular and also watch your lovely video
    Thanks you

    • @Fireship
      @Fireship  6 лет назад +1

      Thank you Keshav

  • @YinonOved
    @YinonOved 6 лет назад

    what if we are fetching custom-elements from various sources or different angular projects? would it duplicate the core code generated by angular and is concatenated by the approach u presented? in such case should we leave out the build divided and not single bundled?

    • @Fireship
      @Fireship  6 лет назад

      Yes, in that case you would want import the umd bundles for your dependencies separetly. Ngx-build-plus can help.

    • @YinonOved
      @YinonOved 6 лет назад

      I saw it in its repo’s sample. That kind of narrows down the usage of angular elements to an angular applications. At least imo it would make more sense. Right?

  • @JFkingW
    @JFkingW 6 лет назад

    Honestly, I didnˋt quite get the idea behind elements. This way I can embed angular components into non angular websites right? I can See the benefit with SEO this way but how exactly is it more performent? What If I have a really angular heavy website, would it still make sense to split it up in many different angular elements and embed them into a website?

    • @Fireship
      @Fireship  6 лет назад

      Web components make the most sense when you have server rendered content imo. If you have a highly interactive app that is mostly behind a user auth wall, then the SPA approach is superior.

  • @danielshushanyan6524
    @danielshushanyan6524 6 лет назад

    Awesome video!!!

  • @Fascinatingtapes
    @Fascinatingtapes 6 лет назад

    Best explanation ever!thanks!

  • @sboneloshezi6529
    @sboneloshezi6529 6 лет назад

    Love your videos man!

  • @ayanbanerjee3672
    @ayanbanerjee3672 6 лет назад +1

    Awesome 😍😍😍

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Ayan! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @karolisc
    @karolisc 6 лет назад

    Thanks for uploading!

  • @codewithfrenchy
    @codewithfrenchy 6 лет назад

    that t-shirt looks cool!

  • @ToddHale
    @ToddHale 6 лет назад

    Excellent content! Wish I could use this at work!

  • @Kevin192291
    @Kevin192291 6 лет назад

    I am really interested in learning more about all of the build packages, not only for angular but more JS/TS frameworks!

    • @Fireship
      @Fireship  6 лет назад

      Would you like to see a webpack video? That could be done

    • @Kevin192291
      @Kevin192291 6 лет назад

      I have actually been really confused by webpack for a long time. Even after reading the docs I don't feel like I have a great grip on it. I think a video would be very popular and appreciated. Also, Thank you for all of your videos so far!

    • @Fireship
      @Fireship  6 лет назад

      @@Kevin192291 Yeah webpack is hard to learn because it's part magic part configurable. Added that to the video list.

  • @kamalkamals
    @kamalkamals 5 лет назад +1

    With angular 7.2 i get this error :
    Uncaught TypeError: Failed to construct 'HTMLElement': Please use the 'new' operator, this DOM object constructor cannot be called as a function.

    • @KartikSharma1607
      @KartikSharma1607 5 лет назад

      Web components required ES6 classes. Angular by default compiles code to ES5, so either include native-shim polyfill or change compilation target to es2016.

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Kamal! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

    • @kamalkamals
      @kamalkamals 3 года назад +1

      @@shivanigaddagimath6105 is better to switch to inbox, send your ID

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад +1

      @@kamalkamals That's great! I'm not able to post my LinkedIn link here for some reason. Can you please find me on LinkedIn, just @ Shivani Gaddagimath on LinkedIn and request to connect. The first profile that pops up is mine.

    • @kamalkamals
      @kamalkamals 3 года назад

      @@shivanigaddagimath6105 done

  • @DisasterSPA
    @DisasterSPA 6 лет назад

    are slots only for angular elements or also for normal angular components?

    • @Fireship
      @Fireship  6 лет назад

      Angular has it's own system with ng-template. Slots are a feature specific to web components developer.mozilla.org/en-US/docs/Web/Web_Components/Using_templates_and_slots

  • @dule605
    @dule605 6 лет назад

    Great video

  • @iykeprince2197
    @iykeprince2197 6 лет назад

    Amazing tutorial

  • @JoiAnnKhoo
    @JoiAnnKhoo 6 лет назад

    it seems promising, probably try it in my new project.

  • @ZachSuerdieck
    @ZachSuerdieck 6 лет назад

    Awesome video. Thanks

  • @saisreenivas2227
    @saisreenivas2227 6 лет назад +1

    Thanks a lot for sharing a knowledge

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Sai! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

    • @saisreenivas2227
      @saisreenivas2227 3 года назад +1

      @@shivanigaddagimath6105 sure

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      @@saisreenivas2227 That's great! Can we please connect on LinkedIn or gmail for more details? Please @ Shivani Gaddagimath on LinkedIn and request to connect. The first profile that pops up is mine. I'm not able to post my link here for some reason.

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      @@saisreenivas2227 Hi! Please connect on LinkedIn or gmail if interested in the job opportunity.

  • @roland0012
    @roland0012 6 лет назад

    Awesome video as always :)

  • @harshitpant3067
    @harshitpant3067 6 лет назад

    Great stuff! Thanks for this awesome video

  • @georgiyzhuravlev9350
    @georgiyzhuravlev9350 6 лет назад

    Great video, thanks!

  • @lexluther48
    @lexluther48 6 лет назад

    Wow just what I needed thank you!! Love your channel 😀.

    • @Fireship
      @Fireship  6 лет назад

      WINNER!!! You are the lucky T-shirt winner this week, send me a private message with your shipping details and size :) ruclips.net/video/fsVL_xrYO0w/видео.html

  • @galkaev
    @galkaev 6 лет назад

    So does it make sense building shared components like headers with Angular Elements?

    • @Fireship
      @Fireship  6 лет назад

      Possibly. My app uses a plain html/css header, but has a login button/dropdown that's a web component.

  • @goodcareat
    @goodcareat 6 лет назад

    I love your videos!

  • @YinonOved
    @YinonOved 6 лет назад

    Not sure how well supported but there’s this intersectionObserver api which can determine if our object is visible in the viewport. Just for the sake of freshness... love your work

    • @oktavic777
      @oktavic777 6 лет назад

      caniuse.com/#search=IntersectionObserver

    • @YinonOved
      @YinonOved 6 лет назад

      Octavian Lari average support I’d say. Can be implemented if only major browsers are of your concern

    • @Fireship
      @Fireship  6 лет назад

      Might cover this in a future video, would def be more performant.

  • @jooowtjuh
    @jooowtjuh 6 лет назад

    great video, love it!

  • @jeffesoncosta14
    @jeffesoncosta14 6 лет назад

    love the channel

  • @ealipio
    @ealipio 6 лет назад

    awesome man, thanks for the tutorial!

  • @magichandpuppet
    @magichandpuppet 6 лет назад

    Great stuff!

  • @vikaskumar-im7im
    @vikaskumar-im7im 6 лет назад +1

    Nice content you provide:-)

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      HI Vikas! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @MuhammadFaisal04
    @MuhammadFaisal04 6 лет назад

    Why not "ng-content" instead of slots?

    • @Fireship
      @Fireship  6 лет назад

      Slots are are a feature of web components, so it's just matching that standard.

  • @jamesknippel19
    @jamesknippel19 6 лет назад

    You are fantastic!!

  • @GermanCoder42
    @GermanCoder42 3 года назад

    Thx man, a Nevers saw so much dense ainfo knowledge on one place.
    Ps. I like your speed
    Ps. I like you 👕

  • @siddhantsrivastav8591
    @siddhantsrivastav8591 6 лет назад +1

    Been trying to get a t-shirt from you since a long time now :D

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      HI Siddhant! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @moradabdelgaber5958
    @moradabdelgaber5958 6 лет назад

    Nice work

  • @ervinsuhanko9688
    @ervinsuhanko9688 6 лет назад

    Thank you, very ng-useful :)

  • @darshangowda309
    @darshangowda309 6 лет назад

    Love the intro :P

  • @n98gt
    @n98gt 6 лет назад

    SolidWorks rocks!!

  • @shubhambattoo9786
    @shubhambattoo9786 6 лет назад +1

    super video

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Shubham! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @rahulb10
    @rahulb10 6 лет назад +1

    thank you..

    • @shivanigaddagimath6105
      @shivanigaddagimath6105 3 года назад

      Hi Rahul! Would you be interested in exploring job opportunities in web development currently? We are a web dev company and looking to hire. Please let me know if interested.

  • @Josedav96
    @Josedav96 6 лет назад +2

    Hey men your videos are great your first element video got me a promotion at my job. Love your content. Please jeep doing it 🤝🤝😁

    • @Fireship
      @Fireship  6 лет назад +1

      Oh wow, that is awesome, congrats 👍🔥

  • @marthaatdarumatech5381
    @marthaatdarumatech5381 6 лет назад

    Thank you for your awesome videos!! I hope I get the t-shirt!! :)

  • @Hamdiby
    @Hamdiby 6 лет назад

    Keep it up bro

  • @jaytaylor9045
    @jaytaylor9045 6 лет назад

    Good.✔️

  • @tsom467
    @tsom467 6 лет назад

    T-Shirt! Yeah! (great vid's too )

  • @basdfgwe
    @basdfgwe 6 лет назад

    Looking forward to fireship

  • @himanshuupreti619
    @himanshuupreti619 6 лет назад

    Its awesome.

  • @LuisCruz-su6ue
    @LuisCruz-su6ue 6 лет назад

    I want that t-shirt !!!

  • @ImperiumLibertas
    @ImperiumLibertas 6 лет назад

    WE ♥️ WEB COMPONENTS

  • @collenzaligway4458
    @collenzaligway4458 6 лет назад

    You're Awesome