{"_id":"@alexandru.cozmanca/pick-and-order","_rev":"4-c43c545d27bac2b3f40e9638c07e6812","name":"@alexandru.cozmanca/pick-and-order","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.1":{"name":"@alexandru.cozmanca/pick-and-order","version":"1.0.1","keywords":["angular","component","dragdrop","pick-and-order"],"author":{"name":"Alexandru Cozmanca"},"license":"MIT","_id":"@alexandru.cozmanca/pick-and-order@1.0.1","maintainers":[{"name":"alexandru.cozmanca","email":"alexandru.cozmanca@gmail.com"}],"homepage":"https://github.com/alexandrucozmanca/pick-and-order#readme","bugs":{"url":"https://github.com/alexandrucozmanca/pick-and-order/issues"},"dist":{"shasum":"c3bc5f034e98d642a6e6b96d13702f45961ccb91","tarball":"https://registry.npmjs.org/@alexandru.cozmanca/pick-and-order/-/pick-and-order-1.0.1.tgz","fileCount":5,"integrity":"sha512-NO0aiD3A1KfDScoFZWpDf0dTm9m6bZ74Na8pznKkPOKkF5chIRS16imN2r1ayZMfrta4ZV6bV5h1xGyOJeT3lQ==","signatures":[{"sig":"MEYCIQC+Ygzua67ubUkxlAC5ip/ptYanekartewN1r7PvPC+vQIhAIE+zlfoEfWrX1Ws4yFM56GLljdQsV8ie+o1zaCG4VLj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32637},"module":"fesm2022/alexandru.cozmanca-pick-and-order.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/alexandru.cozmanca-pick-and-order.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"165947ad4477d3b4a6159e201ff943738f0792a3","typings":"index.d.ts","_npmUser":{"name":"alexandru.cozmanca","email":"alexandru.cozmanca@gmail.com"},"repository":{"url":"git+https://github.com/alexandrucozmanca/pick-and-order.git","type":"git"},"_npmVersion":"10.9.0","description":"Generic Angular pick and order component with drag-and-drop","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":">=14.0.0","@angular/core":">=14.0.0","@angular/forms":">=14.0.0","@angular/common":">=14.0.0","@ngx-translate/core":">=14.0.0","@ngx-translate/http-loader":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pick-and-order_1.0.1_1758195283482_0.5861178420634021","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alexandru.cozmanca/pick-and-order","version":"1.0.2","description":"Generic Angular pick and order component with drag-and-drop","author":{"name":"Alexandru Cozmanca"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alexandrucozmanca/pick-and-order.git"},"bugs":{"url":"https://github.com/alexandrucozmanca/pick-and-order/issues"},"homepage":"https://github.com/alexandrucozmanca/pick-and-order#readme","keywords":["angular","component","dragdrop","pick-and-order"],"publishConfig":{"access":"public"},"sideEffects":false,"peerDependencies":{"@angular/core":">=14.0.0","@angular/common":">=14.0.0","@angular/forms":">=14.0.0","@angular/cdk":">=14.0.0","@ngx-translate/core":">=14.0.0","@ngx-translate/http-loader":">=7.0.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2022/alexandru.cozmanca-pick-and-order.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/alexandru.cozmanca-pick-and-order.mjs"}},"_id":"@alexandru.cozmanca/pick-and-order@1.0.2","gitHead":"c21663f97174d86f43e2f4944c15484be6f6576c","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-bexhrXqeBS6IS2NWk1n9Qq1MPm+SE91mm4ooWPbLoGUIoqXjXYCtM3Ek4leqpDNbxkXVvC2oSCNgOKp6vYNdUQ==","shasum":"16591b0302478891c02d69935b4bd1826d930516","tarball":"https://registry.npmjs.org/@alexandru.cozmanca/pick-and-order/-/pick-and-order-1.0.2.tgz","fileCount":5,"unpackedSize":32976,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCYTWgW6xtHFqKu5qJbB34EskMuVBjTUsv6z1/CuuGV6wIhAK8N9VnzLld9n5JS/7KQwWBDAI1QKobrezlrARQ8DXbv"}]},"_npmUser":{"name":"alexandru.cozmanca","email":"alexandru.cozmanca@gmail.com"},"directories":{},"maintainers":[{"name":"alexandru.cozmanca","email":"alexandru.cozmanca@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pick-and-order_1.0.2_1760691794988_0.2976085408509366"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-18T11:34:43.412Z","modified":"2025-10-17T09:03:15.386Z","1.0.0":"2025-09-18T11:26:47.976Z","1.0.1":"2025-09-18T11:34:43.660Z","1.0.2":"2025-10-17T09:03:15.190Z"},"bugs":{"url":"https://github.com/alexandrucozmanca/pick-and-order/issues"},"author":{"name":"Alexandru Cozmanca"},"license":"MIT","homepage":"https://github.com/alexandrucozmanca/pick-and-order#readme","keywords":["angular","component","dragdrop","pick-and-order"],"repository":{"type":"git","url":"git+https://github.com/alexandrucozmanca/pick-and-order.git"},"description":"Generic Angular pick and order component with drag-and-drop","maintainers":[{"name":"alexandru.cozmanca","email":"alexandru.cozmanca@gmail.com"}],"readme":"# @alexandru.cozmanca/pick-and-order\n\nA **generic Angular component** that lets users pick items from a source list and order them in a target list.  \nBuilt with Angular CDK Drag & Drop. Supports **custom filtering** of the source list via a user-supplied function.\n\n---\n\n## Features\n\n- **Pick & order** items between source and target lists  \n- **Drag & drop** reordering with Angular CDK  \n- **Custom filtering** – pass in your own filtering function to control what shows up in the source list  \n- **i18n ready** – integrates with `@ngx-translate/core`  \n- ⚡ Works with Angular 14+ (tested on Angular 19)\n\n---\n\n## Installation\n\n```bash\nnpm install @alexandru.cozmanca/pick-and-order\n```\n\nYou’ll also need the **peer dependencies**:\n\n```bash\nnpm install @angular/cdk @ngx-translate/core @ngx-translate/http-loader\n```\n\n---\n\n## Usage\n\n### Import the component\n\nFor **standalone components**:\n\n```ts\nimport { PickAndOrderComponent } from '@alexandru.cozmanca/pick-and-order';\n\n@Component({\n  standalone: true,\n  selector: 'app-my-feature',\n  imports: [PickAndOrderComponent],\n  template: `\n    <ac-pick-and-order\n      [sourceItems]=\"allItems\"\n      [targetItems]=\"selectedItems\"\n      [filterFn]=\"myFilterFn\"\n      (targetItemsChange)=\"onSelectionChange($event)\">\n    </ac-pick-and-order>\n  `,\n})\nexport class MyFeatureComponent {\n  allItems = ['Apple', 'Banana', 'Orange', 'Grape'];\n  selectedItems = ['Banana'];\n\n  // Example filter: show only items starting with A\n  myFilterFn = (item: string) => item.startsWith('A');\n\n  onSelectionChange(updated: string[]) {\n    console.log('Updated target items:', updated);\n  }\n}\n```\n\n---\n\n## API\n\n### Inputs\n\n| Input            | Type                    | Description                                                                 |\n|------------------|-------------------------|-----------------------------------------------------------------------------|\n| `sourceItems`    | `T[]`                   | The full list of available items                                            |\n| `targetItems`    | `T[]`                   | Items currently picked (ordered list)                                       |\n| `filterFn`       | `(item: T) => boolean`  | Optional. Custom filter function applied to the source list                 |\n\n### Outputs\n\n| Output              | Type   | Description                                    |\n|---------------------|--------|------------------------------------------------|\n| `targetItemsChange` | `T[]`  | Emits the updated list whenever target changes |\n\n---\n\n## Internationalization\n\nThis library uses [`@ngx-translate/core`](https://github.com/ngx-translate/core).  \nProvide your translations normally and the component will use them for UI labels.\n\n---\n\n## 🛠 Development\n\nClone the repo, then build the library:\n\n```bash\nnpm install\nng build pick-and-order\n```\n\nTest locally in another Angular app:\n\n```bash\ncd dist/pick-and-order\nnpm pack\n# install the generated .tgz in your consuming app\n```\n\n---\n\n## License\n\nMIT © [Alexandru Cozmanca](https://github.com/alexandrucozmanca)\n","readmeFilename":"README.md"}