{"id":37904836,"url":"https://github.com/loadingio/ldcover","last_synced_at":"2026-01-16T17:09:16.398Z","repository":{"id":35187396,"uuid":"168280486","full_name":"loadingio/ldcover","owner":"loadingio","description":"popup / dialog library","archived":false,"fork":false,"pushed_at":"2025-05-24T13:26:26.000Z","size":2030,"stargazers_count":14,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-26T01:27:35.492Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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,"zenodo":null}},"created_at":"2019-01-30T04:41:43.000Z","updated_at":"2025-05-24T13:25:48.000Z","dependencies_parsed_at":"2025-04-28T13:40:00.931Z","dependency_job_id":"ab8c7ff9-f6de-47d4-a212-3e1b1097ac5e","html_url":"https://github.com/loadingio/ldcover","commit_stats":{"total_commits":97,"total_committers":1,"mean_commits":97.0,"dds":0.0,"last_synced_commit":"b2ff3d667d89aa143aecd48d9b3a8be0643c49d7"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/loadingio/ldcover","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldcover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldcover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldcover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldcover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loadingio","download_url":"https://codeload.github.com/loadingio/ldcover/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loadingio%2Fldcover/sbom","scorecard":{"id":596463,"data":{"date":"2022-08-15","repo":{"name":"github.com/loadingio/ldcover","commit":"e3e95003971f4fb3988787990cadb86ef5ff8d45"},"scorecard":{"version":"v4.5.0-26-g10b6052","commit":"10b6052acfb4f0b8136bc4876cb6f5b6f26bfe93"},"score":4.7,"checks":[{"name":"Code-Review","score":0,"reason":"no reviews found","details":["Warn: no reviews found for commit: e3e95003971f4fb3988787990cadb86ef5ff8d45","Warn: no reviews found for commit: 4fcbd08cdbc7addd174f0b293431ebbc9a15d7a0","Warn: no reviews found for commit: fd21073fd90b242065f2bd3db968dd6164230859","Warn: no reviews found for commit: d781f339c8d6766887bcbc5f66e4e41b88471e65","Warn: no reviews found for commit: 10b36ee2a0444925085a1581d3c12847f966cff2","Warn: no reviews found for commit: 6b01afdc591871cf34078df7797c311bbf3498af","Warn: no reviews found for commit: 721c6e7d140168cdc8d9b291e2b74156afd82ae6","Warn: no reviews found for commit: c7d5dced2d92a652791d95bfb338eea82f340d1e","Warn: no reviews found for commit: 419e796f0a6296ca133aedd3f4ff90d22e5b05c6","Warn: no reviews found for commit: 185618b88717811333ef577207ef39b46da0da62","Warn: no reviews found for commit: a17e6a70cad5f7be86f1508d43b09794c4c26dbf","Warn: no reviews found for commit: 6e1e5c8947e119a2399c4c377fa4738b59396222","Warn: no reviews found for commit: da152466316488c350d91e860b4a396e8ec457e9","Warn: no reviews found for commit: 72bd6aac5c2aa57768ecec5d3950e710c23ca012","Warn: no reviews found for commit: a5c606364ca5ede074854cf96c53d71802f5da0d","Warn: no reviews found for commit: f89135a9762964180c08fc0295c0daaf454811e4","Warn: no reviews found for commit: 23d3c752c25a8800105d2d3a36c02315599ca388","Warn: no reviews found for commit: 95f41bb082005100f7263b65f8f5ea8f4622090b","Warn: no reviews found for commit: 37e1b795a027cfc348bc8ca5cd8a8df459545c0f","Warn: no reviews found for commit: 2161314b4d8be014e4c4392b41c576f6fe92cd70","Warn: no reviews found for commit: 176a26f00bb20fcb01b62c69342e2aac80e27f94","Warn: no reviews found for commit: 89d4a9066cd6ed0913b9d1bd34829452ff0381f5","Warn: no reviews found for commit: 620b8796fc08d97dff59da761d6fcdc40478d9ff","Warn: no reviews found for commit: 9156b7c58740657ed2274170874a1167452b9cf3","Warn: no reviews found for commit: 3a610ced2321cbe28762a6396fda4fd82dcb4bad","Warn: no reviews found for commit: 067f0058362df8b3a31734c89635d963339eddf8","Warn: no reviews found for commit: 35e64c78625c7ee62ceeda9a7e08cd2f0b3f81bf","Warn: no reviews found for commit: 24840b0eb4d7256fd3c18b029fefa6002bda3a21","Warn: no reviews found for commit: 9246366fcc24f385a4c1e488f78863f606bc5268","Warn: no reviews found for commit: fd869432ce3029594d3b9f6b35ae15d0254d05b2"],"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":"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":"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":"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":"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":"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":"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.2.1 does not have provenance: https://api.github.com/repos/loadingio/ldcover/releases/67209421","Warn: release artifact v3.2.1 not signed: https://api.github.com/repos/loadingio/ldcover/releases/67209421","Warn: release artifact v3.2.0 does not have provenance: https://api.github.com/repos/loadingio/ldcover/releases/67031644","Warn: release artifact v3.2.0 not signed: https://api.github.com/repos/loadingio/ldcover/releases/67031644","Warn: release artifact v3.1.0 does not have provenance: https://api.github.com/repos/loadingio/ldcover/releases/66309496","Warn: release artifact v3.1.0 not signed: https://api.github.com/repos/loadingio/ldcover/releases/66309496","Warn: release artifact v3.0.1 does not have provenance: https://api.github.com/repos/loadingio/ldcover/releases/57454737","Warn: release artifact v3.0.1 not signed: https://api.github.com/repos/loadingio/ldcover/releases/57454737","Warn: release artifact v2.1.2 does not have provenance: https://api.github.com/repos/loadingio/ldcover/releases/57441125","Warn: release artifact v2.1.2 not signed: https://api.github.com/repos/loadingio/ldcover/releases/57441125"],"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":-1,"reason":"internal error: internal error: Client.Search.Code: Search.Code: GET https://api.github.com/search/code?q=github.com+loadingio+ldcover+repo%3Agoogle%2Foss-fuzz+in%3Afile+filename%3Aproject.yaml: 400  []","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:37.421Z","repository_id":35187396,"created_at":"2025-08-20T23:15:37.421Z","updated_at":"2025-08-20T23:15:37.421Z"},"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:09:13.463Z","updated_at":"2026-01-16T17:09:16.392Z","avatar_url":"https://github.com/loadingio.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ldcover\n\nvanilla popup / dialog library.\n\n\n## Usage\n\ninstall with npm:\n\n    npm install ldcover\n\ninclude required files ( `index.js` and `index.css` ), and create a ldcover object:\n\n    var ldcv = new ldcover({ ... });\n\n\n## Constructor Options\n\n - `root`: container.\n   - you can use `template` tag as root for better performance during initialization. The first child in the template will be used as the real root for this ldcover.\n - `type`: additional class to add. default: ''. space seprated.\n - `transform-fix`: true/false. default: false.\n   add a 'shown' class after ldcover is shown, which removes transform from .inner block.\n   useful when content is blurred due to transform, but might lead to glitches when doing transition. use it carefully.\n - `delay`: milliseconds. default 300. should be aligned with transition duration. use to control 'shown' and 'running' classes.\n - `autoZ`: update root's z-index automatically. default true.\n - `baseZ`: the minimal z-index of root. default 3000.\n   - with autoZ, ldcover keeps track of all cover' z-index and always use larger z-index for newly toggled covers.\n     baseZ is then used as a base value for all autoZ covers.\n     however, this may conflict with customized zmgr.\n - `zmgr`: set z-index manager for this cover.\n   - `baseZ` will be used to call zmgr, which set a lower bound of `z-index`.\n     set `baseZ` to 0 for zmgr to correct work with lower values.\n - `animation`: optional space separated class list.\n   - will be added to .inner node when toggling on, and removed when toggling off.\n   - handy for adding customized animation from libraries like transition.css or animate.css.\n - `escape`: should pressing escape key close the dialog. boolean, default true, optional.\n - `lock`: default false. if set to true, only API or data-ldcv-set could close this modal.\n - `resident`: default false. if set to true, DOM for this cover will always attached under document. otherwise false.\n   - not resident node will be attached under `container` or document.body.\n - `inPlace`: default true. if set to false, root will be removed from original parent and re-added under body.\n - `container`: container for non-resident cover. by default parent of DOM or document.body\n   - by default, non-resident cover is inserted to the location we find it. Set `container` to change this behavior.\n     - when `container` is null, `root` is appended at the end of `document.body` when toggled.\n     - otherwise, `root`is appended at the end of `container` when toggled.\n\n\n## Object Methods\n\n - `toggle(state, data)`: toggle on/off ldcover.\n   - `data`: optional parameter, which will be sent in `data` event.\n     - program that manages the content of this cover can use this data to update its content.\n - `get(data)`: toggle on ldcover and return a promise, which will only be resolved when ldcover.set is called.\n   - `data`: see `toggle` above.\n - `set(v, hide=true)`: set value, which resolve promises from get, and hide ldcover if hide = true.\n   - use `data-ldcv-set` on elements to automatically set value when elements are clicked.\n - `cancel(err, hide=true)`: reject promise returned by `get` with given error `err`.\n   - a default `Error` object with `{name: 'lderror', id: 999}` will be used if `err` is omitted.\n   - ldcover is hidden if `hide` = true. true by default.\n   - use `data-ldcv-cancel` on elements to automatically cancel when clicked.\n - `on(event, cb)`: listen to certain event. evnets:\n   - `toggle.on`: when ldcover is toggled on. may fired before shown.\n   - `toggle.off`: when ldcover is toggled off. may fired before hidden.\n   - `toggled.on`: when ldcover is toggled on. fired after shown.\n   - `toggled.off`: when ldcover is toggled off. fired after hidden.\n - `isOn()`: is this modal active ( opened ). return true or false\n - `lock()`: lock this cover. ( can't be dismissed by escaping )\n   - alternatively, you can lock cover by adding `data-lock=\"true\"` attribute to cover root.\n - `root()`: get cover root node.\n - `zmgr(mgr)`: set z-index manager for this cover. return the zmgr used if `mgr` is omitted.\n   - `baseZ` will be used to call zmgr, which set a lower bound of `z-index`.\n     set `baseZ` to 0 for zmgr to correct work with lower values.\n - `append(node)`: insert `node` in the base node of this cover.\n   - useful if this ldcover is created without root.\n - `destroy(opt)`: object destroyer. `opt` is an option object with following fields:\n   - `removeNode`: should ldcover remove DOM of this cover. default false\n     - by default, DOM of this cover will be inserted back in DOM after this ldcover object been destroyed.\n     - to also wipe out the DOM element, set `removeNode` to true.\n\n\n## Class Method\n\n - `zmgr(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   as described above, `baseZ` will be used to call zmgr, which set a lower bound of `z-index`.\n   set `baseZ` to 0 in ldcover instance so zmgr can work correclty with lower values.\n\n\n## Spec. and structure\n\nA simple ldcover popup are built with following html structure:\n\n * .ldcv          - topmost, fullscreen container\n   * .base        - control the overall size and position for this box ( could be omit )\n     * .inner     - dialog container. constraint size. transition animation goes here\n\n\none can decorate ldcover widgets by adding classes over the outmost element. following classes are defined by default:\n\n * .ldcv.bare:\n   - no covered bk.\n   - custom position for .ldcv \u003e .base\n   - overflow: visible for .ldcv \u003e .base \u003e .inner (why?)\n * .ldcv.lg, .ldcv.md\n   - different size of panel. instead of using this, you could also set size directly on .base element.\n * .ldcv.full - fullscreen modal.\n * .ldcv.full-sm, .ldcv.full-md, .ldcv.full-lg - conditional fullscreen modal. break point:\n   - `sm`: \u003c 576px\n   - `md`: \u003c 768px\n   - `lg`: \u003c 960px\n * .ldcv.light - light overlay bk\n * .ldcv.mini - non-blocking, float style dialog with following position available:\n   - .ldcv.mini.left\n   - .ldcv.mini.right\n   - .ldcv.mini.top\n   - .ldcv.mini.bottom\n * .ldcv.inline - inline cover. Won't affect local layout\n\n * centering\n   - by default .base is centered with vertical-align + ::after pseudo class. instead you can choose different methods, described below:\n   - .ldcv.margin-centered\n     - center with margin: auto + left/right/top/bottom: 0 and position: absolute. need width/height to be provided.\n   - .ldcv.transform-centered\n     - with transform-center, .base is centered with left: 50%, top: 50% + transform: translate(-50%,-50%), which don't need width/height to be provided anymore.\n     - NOTE: this might causes content to be blur, so use it carefully.\n\n * .ldcv.scroll:\n   - add `scroll` class on the ldcv node when you expect the modal content to longer than a screen's height. It makes the modal scrollable by users.\n\n * .ldcv.autogap:\n   - add `autogap` class on the ldcv node to automatically adjust cover padding and margin along with responsive scenario, with two additional classes:\n   - `.outer-gap`: only apply margin style. Used alone without `autogap`\n   - `.autogap.nested-gap`: apply padding style in nested div. Used along with `autogap`\n\n * alternative transition\n   - you can use alternative transition by adding additional class in .ldcv, including following classes:\n     - ldcv-scale\n     - ldcv-zoom\n     - ldcv-vortex\n     - ldcv-slide-rtl\n     - ldcv-slide-ltr\n     - ldcv-slide-ttb\n     - ldcv-slide-btt\n     - ldcv-flip-h-left\n     - ldcv-flip-h-right\n     - ldcv-flip-v-top\n     - ldcv-flip-v-bottom\n     - ldcv-fade\n   - example of setting a alternative transition:\n\n\n    \u003cdiv class=\"ldcv ldcv-scale\"\u003e ... \u003c/div\u003e\n\n\n\n## Action\n\nSimple popup could be configured with automatically set invocation to resolve promises waited by get. use `data-ldcv-set` attribute on elements to indicate what values to be passed into set:\n\n    \u003cdiv class=\"ldcv\"\u003e\n      \u003cbutton data-ldcv-set=\"1\"\u003e OK \u003c/button\u003e\n      \u003cbutton data-ldcv-set=\"0\"\u003e Cancel \u003c/button\u003e\n    \u003c/div\u003e\n\nuse get function to wait for the return value:\n\n    ldcv.get!then -\u003e if it == \"1\" =\u003e \"OK\" else \"Cancel\"\n\n\n## Todo\n\n - implement all this nice transitional effect:\n   - https://tympanus.net/Development/ModalWindowEffects/\n   - https://tympanus.net/Development/PageTransitions/\n\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floadingio%2Fldcover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floadingio%2Fldcover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floadingio%2Fldcover/lists"}