├── .babelrc ├── .github └── workflows │ └── ci.yaml ├── .gitignore ├── .npmignore ├── .travis.yml ├── .vscode ├── settings.json └── tasks.json ├── Brocfile.js ├── CHANGELOG.md ├── LICENSE ├── NOTICE ├── README.md ├── USAGE.md ├── package.json ├── rollup.config.js ├── scripts ├── build-docs.sh ├── build.sh ├── publish-docs.sh └── size-calc.js ├── src ├── index.ts ├── interfaces.ts ├── intersection-observer.ts ├── metal │ ├── element.ts │ ├── engine.ts │ ├── events.ts │ ├── index.ts │ ├── interfaces.ts │ ├── queue.ts │ ├── scheduler.ts │ └── window-proxy.ts ├── native-spaniel-observer.ts ├── native-watcher.ts ├── spaniel-observer.ts ├── utils.ts └── watcher.ts ├── test ├── app │ ├── index.html │ ├── index.js │ ├── setup.js │ └── style.css ├── constants.js ├── headless │ ├── context.js │ ├── run.js │ ├── server │ │ └── app.js │ ├── spaniel-context.js │ ├── specs │ │ ├── intersection-observer.js │ │ ├── spaniel-observer.spec.js │ │ ├── utilities.js │ │ └── watcher │ │ │ ├── exposed-event.spec.js │ │ │ ├── general.spec.js │ │ │ ├── impression-complete-event.spec.js │ │ │ ├── impression-event.spec.js │ │ │ └── visible-event.spec.js │ └── test-module.js ├── setup │ └── environment.js └── specs │ └── spaniel-observer.spec.js ├── testem.json ├── tsconfig.json ├── tslint.json └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/.babelrc -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /bower_components 2 | /node_modules 3 | .npmrc 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/.travis.yml -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/.vscode/tasks.json -------------------------------------------------------------------------------- /Brocfile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/Brocfile.js -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/LICENSE -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/NOTICE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/README.md -------------------------------------------------------------------------------- /USAGE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/USAGE.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/package.json -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/rollup.config.js -------------------------------------------------------------------------------- /scripts/build-docs.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/scripts/build-docs.sh -------------------------------------------------------------------------------- /scripts/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/scripts/build.sh -------------------------------------------------------------------------------- /scripts/publish-docs.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/scripts/publish-docs.sh -------------------------------------------------------------------------------- /scripts/size-calc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/scripts/size-calc.js -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/interfaces.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/interfaces.ts -------------------------------------------------------------------------------- /src/intersection-observer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/intersection-observer.ts -------------------------------------------------------------------------------- /src/metal/element.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/element.ts -------------------------------------------------------------------------------- /src/metal/engine.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/engine.ts -------------------------------------------------------------------------------- /src/metal/events.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/events.ts -------------------------------------------------------------------------------- /src/metal/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/index.ts -------------------------------------------------------------------------------- /src/metal/interfaces.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/interfaces.ts -------------------------------------------------------------------------------- /src/metal/queue.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/queue.ts -------------------------------------------------------------------------------- /src/metal/scheduler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/scheduler.ts -------------------------------------------------------------------------------- /src/metal/window-proxy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/metal/window-proxy.ts -------------------------------------------------------------------------------- /src/native-spaniel-observer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/native-spaniel-observer.ts -------------------------------------------------------------------------------- /src/native-watcher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/native-watcher.ts -------------------------------------------------------------------------------- /src/spaniel-observer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/spaniel-observer.ts -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/utils.ts -------------------------------------------------------------------------------- /src/watcher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/src/watcher.ts -------------------------------------------------------------------------------- /test/app/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/app/index.html -------------------------------------------------------------------------------- /test/app/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/app/index.js -------------------------------------------------------------------------------- /test/app/setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/app/setup.js -------------------------------------------------------------------------------- /test/app/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/app/style.css -------------------------------------------------------------------------------- /test/constants.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/constants.js -------------------------------------------------------------------------------- /test/headless/context.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/context.js -------------------------------------------------------------------------------- /test/headless/run.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/run.js -------------------------------------------------------------------------------- /test/headless/server/app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/server/app.js -------------------------------------------------------------------------------- /test/headless/spaniel-context.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/spaniel-context.js -------------------------------------------------------------------------------- /test/headless/specs/intersection-observer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/intersection-observer.js -------------------------------------------------------------------------------- /test/headless/specs/spaniel-observer.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/spaniel-observer.spec.js -------------------------------------------------------------------------------- /test/headless/specs/utilities.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/utilities.js -------------------------------------------------------------------------------- /test/headless/specs/watcher/exposed-event.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/watcher/exposed-event.spec.js -------------------------------------------------------------------------------- /test/headless/specs/watcher/general.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/watcher/general.spec.js -------------------------------------------------------------------------------- /test/headless/specs/watcher/impression-complete-event.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/watcher/impression-complete-event.spec.js -------------------------------------------------------------------------------- /test/headless/specs/watcher/impression-event.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/watcher/impression-event.spec.js -------------------------------------------------------------------------------- /test/headless/specs/watcher/visible-event.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/specs/watcher/visible-event.spec.js -------------------------------------------------------------------------------- /test/headless/test-module.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/headless/test-module.js -------------------------------------------------------------------------------- /test/setup/environment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/setup/environment.js -------------------------------------------------------------------------------- /test/specs/spaniel-observer.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/test/specs/spaniel-observer.spec.js -------------------------------------------------------------------------------- /testem.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/testem.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/tslint.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linkedin/spaniel/HEAD/yarn.lock --------------------------------------------------------------------------------