{"id":37904386,"url":"https://github.com/loadingio/ldloader","last_synced_at":"2026-01-16T17:08:21.854Z","repository":{"id":35187305,"uuid":"168358778","full_name":"loadingio/ldloader","owner":"loadingio","description":"handy library to manipulate loader's state.","archived":false,"fork":false,"pushed_at":"2024-02-03T06:32:01.000Z","size":1526,"stargazers_count":21,"open_issues_count":3,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-18T21:34:26.923Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loadingio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-30T14:43:51.000Z","updated_at":"2024-05-12T13:15:35.000Z","dependencies_parsed_at":"2024-06-18T21:15:40.675Z","dependency_job_id":"c3eec694-3c1f-47ab-9c01-bfcb1c3a8ee7","html_url":"https://github.com/loadingio/ldloader","commit_stats":{"total_commits":57,"total_committers":1,"mean_commits":57.0,"dds":0.0,"last_synced_commit":"58f99223cd85afe9fd93585581394de3c96ad9c4"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/loadingio/ldloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loadingio","download_url":"https://codeload.github.com/loadingio/ldloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldloader/sbom","scorecard":{"id":596466,"data":{"date":"2022-08-15","repo":{"name":"github.com/loadingio/ldloader","commit":"43f4e4fec40d7fcef5afd03710e7eb36192522dc"},"scorecard":{"version":"v4.5.0-26-g10b6052","commit":"10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93"},"score":4.4,"checks":[{"name":"Code-Review","score":0,"reason":"no reviews found","details":["Warn: no reviews found for commit: 43f4e4fec40d7fcef5afd03710e7eb36192522dc","Warn: no reviews found for commit: afb338dc198288c256947de9bce9e307469df7a6","Warn: no reviews found for commit: 3b2ee522b4ce2a168e1538cd4dc0c48a985d6f75","Warn: no reviews found for commit: 8eefca63a1a2bbd0d3bc830bb2670ac626f69cb6","Warn: no reviews found for commit: df463b99df061e3bcf847643e5a80fb9b6786b77","Warn: no reviews found for commit: 7d1b3641d4f34e4725f249b71fa881af4e700796","Warn: no reviews found for commit: d1b6565feed0ffe50870a1b9e74331ab47e595d1","Warn: no reviews found for commit: f7536719798e210a642a279783d92e303347e6bc","Warn: no reviews found for commit: ff8a7d624b61d59d6c43d71e6fe0c6a4af034497","Warn: no reviews found for commit: 7c619df7c823369a53e80f6271f57e13f8817731","Warn: no reviews found for commit: 8d8c7144acd769d15532224cc940dbae20ff722c","Warn: no reviews found for commit: 7c1fcdb02d9dcc28084e795129728d11ca1053b1","Warn: no reviews found for commit: 2368930007df8a8289c375a07ab2b887bd260de3","Warn: no reviews found for commit: 5e6205e056fd1278a1b34153c4966cc126fcbbfa","Warn: no reviews found for commit: c422cf1ef09c84290b8aee91e5eec7877388e5e2","Warn: no reviews found for commit: 61d8ece94dffc528c75f8e109a61de81139fab4e","Warn: no reviews found for commit: 3c2ab6ca0067395971a5796554706b708c3a4438","Warn: no reviews found for commit: eb9d0e6a253dea2856be0c724a38c1196d6711ab","Warn: no reviews found for commit: 9953b45fe216b697081b50efefb5163e0cc5511f","Warn: no reviews found for commit: e0790fad4ded755271313cde5b7b6d86c1007f3c","Warn: no reviews found for commit: 6dfea7a68e09371a04c2645b08c8d766f1b5947d","Warn: no reviews found for commit: 0a57809847446b61ff6c8461f79311bb36991380","Warn: no reviews found for commit: f9cddaf36caa1421fe6fa2eba10f1989e09b0b44","Warn: no reviews found for commit: bae72fa3b6854ed9da18874fca4026608232c8d8","Warn: no reviews found for commit: d96bbc29cc49cf1d1728b85e7c47e17e39a8dab2","Warn: no reviews found for commit: a54515221eefa1ef2d2a637ccd0679a6086bfa86","Warn: no reviews found for commit: c69cf929d13dab4b1d2f6ecd6ebd9acab3cd0fd8","Warn: no reviews found for commit: cb582d36769823734a0afbf63fe7a08d1af640f4","Warn: no reviews found for commit: 78b0dd717bed59cb5644232279ca4fdc3b0f4fc0","Warn: no reviews found for commit: 478661a712a5557c772ed715aeb3d41a53e9840e"],"documentation":{"short":"Determines if the project requires code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) out of 30 and 0 issue activity out of 0 found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no badge detected","details":null,"documentation":{"short":"Determines if the project has a CII Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"no vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#vulnerabilities"}},{"name":"Token-Permissions","score":10,"reason":"tokens are read-only in GitHub workflows","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#dangerous-workflow"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: : LICENSE:1"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info: GitHub-owned GitHubActions are pinned","Info: Third-party GitHubActions are pinned","Info: Dockerfile dependencies are pinned","Info: no insecure (not pinned by hash) dependency downloads found in Dockerfiles","Info: no insecure (not pinned by hash) dependency downloads found in shell scripts"],"documentation":{"short":"Determines if the project has declared and pinned its dependencies.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":-1,"reason":"no published package detected","details":["Warn: no GitHub publishing workflow detected"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":null,"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":0,"reason":"0 out of 5 artifacts are signed or have provenance","details":["Warn: release artifact v3.0.1 does not have provenance: https://api.github.com/repos/loadingio/ldloader/releases/65810339","Warn: release artifact v3.0.1 not signed: https://api.github.com/repos/loadingio/ldloader/releases/65810339","Warn: release artifact v3.0.0 does not have provenance: https://api.github.com/repos/loadingio/ldloader/releases/57470799","Warn: release artifact v3.0.0 not signed: https://api.github.com/repos/loadingio/ldloader/releases/57470799","Warn: release artifact v2.1.0 does not have provenance: https://api.github.com/repos/loadingio/ldloader/releases/52355293","Warn: release artifact v2.1.0 not signed: https://api.github.com/repos/loadingio/ldloader/releases/52355293","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/loadingio/ldloader/releases/50383410","Warn: release artifact v2.0.1 not signed: https://api.github.com/repos/loadingio/ldloader/releases/50383410","Warn: release artifact v2.0.0 does not have provenance: https://api.github.com/repos/loadingio/ldloader/releases/50383331","Warn: release artifact v2.0.0 not signed: https://api.github.com/repos/loadingio/ldloader/releases/50383331"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#branch-protection"}},{"name":"Dependency-Update-Tool","score":0,"reason":"no update tool detected","details":["Warn: dependabot config file not detected in source location.\n\t\t\tWe recommend setting this configuration in code so it can be easily verified by others.","Warn: renovatebot config file not detected in source location.\n\t\t\tWe recommend setting this configuration in code so it can be easily verified by others."],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#dependency-update-tool"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":null,"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93/docs/checks.md#fuzzing"}}]},"last_synced_at":"2025-08-20T23:15:39.477Z","repository_id":35187305,"created_at":"2025-08-20T23:15:39.477Z","updated_at":"2025-08-20T23:15:39.477Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T17:08:21.303Z","updated_at":"2026-01-16T17:08:21.848Z","avatar_url":"https://github.com/loadingio.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ldloader\n\nhandy library to manipulate loader's state. for more information, please check [ldloader documentation](https://loading.io/lib/loader/).\n\n\n## Usage\n\ncreate an object for each loader you want to use:\n\n    var ldld = new ldloader(config);\n\n\nconfig includes following options:\n\n * root: element for your loader. default null\n   - could be css selector, element, or array of css selectors/elements.\n   - ldloader will create one automatically if omitted, and append it under container.\n   - if root is an array, ldloader instance will work on every element in the array.\n * container: where root should be put in.\n   - will be root.parentNode if omitted.\n   - will be document.body if both root and container is omitted.\n   - note: container is also an array since root by design accept array of value.\n * class-name: additional class over root. default '' and is optional.\n   - you can also add classes directly onto the root element you provided.\n * active-class: class added to root when loader is toggled on. default 'running'.\n   - useful when working with different css libraries.\n * inactive-class: class added to root when loader is toggled off. default is null.\n * autoZ: update root's z-index automatically. default false.\n * baseZ: the minimal z-index of root. default 4000.\n   - with autoZ, ldloader keeps track of all loaders' z-index and always use larger z-index for newly toggled loaders.\n     baseZ is then used as a base value for all autoZ loaders.\n   - for using scoped zmgr, set `baseZ` to undefined to instruct zmgr to use scoped z value.\n * ctrl: custom animation control unit. should at least contains a member function \"step(t)\".\n   - step(t): will be invoked repeatedly by requestAnimationFrame during loading period. context (aka this) will be root.\n * atomic: default true. when atomic is false, you will need N ldloader.off() call to dismiss ldloader if there was already N ldloader.on() call.\n * toggler(v): optional toggler triggered when `on/off` status changed. useful for chaining toggling events.\n   - `v`: on/off status.\n\nMethods:\n\n * on(delay): toggle loader on. return promise. (if delay is provided, wait delay(ms) before on )\n * off(delay): toggle loader off. (if delay is provided, wait delay(ms) before off )\n * cancel(v): cancel delayed action. force state to `v` if v is defined.\n * is-on: return true if loader is running, else false.\n * toggle(state,delay): toggle loader based on state(true/false). toggle according to current state if state is omitted. return promise ( delay behavior according to whether it's on or off )\n * on(event, cb): listen to events, including: ( TBD? conflict with on(delay) )\n   - toggle.on\n   - toggle.off\n\n\n## Class Method\n\n * setZmgr(zmgr): set a shared z-index manager. useful to manager widget z-index globally.\n   this manager should provide following methods:\n   - add(baseVal, size): return actual added value.\n     - baseVal: hint value for the z-index we'd like to use\n     - size: hint size about how large the object we added is\n   - remove(val): remove val ( returned by add ) from this manager.\n\n\n## Styling and Structure\n\nThere is no constraint about how ldloader's DOM structure should be. Basically it contains an element for loader, and the element's parent in which the loader is shown. You control all the animation and effects based on `active-class` toggled by ldloader.\n\nFor convenience, ldloader is shipped with some builtin css for simple usage:\n\n * .ldld.bare - rotating double ring, placed at where it should be.\n * .ldld.default - rotating double ring centered in it's container. container should have style position: relatve/absolute/fixed.\n * .ldld.full - dimed full screen blocking loader, with rotating double ring in the middle.\n * size modifier for .ldld.bare  and .ldld.default:\n   * .sm - 16 x 16\n   * .em-1 - 1em x 1em ( useful in button )\n   * .em-2 - 2em x 2em\n * color modifier:\n   * without color modifier, it will `currentColor` by default.\n   * .ldld.light - rgba(255,255,255,.5)\n   * .ldld.dark - rgba(0,0,0,.5)\n\nYou can also use ldloader along with `loading-btn` and `loading.css`:\n\n    \u003cdiv class=\"btn ld-ext-right\"\u003e\n      Load\n      \u003cdiv class=\"ld ld-ball ld-bounce\"\u003e\u003c/div\u003e\n    \u003c/div\u003e\n    \u003cscript\u003e\n      var ldld = new ldloader({root: \".ld-ext-right\"});\n      ldld.on(); ldld.off(1000);\n    \u003c/script\u003e\n \n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floadingio%2Fldloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floadingio%2Fldloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floadingio%2Fldloader/lists"}