SlideShare une entreprise Scribd logo
1  sur  80
Télécharger pour lire hors ligne
WEBCOMPONENTS
@marcbaechinger
‚web development is overly complex…‘
unknown, but desperate software engineer
lack of encapsulation and abstraction
TODAYS STANDARDS BODY
STANDARDS BODY
W3C webcomponents
STANDARDS BODY
W3C webcomponents
heavily in flux
STANDARDS BODY
W3C webcomponents
webcomponents polyfill
heavily in flux
STANDARDS BODY
W3C webcomponents
webcomponents polyfill
heavily in flux
2013: same for x-tags and polymer
STANDARDS BODY
W3C webcomponents
webcomponents polyfill
x-tags polymer
brick polymer elements
heavily in flux
2013: same for x-tags and polymer
STANDARDS BODY
W3C webcomponents
webcomponents polyfill
x-tags polymer
brick polymer elements
heavily in flux
2013: same for x-tags and polymer
wrapper API (JS/HTML)
STANDARDS BODY
W3C webcomponents
webcomponents polyfill
x-tags polymer
brick polymer elements
heavily in flux
2013: same for x-tags and polymer
wrapper API (JS/HTML)
element sets (accordion, …)
http://www.w3.org/TR/components-intro/
Templates
Custom elements
Shadow DOM
Imports
June 2013
BROWSER SUPPORT
polymer
BROWSER SUPPORT
x-tags
polymer
HTML IMPORTS
imports.html
<link href="../styles/import.css" rel="stylesheet"/> 

<section id="root">

<h1>Caption of import</h1>

<p>imported text<p>

</section>

<script>

(function (global) {

global.markup = {

hi: function () {

console.log("hi from a fun declared in an import");

}

};

}(this));

</script>
HTML IMPORTS
<link id="markup" rel="import" href="imports.html">
import html fragment
var link = __.e("#markup");

var markup = link.import;

var fragment = markup.querySelector("#root");
access import
HTML IMPORTS
<link id="markup" rel="import" href="imports.html">
import html fragment
var link = __.e("#markup");

var markup = link.import;

var fragment = markup.querySelector("#root");
access import
HTML IMPORTS
<link id="markup" rel="import" href="imports.html">
import html fragment
usually cloned before use
HTML IMPORTS
HTML IMPORTS
check for import property to feature test
SCRIPTS IN IMPORTS
// in the import fragment

<script>

(function (global) {

global.markup = {

hi: function () {}

};

}(window));

</script>
// in the parent document

window.markup.hi();

SCRIPTS IN IMPORTS
// in the import fragment

<script>

(function (global) {

global.markup = {

hi: function () {}

};

}(window));

</script>
// in the parent document

window.markup.hi();

executed once when imported
SCRIPTS IN IMPORTS
// in the import fragment

<script>

(function (global) {

global.markup = {

hi: function () {}

};

}(window));

</script>
// in the parent document

window.markup.hi();

parent global context
executed once when imported
NO PARENT DOCUMENT!
<script>

var importDoc = 

document.currentScript.ownerDocument;



var parentDocument = document;

</script>

part of the imports.html
NO PARENT DOCUMENT!
<script>

var importDoc = 

document.currentScript.ownerDocument;



var parentDocument = document;

</script>

part of the imports.html
so scripts behave the same as in parent doc
TEMPLATES
TEMPLATE - LAZY MARKUP
<template id="template">

<h1>Diego Maradona</h1>

<img src="maradona.jpg"/>

<script>

console.log("exec template script");

</script>

</template>
TEMPLATE - LAZY MARKUP
<template id="template">

<h1>Diego Maradona</h1>

<img src="maradona.jpg"/>

<script>

console.log("exec template script");

</script>

</template>
lazy loaded
TEMPLATE - LAZY MARKUP
<template id="template">

<h1>Diego Maradona</h1>

<img src="maradona.jpg"/>

<script>

console.log("exec template script");

</script>

</template>
executed each time when applied
lazy loaded
FEATURETEST
function supportsTemplate() {

var el = document.createElement('template');

return !!('content' in el);

}
read-only DocumentFragment
INSERTING ATEMPLATE
var tmpl = __.e("#template"),

target = __.e("#target");



target.appendChild(

document.importNode(tmpl.content, true)

);
IMPORTEDTEMPLATES
// select the import root from the ‚link‘ elem

var importLink = __.e("#import-1").import;

// select the template within the import

var tmpl = __.e("template", importLink);
__.e("#target").appendChild(

document.importNode(tmpl.content, true)

);
SHADOW DOM
!
Denn die einen sind im Dunkeln

Und die andern sind im Licht

Und man siehet die im Lichte

Die im Dunkeln sieht man nicht 	

!
aus Mackie Messer von Berthold Brecht
RENDERTREE
t e
RENDERTREE
t e
shadow = target.createShadowRoot()
RENDERTREE
t e
shadow = target.createShadowRoot()
RENDERTREE
t e
shadow = target.createShadowRoot()
s
shadow root
RENDERTREE
t e
shadow = target.createShadowRoot() shadow.appendChild(element)
s
shadow root
RENDERTREE
t e
shadow = target.createShadowRoot()
<content/>
shadow.appendChild(element)
s
shadow root
HTML IMPORTS
HTML IMPORTS
initial child node
HTML IMPORTS
initial child node
shadow DOM from template
HTML IMPORTS
initial child node
shadow DOM from template
insertion point of initial content
SHADOW DOMTEMPLATES
function renderShadow(tmplId, targetSelector) {

var tmpl = __.e("#" + tmplId),

target = __.e(targetSelector),

shadow = target.createShadowRoot();



target.style.display = "block";

shadow.appendChild(

tmpl.content.cloneNode(true)

);

}
SHADOW DOMTEMPLATES
function renderShadow(tmplId, targetSelector) {

var tmpl = __.e("#" + tmplId),

target = __.e(targetSelector),

shadow = target.createShadowRoot();



target.style.display = "block";

shadow.appendChild(

tmpl.content.cloneNode(true)

);

}
visually removes all previous children
SHADOW DOMTEMPLATES
<div id="name-shadow-hook" class="hook">

<span class="email">marc.baechinger@gmail.com</span>

<span class="address">Webergasse 23, 8408 Winterthur</span>

<span class="name">Hans Meier</span>

<img src="../images/alaska.jpg" width="480"/>

</div>
<template id="person-template">

<section>

<h3><content select=".name"/></h3>

<p><b>Address</b> <content select=".address"/></p>

<p><b>E-Mail</b> <content select=".email"/></p>

<div><content select=„img"/></div>

</section>

</template>
SHADOW DOMTEMPLATES
<div id="name-shadow-hook" class="hook">

<span class="email">marc.baechinger@gmail.com</span>

<span class="address">Webergasse 23, 8408 Winterthur</span>

<span class="name">Hans Meier</span>

<img src="../images/alaska.jpg" width="480"/>

</div>
<template id="person-template">

<section>

<h3><content select=".name"/></h3>

<p><b>Address</b> <content select=".address"/></p>

<p><b>E-Mail</b> <content select=".email"/></p>

<div><content select=„img"/></div>

</section>

</template>
change initial DOM to change shadow dom
SHADOW DOMTEMPLATES
<template id=„person-template">

<article id="master">

<header><content select=".header"/></header>

<div><content select=".content"/></div>

<footer><content select=".footer"/></footer>

</article>

</template>
template demo
pic: www.lolpig.com
CUSTOM ELEMENTS
<woot/>
CUSTOM ELEMENTS
<polymer-ui-accordion selected="1" id="accordion">

<polymer-ui-collapsible id="abstraction">

<div class="polymer-ui-collapsible-
header">Abstraction and encapsulation</div>

<div>…</div>

</polymer-ui-collapsible>

<polymer-ui-collapsible id="abstraction">

<div class="polymer-ui-collapsible-
header">Abstraction and encapsulation</div>

<div>…</div>

</polymer-ui-collapsible>

</polymer-ui-accordion>
CUSTOM ELEMENTS
CUSTOM ELEMENTS
invisible to querySelector and CSS rules
CUSTOM ELEMENTS
invisible to querySelector and CSS rules
use elements and attributes of DOM as 	

API to interact with the 	

shadow DOM component:

!
acc.setAttribute("selected", 1);
CUSTOM ELEMENTS
function (name, spec, callbacks) {

var proto =

Object.create(HTMLDivElement.prototype);



// […] check for callbacks



return document.registerElement(name, {

prototype: Object.create(proto, spec || {})

});

}
CUSTOM ELEMENTS
function (name, spec, callbacks) {

var proto =

Object.create(HTMLDivElement.prototype);



// […] check for callbacks



return document.registerElement(name, {

prototype: Object.create(proto, spec || {})

});

}
returns a constructor
CUSTOM ELEMENTS
function (name, spec, callbacks) {

var proto =

Object.create(HTMLDivElement.prototype);



// […] check for callbacks



return document.registerElement(name, {

prototype: Object.create(proto, spec || {})

});

}
returns a constructor
the prototype of the constructor
CALLBACKS
proto.createdCallback = function () {}



proto.attachedCallback = function () {}



proto.detachedCallback = function () {}
proto.attributeChangedCallback = f(name,oldV,newV) {}
CALLBACKS
proto.createdCallback = function () {}



proto.attachedCallback = function () {}



proto.detachedCallback = function () {}
proto.attributeChangedCallback = f(name,oldV,newV) {}
this is the DOM element
CUSTOM ELEMENTS
register(

'x-label', 

{},

{

createdCallback: function() {},

attachedCallback: function() {}

}

);
x-label demo
pic: www.lolpig.com
WEBCOMPONENTS	

RECAP
polyfills to use it today
infrastructure for abstraction and
encapsulation
infrastructure to build frameworks 	

on top of it
heavily pushed by Google
future in the dust
RECAP
BRICK AND POLYMER
POLYMER
POLYMER
polyfill
POLYMER
polyfill
polymer framework (eg. databinding)
POLYMER
polyfill
polymer framework (eg. databinding)
polymer elements
POLYMER
polyfill
polymer framework (eg. databinding)
polymer elementspolymer elements
X-TAGS
X-TAGS API (IMPERATIVE)
MOZILLA.GITHUB.IO/BRICK/
MOZILLA.GITHUB.IO/BRICK/
available elements
MOZILLA.GITHUB.IO/BRICK/
available elements
styles and scripts of Brick
THX, GUYS!
RESOURCES
GENERAL
https://html5-demos.appspot.com/static/webcomponents/index.html	

!
www.html5rocks.com/en/tutorials/webcomponents/customelements/	

!
!
https://developer.mozilla.org/en-US/Apps/Tools_and_frameworks/x-tags
HTML IMPORTS
http://w3c.github.io/webcomponents/spec/imports/

http://www.w3.org/TR/2013/WD-html-imports-20130514/

http://www.w3.org/TR/2014/WD-html-imports-20140311/
http://www.html5rocks.com/en/tutorials/webcomponents/
imports/

http://www.polymer-project.org/platform/html-imports.html
https://bugzilla.mozilla.org/show_bug.cgi?id=877072

http://www.x-tags.org/blog
TEMPLATES
http://www.w3.org/TR/components-intro/#template-
section
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/
spec/templates/index.html
http://www.html5rocks.com/en/tutorials/webcomponents/
template/

Contenu connexe

Tendances

Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
Terry Ryan
 

Tendances (20)

Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing Combination
 
Google Polymer Framework
Google Polymer FrameworkGoogle Polymer Framework
Google Polymer Framework
 
Intro to html 5
Intro to html 5Intro to html 5
Intro to html 5
 
Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)
 
ActiveDOM
ActiveDOMActiveDOM
ActiveDOM
 
The Complementarity of React and Web Components
The Complementarity of React and Web ComponentsThe Complementarity of React and Web Components
The Complementarity of React and Web Components
 
Polymer & the web components revolution 6:25:14
Polymer & the web components revolution 6:25:14Polymer & the web components revolution 6:25:14
Polymer & the web components revolution 6:25:14
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
Introduction to Html5
Introduction to Html5Introduction to Html5
Introduction to Html5
 
Chrome enchanted 2015
Chrome enchanted 2015Chrome enchanted 2015
Chrome enchanted 2015
 
A brave new web - A talk about Web Components
A brave new web - A talk about Web ComponentsA brave new web - A talk about Web Components
A brave new web - A talk about Web Components
 
New Elements & Features in HTML5
New Elements & Features in HTML5New Elements & Features in HTML5
New Elements & Features in HTML5
 
HTML5 Essentials
HTML5 EssentialsHTML5 Essentials
HTML5 Essentials
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsOpening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands
 
Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion Dollars
 
HTML 5 & CSS 3
HTML 5 & CSS 3HTML 5 & CSS 3
HTML 5 & CSS 3
 
HTML5
HTML5HTML5
HTML5
 
Knockout.js
Knockout.jsKnockout.js
Knockout.js
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
 

En vedette

Fsoft Introduction
Fsoft IntroductionFsoft Introduction
Fsoft Introduction
LONG NGUYEN
 
How to build customizable multitenant web applications - IPC11 Spring Edition
How to build customizable multitenant web applications - IPC11 Spring EditionHow to build customizable multitenant web applications - IPC11 Spring Edition
How to build customizable multitenant web applications - IPC11 Spring Edition
Stephan Hochdörfer
 

En vedette (20)

Fsoft Introduction
Fsoft IntroductionFsoft Introduction
Fsoft Introduction
 
Microservices at NewStore
Microservices at NewStoreMicroservices at NewStore
Microservices at NewStore
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Future of Web Development
Future of Web DevelopmentFuture of Web Development
Future of Web Development
 
future of web development
future of web developmentfuture of web development
future of web development
 
Building Isomorphic Apps (JSConf.Asia 2014)
Building Isomorphic Apps (JSConf.Asia 2014)Building Isomorphic Apps (JSConf.Asia 2014)
Building Isomorphic Apps (JSConf.Asia 2014)
 
Microservices based Application Integration for SaaS, Hybrid Clouds and IoT
Microservices based Application Integration for SaaS, Hybrid Clouds and IoTMicroservices based Application Integration for SaaS, Hybrid Clouds and IoT
Microservices based Application Integration for SaaS, Hybrid Clouds and IoT
 
Advanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented ArchitectureAdvanced Concepts in Software as a Service / Service Oriented Architecture
Advanced Concepts in Software as a Service / Service Oriented Architecture
 
Enterprise DevOps in the Age of Docker & Microservices
Enterprise DevOps in the Age of Docker & MicroservicesEnterprise DevOps in the Age of Docker & Microservices
Enterprise DevOps in the Age of Docker & Microservices
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Chap 5 software as a service (saass)
Chap 5 software as a service (saass)Chap 5 software as a service (saass)
Chap 5 software as a service (saass)
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3
 
SaaS Introduction-May2014
SaaS Introduction-May2014SaaS Introduction-May2014
SaaS Introduction-May2014
 
An introduction and overview to Software as a Service
An introduction and overview to Software as a Service An introduction and overview to Software as a Service
An introduction and overview to Software as a Service
 
Microservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration finalMicroservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration final
 
Multi Tenancy In The Cloud
Multi Tenancy In The CloudMulti Tenancy In The Cloud
Multi Tenancy In The Cloud
 
Architecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeArchitecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First Time
 
Open Architecture for Developing Multitenant Software-as-a-Service Applications
Open Architecture for Developing Multitenant Software-as-a-Service ApplicationsOpen Architecture for Developing Multitenant Software-as-a-Service Applications
Open Architecture for Developing Multitenant Software-as-a-Service Applications
 
How to build customizable multitenant web applications - IPC11 Spring Edition
How to build customizable multitenant web applications - IPC11 Spring EditionHow to build customizable multitenant web applications - IPC11 Spring Edition
How to build customizable multitenant web applications - IPC11 Spring Edition
 
DevOps, containers & microservices: Separating the hype from the reality
DevOps, containers & microservices: Separating the hype from the realityDevOps, containers & microservices: Separating the hype from the reality
DevOps, containers & microservices: Separating the hype from the reality
 

Similaire à Introduction to web components

Microdata semantic-extend
Microdata semantic-extendMicrodata semantic-extend
Microdata semantic-extend
Seek Tan
 
HTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - AltranHTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - Altran
Robert Nyman
 
Html5 - short intro
Html5 - short introHtml5 - short intro
Html5 - short intro
jeiseman
 
TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!
TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!
TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!
Coulawrence
 
Polymer
Polymer Polymer
Polymer
jskvara
 

Similaire à Introduction to web components (20)

Polytechnic 1.0 Granada
Polytechnic 1.0 GranadaPolytechnic 1.0 Granada
Polytechnic 1.0 Granada
 
TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單
 
Polymer - Una bella historia de amor
Polymer - Una bella historia de amorPolymer - Una bella historia de amor
Polymer - Una bella historia de amor
 
Polymer - El fin a tus problemas con el FrontEnd
Polymer - El fin a tus problemas con el FrontEndPolymer - El fin a tus problemas con el FrontEnd
Polymer - El fin a tus problemas con el FrontEnd
 
The Structure of Web Code: A Case For Polymer, November 1, 2014
The Structure of Web Code: A Case For Polymer, November 1, 2014The Structure of Web Code: A Case For Polymer, November 1, 2014
The Structure of Web Code: A Case For Polymer, November 1, 2014
 
Polymer 1.0
Polymer 1.0Polymer 1.0
Polymer 1.0
 
BreizhBeans - Web components
BreizhBeans - Web componentsBreizhBeans - Web components
BreizhBeans - Web components
 
X tag with web components - joe ssekono
X tag with web components - joe ssekonoX tag with web components - joe ssekono
X tag with web components - joe ssekono
 
Microdata semantic-extend
Microdata semantic-extendMicrodata semantic-extend
Microdata semantic-extend
 
HTML5
HTML5HTML5
HTML5
 
HTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - AltranHTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - Altran
 
HTML5 workshop, part 1
HTML5 workshop, part 1HTML5 workshop, part 1
HTML5 workshop, part 1
 
Polymer - Lego for the web!
Polymer - Lego for the web!Polymer - Lego for the web!
Polymer - Lego for the web!
 
关于 Html5 那点事
关于 Html5 那点事关于 Html5 那点事
关于 Html5 那点事
 
Chandra Maharzan: The Future of Web Design Experience
Chandra Maharzan: The Future of Web Design ExperienceChandra Maharzan: The Future of Web Design Experience
Chandra Maharzan: The Future of Web Design Experience
 
Frontend for developers
Frontend for developersFrontend for developers
Frontend for developers
 
Upload[1]
Upload[1]Upload[1]
Upload[1]
 
Html5 - short intro
Html5 - short introHtml5 - short intro
Html5 - short intro
 
TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!
TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!
TURN YOUR CELL PHONE FROM A LIABILITY INTO AN ASSET!
 
Polymer
Polymer Polymer
Polymer
 

Plus de Marc Bächinger

Architecting non-trivial browser applications (Jazoon 2012)
Architecting non-trivial browser applications (Jazoon 2012)Architecting non-trivial browser applications (Jazoon 2012)
Architecting non-trivial browser applications (Jazoon 2012)
Marc Bächinger
 

Plus de Marc Bächinger (8)

HTML5 unplugged
HTML5 unpluggedHTML5 unplugged
HTML5 unplugged
 
Modern web application network architecture
Modern web application network architectureModern web application network architecture
Modern web application network architecture
 
JavaScript toolchain
JavaScript toolchainJavaScript toolchain
JavaScript toolchain
 
JQuery primer
JQuery primerJQuery primer
JQuery primer
 
With your bare hands
With your bare handsWith your bare hands
With your bare hands
 
Architecting non-trivial browser applications (Jazoon 2012)
Architecting non-trivial browser applications (Jazoon 2012)Architecting non-trivial browser applications (Jazoon 2012)
Architecting non-trivial browser applications (Jazoon 2012)
 
Jax-rs-js Tutorial
Jax-rs-js TutorialJax-rs-js Tutorial
Jax-rs-js Tutorial
 
Html5 communication
Html5 communicationHtml5 communication
Html5 communication
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Introduction to web components