angularfix
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • Angular
  • AngularJS
  • Typescript
  • HTML
  • CSS
  • Javascript

Monday

AngularJS : Initialize service with asynchronous data

 9:30 AM     angular-promise, angularjs, asynchronous, javascript, service     No comments   

Issue

I have an AngularJS service that I want to initialize with some asynchronous data. Something like this:

myModule.service('MyService', function($http) {
    var myData = null;

    $http.get('data.json').success(function (data) {
        myData = data;
    });

    return {
        setData: function (data) {
            myData = data;
        },
        doStuff: function () {
            return myData.getSomeData();
        }
    };
});

Obviously this won't work because if something tries to call doStuff() before myData gets back I will get a null pointer exception. As far as I can tell from reading some of the other questions asked here and here I have a few options, but none of them seem very clean (perhaps I am missing something):

Setup Service with "run"

When setting up my app do this:

myApp.run(function ($http, MyService) {
    $http.get('data.json').success(function (data) {
        MyService.setData(data);
    });
});

Then my service would look like this:

myModule.service('MyService', function() {
    var myData = null;
    return {
        setData: function (data) {
            myData = data;
        },
        doStuff: function () {
            return myData.getSomeData();
        }
    };
});

This works some of the time but if the asynchronous data happens to take longer than it takes for everything to get initialized I get a null pointer exception when I call doStuff()

Use promise objects

This would probably work. The only downside it everywhere I call MyService I will have to know that doStuff() returns a promise and all the code will have to us then to interact with the promise. I would rather just wait until myData is back before loading the my application.

Manual Bootstrap

angular.element(document).ready(function() {
    $.getJSON("data.json", function (data) {
       // can't initialize the data here because the service doesn't exist yet
       angular.bootstrap(document);
       // too late to initialize here because something may have already
       // tried to call doStuff() and would have got a null pointer exception
    });
});

Global Javascript Var I could send my JSON directly to a global Javascript variable:

HTML:

<script type="text/javascript" src="data.js"></script>

data.js:

var dataForMyService = { 
// myData here
};

Then it would be available when initializing MyService:

myModule.service('MyService', function() {
    var myData = dataForMyService;
    return {
        doStuff: function () {
            return myData.getSomeData();
        }
    };
});

This would work too, but then I have a global javascript variable which smells bad.

Are these my only options? Are one of these options better than the others? I know this is a pretty long question, but I wanted to show that I have tried to explore all my options. Any guidance would greatly be appreciated.


Solution

Have you had a look at $routeProvider.when('/path',{ resolve:{...}? It can make the promise approach a bit cleaner:

Expose a promise in your service:

app.service('MyService', function($http) {
    var myData = null;

    var promise = $http.get('data.json').success(function (data) {
      myData = data;
    });

    return {
      promise:promise,
      setData: function (data) {
          myData = data;
      },
      doStuff: function () {
          return myData;//.getSomeData();
      }
    };
});

Add resolve to your route config:

app.config(function($routeProvider){
  $routeProvider
    .when('/',{controller:'MainCtrl',
    template:'<div>From MyService:<pre>{{data | json}}</pre></div>',
    resolve:{
      'MyServiceData':function(MyService){
        // MyServiceData will also be injectable in your controller, if you don't want this you could create a new promise with the $q service
        return MyService.promise;
      }
    }})
  }):

Your controller won't get instantiated before all dependencies are resolved:

app.controller('MainCtrl', function($scope,MyService) {
  console.log('Promise is now resolved: '+MyService.doStuff().data)
  $scope.data = MyService.doStuff();
});

I've made an example at plnkr: http://plnkr.co/edit/GKg21XH0RwCMEQGUdZKH?p=preview



Answered By - joakimbl
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
This Answer collected from stackoverflow and tested by AngularFix community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0
Newer Post Older Post Home

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Popular Posts

  • How to fix Angular issue: Cannot read properties of null (reading 'cannotContainSpace')
    Issue I have created a custom ValidationFn in angular. Somehow I allways get the following...
  • throw new ERR_INVALID_ARG_TYPE('chunk',['string','Buffer'],chunk);TypeError[ERR_INVALID_ARG_TYPE]:The "chunk" arg must be type string or Buffer
    Issue I am trying to get the contents of a .json file using a node js service into an ang...
  • What is "not assignable to parameter of type never" error in TypeScript?
    Issue Code is: const foo = (foo: string) => { const result = [] result.push(foo) ...
  • how to wait for the subscribe to finish before going back to caller method in angular
    Issue Following is the code flow for the particular scenario. First, a POST call. ...
  • How to resolve npm ERR! code ECONNRESET while installing Angular cli
    Issue I have successfully installed nodejs on my Windows-10 local system. When I ...
  • RxJs forkjoin deprecated
    Issue I have checked my project that forkjoin is being deprecated, since forkjoin ...
  • Cannot read properties of undefined (reading 'subscribe') in Unit Test NgOnInIt
    Issue I tried a lot of SO Question's answers but nothing worked for this.so in...
  • Can't run my Node.js Typescript project TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /app/src/App.ts
    Issue When I try to start my app on Heroku I got the following stack trace. It is just a b...
  • Why am I getting "Type instantiation is excessively deep and possibly infinite"?
    Issue Playground link I have these general definitions: type Module<P extends Payload...
  • Property does not exist on type 'IntrinsicAttributes' with useFormContext and custom tag
    Issue Recently I changed my custom input components to use react useFormContext instead o...

Labels

.d.ts .htaccess .net .net-5 .net-6.0 .net-core 2-way-object-databinding 2d 3d 3d-model 3d-modelling 960.gs a2hs abortcontroller abp absolute abstract abstract-class accelerator access-control-allow-origin access-token accessibility accordion ace-editor acfpro ack acronym action actioncable actionsheet adal adb adblock addeventlistener adfs adjustment adminlte admob adonis.js adonisjs-ace ads adsense advanced-custom-fields aes aframe ag-grid ag-grid-angular ag-grid-ng2 ag-grid-react agm agm-core agm-map agora.io airplay airtable ajax ajax.net ajsf ajv alert alexa-skill alexa-skills-kit algebraic-data-types algolia algorithm alias alignment alpine.js alt alt-attribute alter amazon-cloudformation amazon-cloudfront amazon-cognito amazon-dynamodb amazon-ec2 amazon-ecr amazon-elastic-beanstalk amazon-glacier amazon-iam amazon-rds amazon-s3 amazon-sns amazon-sqs amazon-vpc amazon-web-services amcharts amcharts4 amcharts5 ampersand amplify amplifyjs amplitude-analytics analytics anchor anchor-scroll anchor-solana android android-10.0 android-11 android-12 android-app-bundle android-appcompat android-build android-dark-theme android-emulator android-espresso android-gradle-plugin android-intent android-location android-night-mode android-permissions android-sdk-tools android-softkeyboard android-spannable android-sqlite android-studio android-studio-4.2 android-toast android-tv android-vibration android-view android-webview androidx angular angular-abstract-control angular-activatedroute angular-akita angular-animations angular-auth-oidc-client angular-auxiliary-routes angular-binding angular-bootstrap angular-bootstrap-calendar angular-breadcrumb angular-broadcast angular-builder angular-cache angular-calendar angular-cdk angular-cdk-drag-drop angular-cdk-overlay angular-cdk-virtual-scroll angular-changedetection angular-chart angular-chosen angular-cli angular-cli-v6 angular-cli-v8 angular-cli-v9 angular-compiler angular-compiler-cli angular-component-life-cycle angular-component-router angular-components angular-content-projection angular-controller angular-controlvalueaccessor angular-cookies angular-custom-validators angular-dart angular-datatables angular-date-format angular-daterangepicker angular-decorator angular-dependency-injection angular-devkit angular-di angular-directive angular-dom-sanitizer angular-dragdrop angular-dynamic-components angular-dynamic-forms angular-e2e angular-elements angular-errorhandler angular-eslint angular-event-emitter angular-factory angular-file-upload angular-filters angular-flex-layout angular-fontawesome angular-formbuilder angular-formly angular-forms angular-fullstack angular-google-maps angular-gridster2 angular-guards angular-http angular-http-interceptors angular-httpclient angular-hybrid angular-i18n angular-in-memory-web-api angular-inheritance angular-injector angular-input angular-ivy angular-jest angular-json angular-language-service angular-lazyloading angular-leaflet-directive angular-library angular-lifecycle-hooks angular-load-children angular-local-storage angular-localize angular-maps angular-material angular-material-5 angular-material-6 angular-material-7 angular-material-datetimepicker angular-material-paginator angular-material-stepper angular-material-table angular-material-theming angular-material2 angular-mock angular-module angular-module-federation angular-moment angular-nativescript angular-ng-class angular-ng-if angular-ngfor angular-ngmodel angular-ngmodelchange angular-ngrx-data angular-ngselect angular-nvd3 angular-oauth2-oidc angular-observable angular-output angular-package-format angular-pipe angular-promise angular-providers angular-reactive-forms angular-renderer angular-renderer2 angular-resolver angular-resource angular-route-guards angular-router angular-router-events angular-router-guards angular-router-params angular-routerlink angular-routing angular-schema-form angular-schematics angular-seed angular-service-worker angular-services angular-slickgrid angular-social-login angular-socket-io angular-spectator angular-standalone-components angular-state-managmement angular-storybook angular-strap angular-template angular-template-form angular-template-variable angular-test angular-testing-library angular-tour-of-heroes angular-transfer-state angular-translate angular-tree-component angular-ui angular-ui-bootstrap angular-ui-grid angular-ui-modal angular-ui-router angular-ui-select angular-ui-tree angular-ui-typeahead angular-unit-test angular-universal angular-upgrade angular-validation angular-validator angular-webpack angular10 angular11 angular12 angular13 angular14 angular14upgrade angular2-animation angular2-aot angular2-changedetection angular2-cli angular2-components angular2-custom-pipes angular2-databinding angular2-decorators angular2-di angular2-directives angular2-form-validation angular2-formbuilder angular2-forms angular2-google-maps angular2-guards angular2-highcharts angular2-hostbinding angular2-http angular2-material angular2-meteor angular2-modules angular2-moment angular2-nativescript angular2-ngcontent angular2-ngmodel angular2-observables angular2-pipe angular2-providers angular2-router angular2-router3 angular2-routing angular2-select angular2-services angular2-styleguide angular2-template angular2-testing angular2-ui-bootstrap angular2viewencapsulation angular4 angular4-aot angular4-forms angular4-router angular5 angular6 angular7 angular8 angular9 angulardraganddroplists angularfire angularfire2 angularjs angularjs-1.5 angularjs-1.6 angularjs-authentication angularjs-bindings angularjs-compile angularjs-components angularjs-controller angularjs-controlleras angularjs-digest angularjs-directive angularjs-e2e angularjs-filter angularjs-forms angularjs-google-maps angularjs-http angularjs-interpolate angularjs-material angularjs-ng-change angularjs-ng-checked angularjs-ng-class angularjs-ng-click angularjs-ng-disabled angularjs-ng-href angularjs-ng-if angularjs-ng-init angularjs-ng-model angularjs-ng-repeat angularjs-ng-route angularjs-ng-show angularjs-ng-switch angularjs-ng-transclude angularjs-ng-value angularjs-ngmock angularjs-nvd3-directives angularjs-q angularjs-resource angularjs-routing angularjs-scope angularjs-select angularjs-service angularjs-templates angularjs-timeout angularjs-track-by angularjs-validation angularjs-watch animate.css animated animation anime.js annotations anonymous anonymous-function ansible ant-design-pro ant-media-server antd antora antplus antv any aot apache apache-echarts apache-fop apache-kafka apache-spark apache-zeppelin apache2 apex apexcharts api api-design api-gateway api-key apk apollo apollo-angular apollo-client apollo-server app-service-environment app-store appbar appdata appearance append appendchild appery.io appium apple-app-site-association apple-m1 apple-push-notifications applepay applepay-web applepayjs application-server arabic arcgis-js-api architecture argument-passing arguments aria-role arima arquero array-filter array-merge array-reduce array-splice arraybuffer arraylist arrayobject arrayofarrays arrays arrow-functions arrow-keys article ascii asp-net-core-spa-services asp.net asp.net-ajax asp.net-core asp.net-core-2.0 asp.net-core-2.1 asp.net-core-3.1 asp.net-core-6.0 asp.net-core-mvc asp.net-core-razor-pages asp.net-core-signalr asp.net-core-webapi asp.net-identity asp.net-mvc asp.net-mvc-4 asp.net-mvc-5 asp.net-web-api asp.net-web-api-routing asp.net-web-api2 aspect-ratio aspnetboilerplate aspnetcore-environment assets assign async-await async-pipe asynchronous asynchronous-javascript atom-editor attachment attr attributes audio audio-streaming audiotrack augmented-reality auth-guard auth0 auth0-connection authentication authorization autocomplete autofill autofocus autogrow automated-tests automation automation-testing autonumeric.js autoplay autoprefixer autoresize autosize awk aws-amplify aws-amplify-cli aws-amplify-vue aws-api-gateway aws-appsync aws-cdk aws-chatbot aws-cloudformation-custom-resource aws-code-deploy aws-codebuild aws-codepipeline aws-lambda aws-sam aws-sdk aws-secrets-manager aws-security-group aws-serverless aws-ssm aws-step-functions axes axios axis-labels azure azure-active-directory azure-ad-b2c azure-ad-b2c-custom-policy azure-ad-graph-api azure-api-management azure-appservice azure-blob-storage azure-cosmosdb azure-cosmosdb-sqlapi azure-devops azure-devops-extensions azure-devops-rest-api azure-functions azure-maps azure-pipelines azure-pipelines-yaml azure-signalr azure-static-web-app azure-storage azure-web-app-service b2b babel-jest babel-loader babel-plugin-react-css-modules babeljs back back-button backbone-events backbone.js backdrop backend background background-clip background-color background-image badge bamboo banner bar-chart barcode-scanner base-tag base58 base64 base64url bash basic-authentication batch-file batch-processing bazel bdd bearer-token beautifulsoup beego behaviorsubject bem bigcartel bigint biginteger binance binance-api-client binary bind binding bing bitbucket-pipelines bitmap blade blazor blazor-server-side blazor-webassembly blazorise blending blob block blockchain blockly blockquote blogdown blogger blogs bluetooth bluetooth-lowenergy blur body-parser boilerplate bokeh boolean boolean-logic boost-propertytree bootbox bootstrap-3 bootstrap-4 bootstrap-5 bootstrap-carousel bootstrap-icons bootstrap-modal bootstrap-popover bootstrap-select bootstrap-table bootstrap-tags-input bootstrap-vue bootstrap5-modal border border-box border-image border-radius border-spacing botframework bottomnavigationview bower box box-shadow brain.js braintree branch breadcrumbs break breakpoints brightcove brightness broadcast browser browser-cache browser-detection browser-history browser-sync browser-tab browserstack bryntum-scheduler brython bubble-sort buffer build build-definition build-error build.gradle builtwith bulma bun bundler bundling-and-minification button buttonclick buttongroup c c# c#-4.0 cache-control caching cakephp calc calculation calculator calendar call callback callkit callstack camelcasing camera canactivate candeactivate canvas capacitor capacitor-plugin capitalize capslock captcha caption capture capturestream carbon-design-system card caret cargo carousel cart cas case casting catalyst cdn cell center centering centos cgi-bin chai chakra-ui chalk change-detector-ref character-encoding chart.js chart.js2 chartjs-2.6.0 chartjs-plugin-zoom charts chat chatbot checkbox checked checkmarx checkout cheerio child-process children chinese-locale chm chrome-custom-tabs chromium chron cicd circular-dependency citations ckeditor ckeditor4.x ckeditor5 claims-authentication clasp class class-attributes class-names class-transformer class-validator classname clean-architecture clearfix click clickable client client-side client-side-attacks clip clip-path clipboard clipping clock clone clonenode cloning closures cloud-foundry cloudflare cloudinary cmd cocoapods code-coverage code-formatting code-generation code-injection code-push code-signing code-translation codegen codehooks.io codeigniter codeigniter-3 codeigniter-restserver codelyzer codepen codesandbox coding-style coffeescript col collapsable collapse collections colon color-blending color-picker color-scheme color-space colors combinelatest combo-chart combobox command-line-interface comments commonjs communication comobject compare comparison compass-sass compatibility compilation compile-time compiler-errors compiler-options complextype components compound-operator computed-properties computer-science concatenation concatmap concurrently conditional conditional-compilation conditional-operator conditional-statements conditional-types config config.json configuration confirm confirm-dialog conflict connect-four connectivity console console.log constants constructor contact contact-form-7 containers contains content-management-system content-security-policy content-type contenteditable contentproperty context-api contextpath continuous-integration contrast contravariance controller controlvalueaccessor conventions converters cookies copy copy-constructor copy-paste cordova cordova-2.0.0 cordova-android cordova-ios cordova-plugin-advanced-http cordova-plugin-fcm cordova-plugin-firebasex cordova-plugin-proguard cordova-plugins core-js core-web-vitals correlation cors cors-anywhere couchdb countdown covariance cpanel cpu create-react-app createcontext createelement createjs cron cross-browser cross-domain cross-origin-read-blocking cross-origin-resource-policy cross-platform crt crud cryptography cryptojs csproj csrf css css-animations css-calc css-cascade css-content css-filters css-float css-gradients css-grid css-import css-in-js css-layer css-mask css-modules css-multicolumn-layout css-position css-print css-reset css-selectors css-shapes css-specificity css-sprites css-tables css-transforms css-transitions css-variables cssnano cssom csv cucumber cucumberjs cufon cups curl currency currency-pipe currying cursor curve custom-build custom-button custom-component custom-controls custom-cursor custom-data-attribute custom-directive custom-domain custom-element custom-post-type custom-type customization customvalidator cypress cypress-conditional-testing cypress-each d3-dag d3.js d3tree daisyui danfojs darkmode dart dart-html dart-sass dashboard data-binding data-conversion data-retrieval data-structures data-transform data-uri data-visualization database database-migration dataframe datagrid datalist datasource datatable datatables date date-fns date-format date-formatting date-pipe date-range datepicker datetime datetime-format datetimepicker dayjs days deadline-timer debian debounce debouncing debugging decentralized-applications decimal decimalformat declaration declarative declarative-programming declare decoder decorator deep-copy deep-linking deeplink default default-value defineproperty definitelytyped definition delay delegates deno denodb dependencies dependency-injection deploying deployment deprecated design-patterns desktop destructuring details-tag detection dev-to-production developer-tools development-environment devexpress devextreme devextreme-angular device device-detection devise devops devtools dexie dexiejs dhtml dhtmlx diagonal dialog dictionary difference digital-ocean dijit.layout directive directory directory-structure dirpagination disable disabled-control disabled-input discord discord.js discriminated-union display displayobject displaytag disqus distinct-values divi divi-theme divider django django-admin django-celery django-crispy-forms django-csrf django-extensions django-filter django-forms django-models django-rest-framework django-templates django-weasyprint django-webpack-loader dji-sdk dns docker docker-compose docker-swarm dockerfile doctype document dojo dom dom-events dom-manipulation dom-to-image domain-driven-design domain-name domdocument domparser dompdf donut-chart dotenv dotnetnuke download drag drag-and-drop draggable drawimage drawing drop-down-menu dropdown dropdownbox dropshadow dropzone.js dry dspace dt duplicates durandal duration dwr dx-data-grid dynamic dynamic-arrays dynamic-html dynamic-import dynamic-programming dynamic-routing dynamic-values dynamicgridview dynamics-crm dynamics-marketing dynamodb-queries e-commerce e2e-testing each eager-loading easeljs easy-peasy echarts echo eclipse ecma ecmascript-2016 ecmascript-2017 ecmascript-2019 ecmascript-5 ecmascript-6 ecmascript-next editor editorjs effects ej2-gantt ej2-syncfusion ejs el-plus elastic-stack elasticsearch electron electron-builder electron-forge electron-packager element element-plus element-ui elementor elementref elementtree elixir elk ellipse ellipsis elm emacs email email-attachments email-formats email-validation embed embedded-fonts ember.js emitter emmet emoji emotion empty-list encapsulation encoding encryption end-to-end endpoint enjoyhint enter enterprise entities entity entity-framework entity-framework-core enums environment environment-variables enzyme eos equivalent erb error-handling es6-class es6-module-loader es6-modules es6-promise esbuild escaping escpos eslint eslint-config-airbnb eslintrc esri esri-maps ethereum euro event-binding event-driven event-handling event-listener event-loop event-propagation eventemitter events eventstoredb excel excel-addins excel-formula excel-online excel-web-addins excel4node exceljs exception execcommand exif-js expand expandable-table expansion expo expo-sqlite export export-to-csv export-to-excel express express-handlebars express-session extend extending extends external-js external-url extjs fabricjs facade facebook facebook-comments facebook-graph-api facebook-javascript-sdk facebook-login facebook-opengraph facebook-social-plugins factory factory-pattern fade failed-installation faker.js fallback fancybox farsi fast-xml-parser fastapi fastcgi fastify fastlane faunadb favicon fetch fetch-api ffmpeg figma figure file file-link file-not-found file-structure file-upload fileapi filelist filepath filereader files-app filesaver.js filesystems filetree filter filtering final find findall findelement fingerprint firebase firebase-admin firebase-analytics firebase-app-check firebase-authentication firebase-cli firebase-cloud-messaging firebase-console firebase-dynamic-links firebase-hosting firebase-notifications firebase-realtime-database firebase-security firebase-storage firebase-tools firebaseui firebug firefox firefox-addon firefox-developer-tools firefox4 fixed fixed-length-array fixed-width fixtures flash flask flask-restful flask-sqlalchemy flask-wtforms flex3 flexbox flexdashboard flexslider flextable flicker flickity flip flower fluent-ui fluentui-react fluentvalidation fluid fluid-layout flutter flutter-test flutter-web flying-saucer focus font-awesome font-awesome-4 font-awesome-5 font-awesome-6 font-face font-family font-size fonts footer for-loop foreach foreground-service forgot-password fork-join form-control form-data form-fields form-submit formarray format formatdatetime formatting formbuilder formgroups formik formmail forms formula forward-reference foundry-slate fp-ts fpm fragment framer-motion frameworks freemarker freeze freshjs froala frontend fs full-width fullcalendar fullcalendar-3 fullcalendar-5 fullcalendar-scheduler fullscreen function function-call function-parameter functional-programming fusioncharts fxml game-development gantt-chart garbage-collection gatsby gatsby-plugin-mdx gauge gcloud generator generic-function generic-type-argument generic-type-parameters generics geojson geolocation geometry geonames geoserver gesture get getattribute getcomputedstyle getdate getelementbyid getelementsbyclassname getelementsbytagname getter getter-setter getvalue gherkin gis git git-husky gitbook github github-actions github-flavored-markdown github-pages gitignore gitlab gitlab-ci gitlab-ci-runner global global-variables glyphicons gmail go go-echo gojs google-admin-sdk google-ads-api google-analytics google-analytics-api google-api google-api-java-client google-api-js-client google-app-engine google-apps-script google-authentication google-calendar-api google-chrome google-chrome-console google-chrome-devtools google-chrome-extension google-chrome-headless google-chrome-warning google-cloud-build google-cloud-firestore google-cloud-functions google-cloud-platform google-cloud-pubsub google-cloud-scheduler google-cloud-sql google-cloud-storage google-colaboratory google-compute-engine google-developer-tools google-diff-match-patch google-drive-api google-font-api google-fonts google-forms google-geolocation google-login google-map-react google-maps google-maps-api-3 google-maps-autocomplete google-maps-markers google-material-icons google-oauth google-one-tap google-places-api google-play google-play-billing google-play-console google-play-services google-plus google-plus-signin google-reviews google-roads-api google-search google-sheets google-signin google-street-view-static-api google-tag-manager google-text-to-speech google-translate google-visualization google-webfonts googleplacesautocomplete gradient gradle grammar graph graphical-logo graphics graphql graphql-codegen graphql-js graphql-mutation graphviz gravatar gravity grayscale grecaptcha grep grid grid-layout gridstack gridster gridview groovy group-by grouping grpc grpc-node grpc-web gruntjs gsap gsub gtag.js gtk3 guard guid gulp gulp-imagemin gulp-sass gulp-typescript gulp-uglify gun gutenberg-blocks hamburger-menu hammer.js hana handle handlebars.js handsontable hapi hapijs hardhat hardware hash hash-location-strategy hashmap hashtag hbs hdiv hdpi header headless-cms headless-ui heads-up-notifications heatmap heic height helmet.js helper heroku heuristics hex hibernate hidden hide hierarchy highcharts highcharts-gantt higher-order-components higher-order-functions highlight highlighting histogram history history.js hls.js hono hook hook-woocommerce horizontal-alignment horizontal-scrolling host hosting hot-module-replacement hot-reload hotkeys hover href hsl htdocs html html-datalist html-email html-entities html-frames html-framework-7 html-head html-heading html-helper html-imports html-injections html-input html-lists html-parsing html-pdf html-rendering html-select html-table html-templates html-to-pdf html-validation html-webpack-plugin html.actionlink html2canvas html2pdf html4 html5-audio html5-canvas html5-filesystem html5-history html5-template html5-video htmlcollection htmlelements htmllint htmlspecialchars htmx http http-accept-language http-delete http-equiv http-get http-headers http-live-streaming http-options-method http-parameters http-patch http-post http-proxy http-proxy-middleware http-status-code-400 http-status-code-401 http-status-code-404 http-status-code-405 http-status-code-415 http-status-code-500 http-status-code-503 http-status-codes http2 httpbackend httpclient httpcontext httpcookie httpexception httpinterceptor httprequest httpresponse https httpserver httpwebresponse huawei-mobile-services hugo husky hybrid-mobile-app hybris hyperledger-fabric hyperlink hyphen hyphenation i18next ibeacon icecast icon-fonts icons id3 ide identityserver3 identityserver4 idioms idp ienumerable if-statement ifc iframe ignite-ui iife iis iis-10 iis-7.5 iis-8 iisnode image image-gallery image-processing image-slider imagepicker imageset imaskjs imei immutability immutable.js implements import import-from-excel importerror in-app-purchase inappbrowser include increment indentation index-signature indexeddb indexing indexof inertiajs inference infinite-scroll info information-visualization infragistics inheritance initialization initializer inject injection-tokens inline inline-styles inline-svg inner-classes innerhtml innertext input input-mask input-type-file inputbox inputevent insert inspect installation instance instanceof integer integration intellij-idea intellisense interact.js intercept interceptor interface internationalization internet-explorer internet-explorer-11 internet-explorer-6 internet-explorer-7 internet-explorer-8 internet-radio interpolation intersection intersection-observer intl-tel-input intrinsicattributes invariance inversion-of-control invisible-recaptcha invokescript ion-checkbox ion-content ion-grid ion-infinite-scroll ion-item ion-menu ion-radio-group ion-range-slider ion-segment ion-select ion-slides ion-toggle ionic ionic-appflow ionic-cli ionic-cordova ionic-enterprise-auth ionic-framework ionic-native ionic-native-http ionic-plugins ionic-popover ionic-popup ionic-react ionic-storage ionic-tabs ionic-v1 ionic-view ionic-vue ionic-webview ionic2 ionic3 ionic4 ionic5 ionic6 ionicons ios ios-permissions ios-simulator ios10 ios15 ip ipad ipc ipcmain ipconfig ipcrenderer iphone iphone-standalone-web-app ipython isnull iso8601 isodate istanbul iter-ops iteration iterm2 itext itext7 itfoxtec-identity-saml2 itms-90809 itunes-search-api ivy jackson jaeger jakarta-ee jasmin jasmine jasmine-marbles jasmine-ts jasmine2.0 java java-8 javafx javafx-8 javascript javascript-debugger javascript-decorators javascript-framework javascript-marked javascript-objects javascript-proxy jaws-screen-reader jdl jeditorpane jekyll jenkins jenkins-pipeline jersey jest-dom jest-preset-angular jestjs jhipster jinja2 jinja2-cli jira jira-rest-api joi joomla jose jpeg jquery jquery-animate jquery-autocomplete jquery-events jquery-lazyload jquery-masonry jquery-mobile jquery-plugins jquery-select2 jquery-selectors jquery-ui jquery-ui-datepicker jquery-ui-draggable jquery-ui-menu jqxgrid js-xlsx jscompress jsdoc jsdom jsencrypt jsf jsfiddle jsgrid json json-schema-validator json-server json.net json2html json5 jsoneditor jsonplaceholder jsonschema jsoup jsp jspdf jspdf-autotable jspsych jsrender jss jstl jstree jsx jszip jupyter jupyter-notebook justify jvectormap jwplayer jwt kable kableextra karma-coverage karma-jasmine karma-runner kebab-case kendo-chart kendo-combobox kendo-datepicker kendo-grid kendo-ui kendo-ui-angular2 kendo-upload kepler.gl keras kestrel key key-bindings key-value keyboard keyboard-events keyboard-navigation keyboard-shortcuts keycloak keycloak-js keycloak-rest-api keycloak-services keycode keydown keyframe keyof keypress keyword kibana-4 kill kill-process knex.js knitr knockout.js koa koa-bodyparser kong konva konvajs kotlin kubernetes kubernetes-ingress label labels lagom lang language-design language-server-protocol laravel laravel-4 laravel-5 laravel-5.8 laravel-8 laravel-9 laravel-blade laravel-livewire laravel-passport laravel-sanctum laravel-snappy laravel-validation late-binding latex layer layout lazy-initialization lazy-loading leaderboard leaflet leaflet-geoman leaflet.draw less lets-encrypt letter-spacing libraries lifecycle ligature lightbox lightbox2 lightgallery lighthouse limit line line-breaks line-height line-through linear-gradients linechart linefeed linq linq-to-sql lint lint-staged linter linux liquid liskov-substitution-principle list listbox listener listitem listjs listobject listpicker listview lit lit-element lit-html literals live livereload liveserver load-balancing loader loading local local-storage locale localhost localization localnotification location-href lodash logentries logging logic login login-system logout logstash long-press loopback loopbackjs loops lottie lowercase lucid luxon lxml m3u m3u8 mac-address macos macos-big-sur macos-catalina macos-high-sierra macos-monterey macros magento magento2 magnific-popup mailchimp-api-v3.0 mailto makestyles manifest manifest.json many-to-many map mapbox mapbox-gl mapbox-gl-js mapped-types mapping maps margin margins markdown markerclusterer markup marp marpit mask masking masonry master-detail master-pages mat mat-autocomplete mat-card mat-datepicker mat-dialog mat-drawer mat-error mat-expansion-panel mat-form-field mat-icon mat-input mat-list mat-option mat-pagination mat-select mat-slider mat-stepper mat-tab mat-table match material-components material-components-web material-design material-design-lite material-dialog material-icons material-table material-ui materialbutton materialize math mathjax mathml matter.js maven max mcu md-autocomplete md-select mdbootstrap mdc-components mddialog mean mean-stack meanjs measurement media media-queries mediastream megamenu memoization memoized-selectors memory memory-leaks memory-management mention menu menubar menuitem mergemap mern mesh message meta meta-tags metadata metamask metaplex meteor methods metrics micro-frontend microservices microsoft-edge microsoft-graph-api microsoft-identity-platform microsoft-teams microsoft-web-deploy middleware migration mikro-orm mime mime-types mindmap minesweeper minify minimist minio miragejs mithril.js mix-blend-mode mixins mkdocs mobile mobile-angular-ui mobile-application mobile-development mobile-safari mobile-website mobx mobx-react mobx-state-tree mocha-webpack mocha.js mocking mod-rewrite modal-dialog modal-window modalviewcontroller model model-binding model-view-controller model-viewer modular-design module moment-timezone momentjs monaco-editor mongodb mongodb-query mongoid mongoose mongoose-middleware mongoose-schema monorepo monospace monthcalendar moodle mootools motorola mouse-cursor mouseevent mousehover mouseleave mousemove mouseover mousewheel mozilla mp3 mp4 mpd mpdf mpmediaquery mqtt ms-office ms-word msal msal-angular msal.js msbuild msgpack mui5 muipickersutilsprovider multer multer-gridfs-storage multer-s3 multi-level multi-select multi-user multidimensional-array multiline multipart multipartfile multipartform-data multiple-columns multiple-inheritance multiple-instances mutable mvvm mvw mxgraph mysql mysqli namecheap namespaces nan narrowing native native-base native-web-component nativescript nativescript-angular nativescript-plugin nativescript-vue nav nav-pills navbar navigateurl navigation navigation-drawer navigationbar navigationcontroller navigator nebular nedb nest nested nested-json nested-lists nested-loops nested-object nestjs nestjs-config nestjs-swagger netlify netsuite network-efficiency new-operator new-project new-window newsletter next next-auth next-images next-link next.js nextjs-image nexus nexus-prisma nfc nft ng-animate ng-apexcharts ng-bootstrap ng-build ng-class ng-component-outlet ng-container ng-content ng-controller ng-deep ng-dialog ng-file-upload ng-filter ng-flow ng-grid ng-image-compress ng-map ng-messages ng-mocks ng-modal ng-modules ng-multiselect-dropdown ng-options ng-otp-input ng-packagr ng-pattern ng-repeat ng-required ng-select ng-show ng-style ng-submit ng-switch ng-tags-input ng-template ng-upgrade ng-view ng-zorro-antd ng2-bootstrap ng2-charts ng2-redux ng2-smart-table ng2-translate ngb-datepicker ngcordova ngfor nginfinitescroll nginx nginx-cache nginx-config nginx-location nginx-reverse-proxy ngmock ngmodel ngonchanges ngondestroy ngoninit ngresource ngroute ngrx ngrx-component-store ngrx-data ngrx-effects ngrx-entity ngrx-reducers ngrx-router-store ngrx-selectors ngrx-store ngrx-store-4.0 ngtable ngu-carousel ngx-admin ngx-bootstrap ngx-bootstrap-modal ngx-bootstrap-popover ngx-charts ngx-cookie-service ngx-datatable ngx-daterangepicker-material ngx-drag-drop ngx-extended-pdf-viewer ngx-formly ngx-leaflet ngx-mask ngx-monaco-editor ngx-mydatepicker ngx-pagination ngx-paypal ngx-quill ngx-restangular ngx-socket-io ngx-spinner ngx-swiper-wrapper ngx-toastr ngx-translate ngxs nightwatch.js nl2br nlp noborder node-commander node-config node-fetch node-gyp node-modules node-redis node-sass node-sqlite3 node-streams node-webkit node.js node.js-addon nodelist nodemailer nodemon nodes noise nomachine-nx nominatim normalize-css noscript nosql notepad++ notifications nouislider npm npm-build npm-install npm-link npm-package npm-publish npm-run npm-scripts npm-start npm-update npm-version npx nrwl nrwl-nx nuget null null-check nullable number-formatting numbers nuxt.js nuxt3 nuxtjs3 nvd3.js nvda nvm nx-devkit nx-workspace nx.dev nyc oak oauth oauth-2.0 obfuscation object object-destructuring object-literal objective-c observable observers ocelot odata odoo odoo-13 odoo-15 oembed office-app office-js office-scripts office365 offline offline-caching offset oidc-client okhttp okta on-screen-keyboard onbeforeunload onblur onchange onclick onclicklistener one-trust onedrive onerror onesignal onfocus onload onmousedown onmouseover onsen-ui onsubmit oop opacity opayo open-telemetry openapi openapi-generator opencart opencart2.3 opencv openid-connect openlayers openlayers-5 openlayers-6 openstreetmap openvidu openweathermap opera operating-system opine optgroup optimization option option-type optional optional-chaining optional-parameters options oracle-apex org-mode orientation-changes orm outdir outline outlook outlook-2010 outlook-2016 output overflow overlap overlapping overlay overloading overriding owasp owl-carousel owl-carousel-2 owl-date-time p-dropdown p-table p5.js pack package package-info package-managers package.json pact padding page-break page-break-before page-layout page-load-time page-refresh pageload pagespeed pagination paginator paging paint palantir-foundry palindrome pandas pandas-styles pandoc pane pannellum panning panzoom papaparse paragraph parallel-processing parameter-passing parameters parcel parceljs parent parent-child parse-platform parseint parsel parsing partial partial-classes partials particles.js passport-azure-ad passport-local passport.js password-protection passwords patch patch-package patchvalue path pattern-matching payment-gateway paypal pdf pdf-generation pdf-viewer pdf.js pdfjs-dist pdfmake peer-dependencies peerjs penetration-testing percentage performance perl permalinks permissions permutation phantom-types phantomjs phaser phaser-framework phoenix-framework phone-call phonegap phonegap-build phonegap-plugins photo photography php phpmailer phppresentation phpstorm physics-engine picasa pick picklist picture-element picturefill pie-chart pikaday pinchzoom pinia pipe pipeline pipes-filters pixel pixi.js pkce placeholder play-billing-library playframework playframework-2.0 playwright playwright-test plesk plot plotly plotly-dash plotly-python plotly.js plugins pm2 png pnp-js pnpm pointer-events pointers pokeapi polling polyfills polyglot-markup polygon polymer polymorphism popover populate popup popupwindow portfolio position positional-operator positioning post postcss postcss-cli poster postgis postgresql postman pouchdb power-automate power-automate-desktop powerbi powerbi-embedded powerpoint powershell powershell-core pre pre-commit-hook precompile predicate preflight preg-replace preload preloader preloading preprocessor prerender prestashop-1.7 prettier pretty-print preventdefault preview primefaces primeflex primeng primeng-calendar primeng-datatable primeng-dialog primeng-dropdowns primeng-menu primeng-table primeng-tree primeng-turbotable primevue printing printing-web-page printthis prisma prisma-graphql prisma2 prismic.io privacy private private-constructor processing product production production-environment profiler progress progress-bar progressive-enhancement progressive-web-apps proj project projection promise properties property-binding proportions proto protocol-buffers protocol-relative prototype prototype-chain prototypejs protractor provider proxy pseudo-class pseudo-element public publish publishing pug pulumi puppeteer pure-css pure-function push push-notification put putimagedata pwa pygments pyodide pyqt5 pyscript pyscripter python python-2.7 python-3.x python-requests python-requests-html python-sphinx pythonanywhere q qr-code qt qtextedit qtwebkit quarkus quarkus-rest-client quasar quasar-framework query-builder query-optimization query-parameters queryparam queryselector quill quotes r r-markdown race-condition rack rackspace radial-gradients radio radio-button radio-group radzen ramda.js random range rating razor razor-pages razorpay react-18 react-admin react-animated react-bootstrap react-bootstrap-nav react-chartjs react-chartjs-2 react-class-based-component react-component react-context react-create-app react-css-modules react-custom-hooks react-data-table-component react-datepicker react-dnd react-dom react-dom-server react-dropdown-tree-select react-dropzone react-error-boundary react-fiber react-forms react-forwardref react-functional-component react-google-charts react-google-recaptcha react-hoc react-hook-form react-hooks react-hooks-testing-library react-i18next react-infinite-scroll-component react-jsx react-konva react-leaflet react-leaflet-v3 react-map-gl react-material react-mui react-native react-native-android react-native-drawer react-native-firebase react-native-flatlist react-native-gesture-handler react-native-navigation react-native-reanimated-v2 react-native-sqlite-storage react-native-stylesheet react-native-testing-library react-native-textinput react-navigation react-navigation-bottom-tab react-navigation-drawer react-navigation-v6 react-otp-input react-pdf react-player react-props react-proptypes react-query react-redux react-router react-router-dom react-scripts react-select react-slick react-spring react-state react-state-management react-testing-library react-three-drei react-tooltip react-transition-group react-tsx react-typescript react-usecallback react-usememo reactive reactive-forms reactive-programming reactivex reactjs reactstrap readfile readonly reason recaptcha recaptcha-v3 recharts recoiljs record recursion recursive-datastructures redaction redirect redis reduce reducers redux redux-devtools redux-logger redux-observable redux-persist redux-reducers redux-saga redux-thunk redux-toolkit ref refactoring reference referrals reflect-metadata reflection reflow refresh refresh-token regex regexp-replace region relationship relative-url reload remix-auth-socials remix-run remix.run remove-if removing-whitespace rename render renderer rendering renovate reorderlist repeat replace replaysubject reporting-services request request-headers require required requiredfieldvalidator requirejs rescript reselect reserved-words reset reset-password resizable resize resolve response response-headers responsive responsive-design responsive-design-view responsive-images responsiveness rest rest-parameters restangular restapi restful-authentication restrict restructuredtext retina-display return return-type return-value reusability reverse reverse-engineering rgba rgl rich-text-editor richtext right-to-left riot.js robotframework roboto role-based roles rollup rollupjs roslyn rotatetransform rotation rounded-corners route-provider routeparams router router-outlet routerlink routerlinkactive routes routing row row-height rows rss rstudio rtcpeerconnection rtk-query rtos rtsp ruby ruby-characters ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-5 rules runtime runtime-error rust rvest rx-angular rxjs rxjs-filter rxjs-marbles rxjs-observables rxjs-pipeable-operators rxjs-subscriptions rxjs5 rxjs6 rxjs7 safari safe-navigation-operator samsung-galaxy samsung-smart-tv sandbox sanitization sanitizer sap-commerce-cloud sap-fiori sapui5 sass sass-loader sass-maps saucelabs savefiledialog scale scaling scheduled-tasks scheduler schema scope scoping scrapy screen screen-capture screen-orientation screen-readers screen-scraping script script-src script-tag scripting scroll scroll-paging scrollbar scroller scrollmagic scrollspy scrolltop scrolltrigger scrollview scss-functions scss-mixins sdk search search-engine search-form searchbar sections security sed seek select select-options selected selectedindex selectinput selection selection-api selectionmodel selectize.js selector selectors-api selenium selenium-chromedriver selenium-ide selenium-iedriver selenium-webdriver self-destruction semantic-html semantic-markup semantic-ui semantic-ui-react semantics sencha-touch-2 send sendbeacon sendgrid sendmessage seo sequelize-cli sequelize-typescript sequelize.js sequential serve server server-sent-events server-side-includes server-side-rendering serverless serverless-architecture serverless-framework service service-worker servicenow servlets session session-cookies session-storage session-timeout set setattribute setinterval setstate setter settimeout settings sfu sgml sh sha256 shadow shadow-dom shaka shallow-copy shape shape-outside shapes share share-open-graph shared-directory shared-libraries shared-module sharepoint sharepoint-2013 sharepoint-online sharp sheetjs shell shiny shop shopify shopping-cart shopware6 shortcut shoutcast show show-hide showmodaldialog shuffle side-effects sidebar sidenav sigma.js sign sign-in-with-apple signalr signalr-hub signalr.client signature sim-card simplemodal sinatra single-page-application single-sign-on singleton singularitygs sinon sip size sizing skeleton-css-boilerplate skiasharp slice slick slick.js slickgrid slide slider slideshow sliding-tile-puzzle slim slim-4 slim-lang smart-table smartcontracts smil smooth-scrolling smtp smtpjs snackbar snap snipcart soap social-authentication social-media socialsharing-plugin socket.io sockets sockjs soft-hyphen solana solana-web3js solaris solid-js sonarlint sonarqube sorting soundcloud source-code-protection source-maps spa-template space spaces spacing spartacus-storefront speaker special-characters specifications spectator speech spfx spfx-extension spinner splash-screen splidejs split splitter spotify spotlight spread spread-syntax spreadjs spring spring-batch spring-boot spring-cloud spring-cloud-gateway spring-data spring-mvc spring-restcontroller spring-security spring-security-oauth2 spring-security-rest spring-security-saml2 spring-webflux spy spyon sql sql-like sql-server sqlalchemy sqlite squarespace squirrel.windows src srcset ssh2-sftp ssl ssl-certificate ssrs-2012 stack stack-navigator stackblitz standards startup state state-machine static static-files static-typing statistics stenciljs step stepper sticky sticky-footer stomp stoppropagation stopwatch storage store storefront storybook str-replace strapi stream streaming streaming-video streamlit strict strictnullchecks strikethrough string string-concatenation string-formatting string-interpolation string-literals stringify strip stripe-payments stripes strong-typing struct structured-clone struts-1 struts2 stryker style-dictionary styled-components styled-system stylelint styles stylesheet styling stylus subdirectory subject subject-observer sublime-text-plugin sublimetext2 sublimetext3 submit subscribe subscript subscription substring subtitle sudo sudoku suitescript sum summary-tag summernote supabase superscript supertest susy-compass svelte svelte-3 svelte-component svelte-store sveltekit svg svg-animate svg-defs svg-filters svg-map svg-morphing svg.js swagger swagger-ui sweetalert sweetalert2 swift swing swipe swipe.js swiper swiper.js swiperjs switch-statement switchmap swr symbols symfony symfony5 syncfusion syntax syntax-error syntax-highlighting systemjs t4 tabindex tablecelleditor tableheader tablet tabs tags tailwind-3 tailwind-css tailwind-in-js tailwind-ui tampermonkey task tauri tcp teamcity tedious telegram telegram-bot telerik telerik-mvc template-literals templatebinding templates tempus-dominus-datetimepicker tensorflow tensorflow.js terminal terminology ternary-operator testbed testcafe testing testing-library text text-align text-alignment text-cursor text-decorations text-editor text-size text-to-speech textarea textbox textfield textnode textout textselection textview themes theming thermal-printer thickness thingsboard this this-keyword three.js throttling throw thumbnails thymeleaf tic-tac-toe tiktok time time-series time-tracking timeago timeout timepicker timer timestamp timezone timezone-offset tinymce tinymce-4 tinymce-5 tinymce-plugins tippyjs title tkinter toast toast-ui-image-editor toastr toggle togglebutton toggleswitch token tomcat tomcat9 tone.js tooltip top-level-await tornado tostring touch touch-event touchmove traffic trail trailing-whitespace transform transition transitions translate translation transloco transparency transpiler transpose tree tree-shaking tree-traversal treemap treesitter treetableview treeview tri-state-logic triggers trim trpc.io truetype truncate truncation try-catch ts-check ts-jest ts-loader ts-node ts-node-dev tsc tsconfig tsconfig-paths tsd tslint tsx tsyringe tuples turborepo twa tween twig twilio twilio-api twilio-conversations twilio-video twitter twitter-bootstrap twitter-bootstrap-2 twitter-bootstrap-3 twitter-bootstrap-4 two-way-binding txt type-alias type-assertion type-conversion type-declaration type-definition type-erasure type-hinting type-inference type-level-computation type-narrowing type-only-import-export type-parameter type-safety typeahead typeahead.js typechecking typeerror typeface.js typeform typegoose typegraphql typeguards typemoq typeof typeorm types typescript typescript-class typescript-compiler-api typescript-declarations typescript-decorator typescript-eslint typescript-eslintparser typescript-generics typescript-mixins typescript-module-resolution typescript-namespace typescript-never typescript-types typescript-typings typescript-utility typescript1.5 typescript1.8 typescript2.0 typescript2.2 typescript2.4 typescript2.9 typescript3.0 typescript4.0 typetraits typing typo3 typo3-10.x typography typoscript ubuntu ubuntu-20.04 udp uglifyjs ui-automation ui-calendar ui-grid ui-scroll ui-select ui-testing ui.bootstrap uiactionsheet uialertcontroller uicomponents uikit uint uiscrollview uiwebview ultrawingrid umd uncaught-exception undefined underline underscore.js undertow unexpected-token unhandled-promise-rejection unicode unicode-string union union-types unique-values unit-testing universal unlink unsafe-inline unsubscribe unused-variables updates upgrade upload uploader uppercase uri uri.js url url-parameters url-parsing url-redirection url-rewriting url-routing urllib2 urql use-case use-context use-effect use-reducer use-ref use-state user-agent user-controls user-event user-experience user-input user-interface user-permissions user-roles userscripts utc utf utf-8 uuid uwp v-autocomplete v-for v-slot vaadin vaadin-flow vaadin14 validation validationerror valuechangelistener vanilla-extract var variable-assignment variable-fonts variables variadic-tuple-types variance vb.net vba vbscript vector-graphics vega vega-lite vendor-prefix vercel version versioning vertical-alignment vertical-scrolling vetur video video-codecs video-streaming video.js videogular videogular2 view viewchild viewport viewport-units vim vimeo virtual-dom virtualscroll vis.js vis.js-network visibility visible visual-studio visual-studio-2012 visual-studio-2013 visual-studio-2015 visual-studio-2017 visual-studio-2019 visual-studio-2022 visual-studio-code visual-studio-cordova visual-testing visual-web-developer vite vitepress vitest vlc vmware vmware-clarity voiceover void vpc vscode-debugger vscode-extensions vscode-jsconfig vscode-settings vsto vue-class-components vue-cli vue-cli-3 vue-component vue-composition-api vue-data vue-i18n vue-mixin vue-property-decorator vue-props vue-router vue-router4 vue-script-setup vue-test-utils vue-transitions vue.js vuejs-transition vuejs2 vuejs3 vuelidate vuepress vuetify.js vuetifyjs3 vueuse vuex vuex4 w3.css w3c w3c-validation wai-aria wait walkthrough wallet-connect war was watch waveform wcag wcag2.0 wcag2.1 wcf weasyprint weather-api web web-accessibility web-applications web-audio-api web-chat web-component web-config web-crawler web-deployment web-deployment-project web-development-server web-frameworks web-frontend web-hosting web-inspector web-notifications web-performance web-scraping web-scraping-language web-services web-site-project web-sql web-standards web-storage web-technologies web-vitals web-worker web.xml web3 web3js webapi webapi2 webauthn webbrowser-control webcam webclient webcodecs webdatarocks webdeploy-3.5 webdriver webfonts webforms webgl webgpu webhooks webix webkit webkit-animation weblogic webmethod webpack webpack-2 webpack-4 webpack-5 webpack-bundle-analyzer webpack-dev-server webpack-file-loader webpack-hmr webpack-html-loader webpack-module-federation webpack-style-loader webpage-screenshot webrtc websecurity webserver websocket webstorm webusb webview webview2 webvtt week-number wget wgsl whatsapp while-loop white-labelling whitespace widget width window window-resize window.location windows windows-10 windows-7 windows-8.1 windows-authentication windows-server-2008 windows-subsystem-for-linux winforms winston winui-3 wix wkhtmltopdf wkwebview wkwebviewconfiguration woff woff2 wonderpush woocommerce woocommerce-theming woothemes word-break word-cloud word-spacing word-wrap wordpress wordpress-gutenberg wordpress-rest-api wordpress-theming worker worker-loader workflow workspace wpf wrapper ws wsh wsl-2 wso2 wso2-identity-server wso2-micro-integrator wtforms wysiwyg x-editable x-xsrf-token xaml xampp xaringan xcode xcode12 xcodebuild xhtml xhtml2pdf xliff xlsx xml xml-namespaces xml-parsing xml.etree xmlhttprequest xng-breadcrumb xor xpath xslt xss xstate xtermjs yaml yarn-v2 yarn-workspaces yarnpkg yarnpkg-v2 yaxis yeoman yeoman-generator-angular yii2 yii2-advanced-app youtube youtube-api youtube-data-api youtube-iframe-api yui yup z-index zend-form zend-framework zend-framework2 zendesk zigzag zingchart zip zipalign zipkin zod zoho zone zone.js zonejs zooming zsh zurb-foundation zustand

Copyright © angularfix