{"_id":"@aegenet/au2-base-component","_rev":"6-cc36705edf64ab84625e218af926ffac","name":"@aegenet/au2-base-component","dist-tags":{"latest":"2.1.0"},"versions":{"1.6.1":{"name":"@aegenet/au2-base-component","version":"1.6.1","author":{"name":"Alexandre Genet"},"license":"MIT","_id":"@aegenet/au2-base-component@1.6.1","maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"homepage":"https://github.com/aegenet/au2/tree/master#readme","bugs":{"url":"https://github.com/aegenet/au2/issues"},"dist":{"shasum":"ec2882f8cf1e4fbc7060745d8e838270f929a786","tarball":"https://registry.npmjs.org/@aegenet/au2-base-component/-/au2-base-component-1.6.1.tgz","fileCount":22,"integrity":"sha512-GKTukyVAUYwZdfGOGBqv2Owi6UBJxVIhjs39RStz+FTBLJvF3d7iIw0SOoTY/8CIKrlPMMPdpZ42G6PrjRsa4Q==","signatures":[{"sig":"MEUCIQC/YnNLsqDs8NNYk+NdWyUMY+D9SI0Z7D/zW+8bbDa9xQIgaMBfymIMdC1nzeaK/UqcaVlPggYDqzrt7opD/nQJZIc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40853},"main":"dist/index.cjs","module":"dist/index.mjs","exports":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"gitHead":"2a77ed54b71fb591eba915c238f9789837ee2056","scripts":{},"typings":"dist/index.d.ts","_npmUser":{"name":"agenet","email":"npm@creadigme.net"},"repository":{"url":"git+https://github.com/aegenet/au2.git#master","type":"git"},"_npmVersion":"10.2.4","description":"Aurelia 2 - Base Component","directories":{},"_nodeVersion":"20.11.1","dependencies":{},"publishConfig":{"registry":"https://npm.pkg.github.com","@aegenet:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/au2-base-component_1.6.1_1711795549317_0.07272224533670002","host":"s3://npm-registry-packages"}},"1.6.2":{"name":"@aegenet/au2-base-component","version":"1.6.2","keywords":["aurelia","aurelia2","au2","plugins","component","base-component"],"author":{"name":"Alexandre Genet"},"license":"MIT","_id":"@aegenet/au2-base-component@1.6.2","maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"homepage":"https://github.com/aegenet/au2/tree/master#readme","bugs":{"url":"https://github.com/aegenet/au2/issues"},"dist":{"shasum":"8bd5df382c04a7646ac1e316c8ed31ff4a39c604","tarball":"https://registry.npmjs.org/@aegenet/au2-base-component/-/au2-base-component-1.6.2.tgz","fileCount":22,"integrity":"sha512-LtB60b02CJyy60+b6Al8LAVM1NPl3/58gftRsVrg5th083hYruoZkqLFuAd2Vq1/lFKiKMWM5ilrpnsaCH80SQ==","signatures":[{"sig":"MEUCIQCuvLpM/Yg8xghIm4m+6SezfKoXxtOOS1PmL3YbzlBCMAIgN+mWWYKQ4BDlJzFHQ6Nj+NNPctXTEyXIridzqAT1zx8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40969},"main":"dist/index.cjs","module":"dist/index.mjs","exports":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"gitHead":"68dc1909a207486fdcaf9929499f3a979ece1bc4","scripts":{},"typings":"dist/index.d.ts","_npmUser":{"name":"agenet","email":"npm@creadigme.net"},"repository":{"url":"git+https://github.com/aegenet/au2.git#master","type":"git"},"_npmVersion":"10.2.4","description":"Aurelia 2 - Base Component","directories":{},"_nodeVersion":"20.11.1","dependencies":{},"publishConfig":{"registry":"https://npm.pkg.github.com","@aegenet:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/au2-base-component_1.6.2_1712230189258_0.5223296079649318","host":"s3://npm-registry-packages"}},"2.0.0-alpha":{"name":"@aegenet/au2-base-component","version":"2.0.0-alpha","keywords":["aurelia","aurelia2","au2","plugins","component","base-component"],"author":{"name":"Alexandre Genet"},"license":"MIT","_id":"@aegenet/au2-base-component@2.0.0-alpha","maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"homepage":"https://github.com/aegenet/au2/tree/master#readme","bugs":{"url":"https://github.com/aegenet/au2/issues"},"dist":{"shasum":"ae67d1512ea54f74c93adb8ef68637df1baa2921","tarball":"https://registry.npmjs.org/@aegenet/au2-base-component/-/au2-base-component-2.0.0-alpha.tgz","fileCount":7,"integrity":"sha512-h21/618iyi7qa9R5/d6Z1H+lFqadaT6Ge1wrGIXtMOk2E7Tzuzgk/leWTAeRtjM5tIEmVuZhuz20d+ZAiOxBig==","signatures":[{"sig":"MEUCIQCPddCRyFRy3NoiSal1xoy0w4AM2Cb8XPQ2AKMcD8TOpAIgf6Q1NSrE5BLwquV14G/HvIjU+5IbpMcgrkSROz5tpx0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64872},"main":"dist/index.cjs","types":"./dist/bundle.d.ts","module":"dist/index.mjs","browser":"dist/index.mjs","exports":{"node":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"default":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"0c79184e44ee04c3fca16bdbfa1c610432ff68ca","scripts":{},"typings":"./dist/bundle.d.ts","_npmUser":{"name":"agenet","email":"npm@creadigme.net"},"repository":{"url":"git+https://github.com/aegenet/au2.git#master","type":"git"},"_npmVersion":"10.8.1","description":"Aurelia 2 - Base Component","directories":{},"_nodeVersion":"20.16.0","dependencies":{"@aegenet/belt-anti-bounce":"^2.0.0","@aegenet/belt-array-to-obj":"^2.0.0"},"publishConfig":{"registry":"https://npm.pkg.github.com","@aegenet:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"aurelia":"^2.0.0-beta.20","@aurelia/i18n":"^2.0.0-beta.20","@aurelia/router":"^2.0.0-beta.20"},"_npmOperationalInternal":{"tmp":"tmp/au2-base-component_2.0.0-alpha_1723070215099_0.20996573641276228","host":"s3://npm-registry-packages"}},"2.0.0-alpha2":{"name":"@aegenet/au2-base-component","version":"2.0.0-alpha2","keywords":["aurelia","aurelia2","au2","plugins","component","base-component"],"author":{"name":"Alexandre Genet"},"license":"MIT","_id":"@aegenet/au2-base-component@2.0.0-alpha2","maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"homepage":"https://github.com/aegenet/au2/tree/master#readme","bugs":{"url":"https://github.com/aegenet/au2/issues"},"dist":{"shasum":"21fa17d0e383a650f6bf87a371483c00a433fa38","tarball":"https://registry.npmjs.org/@aegenet/au2-base-component/-/au2-base-component-2.0.0-alpha2.tgz","fileCount":7,"integrity":"sha512-Nz7abAYrkprU0rBu94QaCIyLDKGEWkrSn/irRZ3xQoEpq8fxPEaao4Ezm5unE7BuYRHQ2dcf6w7hT4RwBUfyAw==","signatures":[{"sig":"MEUCIQDEOu/Rp1ixizyV8iKFQhqncPhrWx3XVAdlzk2Fw35u8QIge0uJOcIiyekQtUhAurA+mW3daLtH4I15tDGdMOGjkAA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64873},"main":"dist/index.cjs","types":"./dist/bundle.d.ts","module":"dist/index.mjs","browser":"dist/index.mjs","exports":{"node":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"default":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"c65bc27d601b352d8b6196aa1bb9c236ae6d4af4","scripts":{},"typings":"./dist/bundle.d.ts","_npmUser":{"name":"agenet","email":"npm@creadigme.net"},"repository":{"url":"git+https://github.com/aegenet/au2.git#master","type":"git"},"_npmVersion":"10.8.1","description":"Aurelia 2 - Base Component","directories":{},"_nodeVersion":"20.16.0","dependencies":{"@aegenet/belt-anti-bounce":"^2.0.0","@aegenet/belt-array-to-obj":"^2.0.0"},"publishConfig":{"registry":"https://npm.pkg.github.com","@aegenet:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"aurelia":"^2.0.0-beta.21","@aurelia/i18n":"^2.0.0-beta.21","@aurelia/router":"^2.0.0-beta.21"},"_npmOperationalInternal":{"tmp":"tmp/au2-base-component_2.0.0-alpha2_1723141790398_0.7300484875906366","host":"s3://npm-registry-packages"}},"2.0.0-alpha3":{"name":"@aegenet/au2-base-component","version":"2.0.0-alpha3","keywords":["aurelia","aurelia2","au2","plugins","component","base-component"],"author":{"name":"Alexandre Genet"},"license":"MIT","_id":"@aegenet/au2-base-component@2.0.0-alpha3","maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"homepage":"https://github.com/aegenet/au2/tree/master#readme","bugs":{"url":"https://github.com/aegenet/au2/issues"},"dist":{"shasum":"3606dd660426448a0489f7f7674cd5dd90eae884","tarball":"https://registry.npmjs.org/@aegenet/au2-base-component/-/au2-base-component-2.0.0-alpha3.tgz","fileCount":7,"integrity":"sha512-AiQcnVNDQEdVucCGGdJ8CRBhU1Cze+m3FbYXWRpKDGbOgyeGVuIGNuZCoWpy9hSEzWoFm/Xuf7FImk6wtIY09A==","signatures":[{"sig":"MEYCIQD5SngrkSN/cOVbkcKtIh4zE4KaBfI0BCpxwOezMg8XcQIhAO9L0amnyIC5BDYbCNL0SLxhpUPVpBklJ+uVyB+BTu4T","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64981},"main":"dist/index.cjs","types":"./dist/bundle.d.ts","module":"dist/index.mjs","browser":"dist/index.mjs","exports":{"node":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"default":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"6d76b1ee29e67da9cf5dc82aeacd93a00e4d728b","scripts":{},"typings":"./dist/bundle.d.ts","_npmUser":{"name":"agenet","email":"npm@creadigme.net"},"repository":{"url":"git+https://github.com/aegenet/au2.git#master","type":"git"},"_npmVersion":"10.8.1","description":"Aurelia 2 - Base Component","directories":{},"_nodeVersion":"20.16.0","dependencies":{"@aegenet/belt-anti-bounce":"^2.0.0","@aegenet/belt-array-to-obj":"^2.0.0"},"publishConfig":{"registry":"https://npm.pkg.github.com","@aegenet:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"aurelia":"^2.0.0-beta.21","@aurelia/i18n":"^2.0.0-beta.21","@aurelia/router":"^2.0.0-beta.21"},"_npmOperationalInternal":{"tmp":"tmp/au2-base-component_2.0.0-alpha3_1723739350180_0.7133543491567633","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@aegenet/au2-base-component","version":"2.0.0","keywords":["aurelia","aurelia2","au2","plugins","component","base-component"],"author":{"name":"Alexandre Genet"},"license":"MIT","_id":"@aegenet/au2-base-component@2.0.0","maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"homepage":"https://github.com/aegenet/au2/tree/master#readme","bugs":{"url":"https://github.com/aegenet/au2/issues"},"dist":{"shasum":"2eea02c1c248c0c58e6b74a7f75752443aa3e418","tarball":"https://registry.npmjs.org/@aegenet/au2-base-component/-/au2-base-component-2.0.0.tgz","fileCount":7,"integrity":"sha512-fI/SxDXCj+SG6aCFD/nz8xe/mf0TdAalNVgGmdwhEQGqSGyhufRK24a1wOrBCAw91gPUbLm615o9i4t9E11AXQ==","signatures":[{"sig":"MEUCIQCYU3JV2BJ2eBFvHabGKPynpBR2p4kIPIPekZhC40ADAgIgNU388qAkg/CgeAWSpwOtphCx4vQSZK1L//9lbzLi+0M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64962},"main":"dist/index.cjs","types":"./dist/bundle.d.ts","module":"dist/index.mjs","browser":"dist/index.mjs","exports":{"node":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"default":{"types":"./dist/bundle.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"0d20334fed48d1534909bce098f36de8ecb26085","scripts":{},"typings":"./dist/bundle.d.ts","_npmUser":{"name":"agenet","email":"npm@creadigme.net"},"repository":{"url":"git+https://github.com/aegenet/au2.git#master","type":"git"},"_npmVersion":"10.8.1","description":"Aurelia 2 - Base Component","directories":{},"_nodeVersion":"20.16.0","dependencies":{"@aegenet/belt-anti-bounce":"^2.0.0","@aegenet/belt-array-to-obj":"^2.0.0"},"publishConfig":{"registry":"https://npm.pkg.github.com","@aegenet:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"aurelia":"^2.0.0-beta.21","@aurelia/i18n":"^2.0.0-beta.21","@aurelia/router":"^2.0.0-beta.21"},"_npmOperationalInternal":{"tmp":"tmp/au2-base-component_2.0.0_1723741485847_0.19446159936360963","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@aegenet/au2-base-component","description":"Aurelia 2 - Base Component","main":"dist/index.cjs","module":"dist/index.mjs","browser":"dist/index.mjs","exports":{"node":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/bundle.d.ts"},"default":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/bundle.d.ts"}},"typings":"./dist/bundle.d.ts","types":"./dist/bundle.d.ts","author":{"name":"Alexandre Genet"},"keywords":["aurelia","aurelia2","au2","plugins","component","base-component"],"version":"2.1.0","repository":{"type":"git","url":"git+https://github.com/aegenet/au2.git#master"},"license":"MIT","publishConfig":{"registry":"https://npm.pkg.github.com","@aegenet:registry":"https://registry.npmjs.org/"},"dependencies":{"@aegenet/belt-anti-bounce":"^2.3.0","@aegenet/belt-array-to-obj":"^2.3.0"},"peerDependencies":{"@aurelia/i18n":"^2.0.0-beta.22","@aurelia/router":"^2.0.0-beta.22","aurelia":"^2.0.0-beta.22"},"devDependencies":{},"scripts":{},"_id":"@aegenet/au2-base-component@2.1.0","gitHead":"72387f7bae1d6219b57ad84651a0a594631ba633","bugs":{"url":"https://github.com/aegenet/au2/issues"},"homepage":"https://github.com/aegenet/au2/tree/master#readme","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-slYfXFrEK68k84nW32DZpuLa53XErrutrKMYQp7dr2w13LoMmu4VGDzL/RcvJEkirrda0nKuau3OQKXCRz2iNQ==","shasum":"472a0212f0580925bb37151add74267d82ff005b","tarball":"https://registry.npmjs.org/@aegenet/au2-base-component/-/au2-base-component-2.1.0.tgz","fileCount":7,"unpackedSize":64962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNh9PeOw4A5m9cmoUv0cxo/WPFNMvV5knscwwwKXPYlgIhALQy5TShe99RznF0Udk1qn1WN58YYPu/ixESxIU4HAUi"}]},"_npmUser":{"name":"agenet","email":"npm@creadigme.net"},"directories":{},"maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/au2-base-component_2.1.0_1735807443740_0.20959216706539863"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-30T10:45:49.248Z","modified":"2025-01-02T08:44:04.118Z","1.6.1":"2024-03-30T10:45:49.564Z","1.6.2":"2024-04-04T11:29:49.438Z","2.0.0-alpha":"2024-08-07T22:36:55.269Z","2.0.0-alpha2":"2024-08-08T18:29:50.542Z","2.0.0-alpha3":"2024-08-15T16:29:10.436Z","2.0.0":"2024-08-15T17:04:46.112Z","2.1.0":"2025-01-02T08:44:03.904Z"},"bugs":{"url":"https://github.com/aegenet/au2/issues"},"author":{"name":"Alexandre Genet"},"license":"MIT","homepage":"https://github.com/aegenet/au2/tree/master#readme","keywords":["aurelia","aurelia2","au2","plugins","component","base-component"],"repository":{"type":"git","url":"git+https://github.com/aegenet/au2.git#master"},"description":"Aurelia 2 - Base Component","maintainers":[{"name":"agenet","email":"npm@creadigme.net"}],"readme":"[![npm version](https://img.shields.io/npm/v/@aegenet/au2-base-component.svg)](https://www.npmjs.com/package/@aegenet/au2-base-component)\n<br>\n\n# @aegenet/au2-base-component\n\n> `BaseComponent` with `EventAggregator`, `I18N`, `Aware Event` and `AntiBounce`\n> `BasePage` with `EventAggregator`, `I18N`, `Aware Event` and `AntiBounce`\n\n> Tested with [`Aurelia v2.0.0-beta.22`](https://github.com/aurelia/aurelia/releases/tag/v2.0.0-beta.22).\n\n# Installation\n\n```shell\nnpm install @aegenet/au2-base-component@^2.0.0\n# or\nyarn add @aegenet/au2-base-component@^2.0.0\n```\n\n# Usage\n\n## Register the plugin\n\n```js\nimport * as myPlugin from '@aegenet/au2-base-component';\nAurelia\n  // Load all exports from the plugin\n  .register(myPlugin)\n  .app(MyApp)\n  .start();\n```\n\n## Components & services\n\n### BaseComponent\n\nA base component adds the following features to a component:\n- `EventAggregator` to send and receive events.\n- `I18N` to translate the page.\n- `Aware` to listen to events from other components.\n- `AntiBounce` to prevent multiple clicks on a button.\n- `Store` to store data in memory.\n- `Slots` informations to manage slots.\n\n```typescript\nimport { customElement, IContainer, inject } from 'aurelia';\nimport { BaseComponent } from '@aegenet/au2-base-component';\n\nimport template from './demo-component.html';\n@customElement({\n  name: 'demo-component',\n  template,\n})\n@inject(Element, IContainer)\nexport class DemoComponent extends BaseComponent {\n  //\n}\n```\n\n### BasePage\n\nA base page adds the following features to a page component:\n- `Router` to navigate between pages.\n- `EventAggregator` to send and receive events.\n- `I18N` to translate the page.\n- `Aware` to listen to events from other components.\n- `AntiBounce` to prevent multiple clicks on a button.\n- `Store` to store data in memory.\n\n```typescript\nimport { IContainer, customElement, inject } from 'aurelia';\nimport { BasePage } from '@aegenet/au2-base-component';\n\nimport template from './demo-page.html';\n@customElement({\n  name: 'demo-page',\n  template,\n})\n@inject(IContainer)\nexport class DemoPage extends BasePage {\n  //\n}\n```\n\n### Aware\n\nWhen a component inherits from `BaseComponent`, it can be controlled by events.\n\nFrom TypeScript: with a simple `IEventAggregator`, you can send events to the component.\n\n```typescript\nimport { IEventAggregator } from 'aurelia';\n// [...]\n\nconst ev: IEventAggregator = container.get(IEventAggregator);\nev.publish('demo-component:tab1', { property: 'select', value: ['two'] });\n```\n\nFrom HTML: with the `aware-component` custom element, you can send events to the component.\n\n```html\n<demo-component component.ref=\"demoComponent\" event-name=\"tab1\">\n  <span slot=\"one\" title=\"French\">\n    <h5>Second slide label</h5>\n    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n  </span>\n  <span slot=\"two\" title=\"English\">\n    <h5>Third slide label</h5>\n    <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>\n  </span>\n</demo-component>\n\n<aware-component component.ref=\"awareBtnRef\" events.bind=\"[{ name: 'demo-component:tab1', options: { property: 'select', value: ['two'] } }]\"></aware-component>\n\n<button click.trigger=\"awareBtnRef.publish()\">Send event</button>\n```\n\n### Store\n\nThis basic store is more like a cache system. It allows you to store data in memory and refresh it when needed.\n\n```typescript\nimport { DIStoreService, IStoreService } from '@aegenet/au2-base-component';\n\nconst storeService = container.get<IStoreService>(DIStoreService);\n\n// Setup\nstoreService.setStore({\n  key: 'user',\n  async load(container) {\n      return JSON.parse(localStorage.getItem('user') || '[]');\n  },\n}, {\n  key: 'user_index',\n  async load(container) {\n      return arrayToObject((await storeService.getStore('user')) as unknown[], 'id');\n  },\n});\n\n// [...]\n\n// Get\nawait storeService.getStore('user'); // []\n\n// Set\nlocalStorage.setItem('user', JSON.stringify([{ id: 1, name: 'John' }]));\n// Refresh\nawait storeService.refreshStore('user');\n\n// Get\nawait storeService.getStore('user'); // [{ id: 1, name: 'John' }];\n```\n\n### Container stats & debug\n\n```typescript\nimport { debugContainer } from '@aegenet/au2-base-component';\ndebugContainer(null);\n/* {\n    instance: [],\n    singleton: [],\n    transient: [],\n    callback: [],\n    array: [],\n    alias: [],\n} */\n\n// container: IContainer;\ndebugContainer(container);\n```\n\n### Default capture\n\n```html\n<button \n  ...$attrs\n  type=\"button\"\n  click.trigger=\"doAction()\"\n  <au-slot>\n  </au-slot>\n</button>\n```\n\n```typescript\nimport { customElement, IContainer, inject } from 'aurelia';\nimport { defaultCapture, BaseComponent } from '../src';\nimport template from './demo-default-capture.html';\n\n/**\n * Demo default capture\n */\n@customElement({\n  name: 'demo-default-capture',\n  template,\n  capture: defaultCapture,\n})\n@inject(Element, IContainer)\nexport class DemoDefaultCapture extends BaseComponent {\n  public clickCount: number = 0;\n\n  constructor(element: Element, container: IContainer) {\n    super(element, container);\n  }\n\n  public doAction(): void {\n    this.clickCount++;\n  }\n}\n````\n\n# Development\n\n## Start dev web server\n\n    npm start\n\nNote this plugin project comes with a dev-app. The above command starts the dev app in `dev-app/` folder. The plugin source code is in `src/` folder.\n\n## Build the plugin in production modern\n\n    npm run build\n\nIt builds plugin into `dist/index.mjs` file.\n\nNote when you do `npm publish` or `npm pack` to prepare the plugin package, it automatically run the above build command by the `prepare` script defined in your package.json `\"scripts\"` section.\n\n## Unit Tests\n\n    npm run test\n\nRun unit tests in watch mode.\n\n    npm run test:watch\n\n\n## Analyze webpack bundle\n\n    npm run analyze\n\n# License\n\n[The MIT License](LICENSE) - Copyright © 2022-2024 [Alexandre Genet](https://github.com/aegenet).\n","readmeFilename":"README.md"}