@operato/gantt 2.0.0-alpha.154

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.editorconfig +29 -0
  2. package/.storybook/main.js +3 -0
  3. package/.storybook/server.mjs +8 -0
  4. package/CHANGELOG.md +13 -0
  5. package/README.md +0 -0
  6. package/assets/images/icon-editor-gradient-direction.png +0 -0
  7. package/assets/images/icon-properties-label.png +0 -0
  8. package/assets/images/icon-properties-line-type.png +0 -0
  9. package/assets/images/icon-properties-table.png +0 -0
  10. package/assets/images/no-image.png +0 -0
  11. package/demo/index.html +22 -0
  12. package/dist/src/gantt.d.ts +28 -0
  13. package/dist/src/gantt.js +178 -0
  14. package/dist/src/gantt.js.map +1 -0
  15. package/dist/src/index.d.ts +0 -0
  16. package/dist/src/index.js +2 -0
  17. package/dist/src/index.js.map +1 -0
  18. package/dist/src/lite-gantt.d.ts +27 -0
  19. package/dist/src/lite-gantt.js +146 -0
  20. package/dist/src/lite-gantt.js.map +1 -0
  21. package/dist/src/types.d.ts +14 -0
  22. package/dist/src/types.js +2 -0
  23. package/dist/src/types.js.map +1 -0
  24. package/dist/stories/ox-gantt.stories.d.ts +22 -0
  25. package/dist/stories/ox-gantt.stories.js +74 -0
  26. package/dist/stories/ox-gantt.stories.js.map +1 -0
  27. package/dist/stories/ox-lite-gantt.stories.d.ts +22 -0
  28. package/dist/stories/ox-lite-gantt.stories.js +74 -0
  29. package/dist/stories/ox-lite-gantt.stories.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -0
  31. package/package.json +77 -0
  32. package/src/gantt.ts +191 -0
  33. package/src/index.ts +0 -0
  34. package/src/lite-gantt.ts +152 -0
  35. package/src/renderer.txt +775 -0
  36. package/src/types.ts +16 -0
  37. package/stories/ox-gantt.stories.ts +89 -0
  38. package/stories/ox-lite-gantt.stories.ts +89 -0
  39. package/translations/en.json +1 -0
  40. package/translations/ja.json +1 -0
  41. package/translations/ko.json +1 -0
  42. package/translations/ms.json +1 -0
  43. package/translations/zh.json +1 -0
  44. package/tsconfig.json +24 -0
  45. package/web-dev-server.config.mjs +27 -0
  46. package/web-test-runner.config.mjs +41 -0
@@ -0,0 +1,22 @@
1
+ import '../src/lite-gantt.js';
2
+ import { TemplateResult } from 'lit';
3
+ declare const _default: {
4
+ title: string;
5
+ component: string;
6
+ argTypes: {
7
+ theme: {
8
+ control: string;
9
+ options: string[];
10
+ };
11
+ };
12
+ };
13
+ export default _default;
14
+ interface Story<T> {
15
+ (args: T): TemplateResult;
16
+ args?: Partial<T>;
17
+ argTypes?: Record<string, unknown>;
18
+ }
19
+ interface ArgTypes {
20
+ theme: 'light' | 'dark';
21
+ }
22
+ export declare const Regular: Story<ArgTypes>;
@@ -0,0 +1,74 @@
1
+ import { CommonHeaderStyles } from '@operato/styles';
2
+ import '../src/lite-gantt.js';
3
+ import { html } from 'lit';
4
+ import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles';
5
+ export default {
6
+ title: 'ox-lite-gantt',
7
+ component: 'ox-lite-gantt',
8
+ argTypes: {
9
+ theme: { control: 'select', options: ['light', 'dark'] }
10
+ }
11
+ };
12
+ const Template = ({ theme = 'light' }) => html `
13
+ <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
14
+
15
+ <link href="/themes/light.css" rel="stylesheet" />
16
+ <link href="/themes/dark.css" rel="stylesheet" />
17
+ <link href="/themes/spacing.css" rel="stylesheet" />
18
+
19
+ <link
20
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
21
+ rel="stylesheet"
22
+ />
23
+ <link
24
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
25
+ rel="stylesheet"
26
+ />
27
+ <link
28
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
29
+ rel="stylesheet"
30
+ />
31
+
32
+ <style>
33
+ ${MDTypeScaleStyles.cssText}
34
+ </style>
35
+
36
+ <style>
37
+ ${CommonHeaderStyles.cssText}
38
+ </style>
39
+
40
+ <style>
41
+ body {
42
+ width: 100%;
43
+ height: 500px;
44
+ text-align: center;
45
+
46
+ background-color: var(--md-sys-color-background);
47
+ color: var(--md-sys-color-on-background);
48
+ }
49
+
50
+ .header {
51
+ padding: var(--spacing-medium);
52
+ background-color: var(--md-sys-color-primary-container);
53
+ color: var(--md-sys-color-on-primary-container);
54
+ }
55
+ </style>
56
+
57
+ <script>
58
+ document.body.classList.add('${theme}')
59
+ </script>
60
+
61
+ <div class="header">
62
+ <div class="filters">
63
+ <ox-lite-gantt
64
+ @change=${(e) => {
65
+ console.log('search form changed', e.detail);
66
+ }}
67
+ >
68
+ </ox-lite-gantt>
69
+ </div>
70
+ </div>
71
+ `;
72
+ export const Regular = Template.bind({});
73
+ Regular.args = {};
74
+ //# sourceMappingURL=ox-lite-gantt.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-lite-gantt.stories.js","sourceRoot":"","sources":["../../stories/ox-lite-gantt.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,sBAAsB,CAAA;AAE7B,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAA;AAC1C,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,8CAA8C,CAAA;AAI1F,eAAe;IACb,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;KACzD;CACF,CAAA;AAYD,MAAM,QAAQ,GAAoB,CAAC,EAAE,KAAK,GAAG,OAAO,EAAY,EAAE,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;MAqBnE,iBAAiB,CAAC,OAAO;;;;MAIzB,kBAAkB,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;mCAqBG,KAAK;;;;;;kBAMtB,CAAC,CAAc,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC;;;;;CAKR,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA","sourcesContent":["import { CommonHeaderStyles } from '@operato/styles'\nimport '../src/lite-gantt.js'\n\nimport { html, TemplateResult } from 'lit'\nimport { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'\n\nimport { Task, Section } from '../src/types.js'\n\nexport default {\n title: 'ox-lite-gantt',\n component: 'ox-lite-gantt',\n argTypes: {\n theme: { control: 'select', options: ['light', 'dark'] }\n }\n}\n\ninterface Story<T> {\n (args: T): TemplateResult\n args?: Partial<T>\n argTypes?: Record<string, unknown>\n}\n\ninterface ArgTypes {\n theme: 'light' | 'dark'\n}\n\nconst Template: Story<ArgTypes> = ({ theme = 'light' }: ArgTypes) => html`\n <link href=\"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap\" rel=\"stylesheet\" />\n\n <link href=\"/themes/light.css\" rel=\"stylesheet\" />\n <link href=\"/themes/dark.css\" rel=\"stylesheet\" />\n <link href=\"/themes/spacing.css\" rel=\"stylesheet\" />\n\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n\n <style>\n ${MDTypeScaleStyles.cssText}\n </style>\n\n <style>\n ${CommonHeaderStyles.cssText}\n </style>\n\n <style>\n body {\n width: 100%;\n height: 500px;\n text-align: center;\n\n background-color: var(--md-sys-color-background);\n color: var(--md-sys-color-on-background);\n }\n\n .header {\n padding: var(--spacing-medium);\n background-color: var(--md-sys-color-primary-container);\n color: var(--md-sys-color-on-primary-container);\n }\n </style>\n\n <script>\n document.body.classList.add('${theme}')\n </script>\n\n <div class=\"header\">\n <div class=\"filters\">\n <ox-lite-gantt\n @change=${(e: CustomEvent) => {\n console.log('search form changed', e.detail)\n }}\n >\n </ox-lite-gantt>\n </div>\n </div>\n`\n\nexport const Regular = Template.bind({})\nRegular.args = {}\n"]}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@lit/reactive-element/css-tag.d.ts","../../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/lit-html/directive.d.ts","../../../node_modules/lit-html/lit-html.d.ts","../../../node_modules/lit-element/lit-element.d.ts","../../../node_modules/lit-html/is-server.d.ts","../../../node_modules/lit/index.d.ts","../../../node_modules/@lit/reactive-element/decorators/base.d.ts","../../../node_modules/@lit/reactive-element/decorators/custom-element.d.ts","../../../node_modules/@lit/reactive-element/decorators/property.d.ts","../../../node_modules/@lit/reactive-element/decorators/state.d.ts","../../../node_modules/@lit/reactive-element/decorators/event-options.d.ts","../../../node_modules/@lit/reactive-element/decorators/query.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-all.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-async.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.d.ts","../../../node_modules/lit/decorators.d.ts","../../../node_modules/@types/d3-array/index.d.ts","../../../node_modules/@types/d3-selection/index.d.ts","../../../node_modules/@types/d3-axis/index.d.ts","../../../node_modules/@types/d3-brush/index.d.ts","../../../node_modules/@types/d3-chord/index.d.ts","../../../node_modules/@types/d3-color/index.d.ts","../../../node_modules/@types/geojson/index.d.ts","../../../node_modules/@types/d3-contour/index.d.ts","../../../node_modules/@types/d3-delaunay/index.d.ts","../../../node_modules/@types/d3-dispatch/index.d.ts","../../../node_modules/@types/d3-drag/index.d.ts","../../../node_modules/@types/d3-dsv/index.d.ts","../../../node_modules/@types/d3-ease/index.d.ts","../../../node_modules/@types/d3-fetch/index.d.ts","../../../node_modules/@types/d3-force/index.d.ts","../../../node_modules/@types/d3-format/index.d.ts","../../../node_modules/@types/d3-geo/index.d.ts","../../../node_modules/@types/d3-hierarchy/index.d.ts","../../../node_modules/@types/d3-interpolate/index.d.ts","../../../node_modules/@types/d3-path/index.d.ts","../../../node_modules/@types/d3-polygon/index.d.ts","../../../node_modules/@types/d3-quadtree/index.d.ts","../../../node_modules/@types/d3-random/index.d.ts","../../../node_modules/@types/d3-time/index.d.ts","../../../node_modules/@types/d3-scale/index.d.ts","../../../node_modules/@types/d3-scale-chromatic/index.d.ts","../../../node_modules/@types/d3-shape/index.d.ts","../../../node_modules/@types/d3-time-format/index.d.ts","../../../node_modules/@types/d3-timer/index.d.ts","../../../node_modules/@types/d3-transition/index.d.ts","../../../node_modules/@types/d3-zoom/index.d.ts","../../../node_modules/@types/d3/index.d.ts","../src/gantt.ts","../src/index.ts","../src/lite-gantt.ts","../src/types.ts","../../styles/dist/src/headroom-styles.d.ts","../../styles/dist/src/scrollbar-styles.d.ts","../../styles/dist/src/spinner-styles.d.ts","../../styles/dist/src/tooltip-styles.d.ts","../../styles/dist/src/common-button-styles.d.ts","../../styles/dist/src/common-grist-styles.d.ts","../../styles/dist/src/button-container-styles.d.ts","../../styles/dist/src/common-header-styles.d.ts","../../styles/dist/src/index.d.ts","../../../node_modules/@material/web/typography/md-typescale-styles.d.ts","../stories/ox-gantt.stories.ts","../stories/ox-lite-gantt.stories.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","e056bb30bf82271634daeee81f772f4a7960085f01f6d4d09c8da1ebe5f6a623","5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576",{"version":"86492a546c3308feaf1dde967afd325c321483b5e96f5fa9e9b6e691dc23fa9e","affectsGlobalScope":true},"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true},"d4b4f6148a6444ec92db4ac4c7dd7050ffc32b21a10276a59498e04740e8fd8d","2524f58c8d67af441b487c0ce0e0dd9c18bf3d06c05f621874dcda9780d8e22c","c7dd759e5948a94b42422ba7cf70eb8455416def9447614a3bdc1a99b81fc8bb","1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","cdeae34aca6700620ebf3f27cf7d439c3af97595dd6e2729fa4780483add5680","3ff87ea3471b51beaf4aa8fd8f4422862b11d343fdbb55bf383e0f8cc195a445","1cc188904259bd0985b24d9dc2a160891cb5e94210901466b951716fcdb4ff62","732fb71ecb695d6f36ddcbb72ebfe4ff6b6491d45101a00fa2b75a26b80d640f","039cb05125d7621f8143616c495b8e6b54249c4e64d2754b80ff93867f7f4b01","1b81f1fa82ad30af01ab1cae91ccaddc10c48f5916bbd6d282155e44a65d858d","a0fc7a02a75802678a67000607f20266cf1a49dc0e787967efe514e31b9ed0c3","5ebf098a1d81d400b8af82807cf19893700335cf91a7b9dbd83a5d737af34b11","101cf83ac3f9c5e1a7355a02e4fbe988877ef83c4ebec0ff0f02b2af022254a3","d017e2fcd44b46ca80cd2b592a6314e75f5caab5bda230f0f4a45e964049a43a","a8992b852521a66f63e0cedc6e1f054b28f972232b6fa5ca59771db6a1c8bbea","e0c868a08451c879984ccf4d4e3c1240b3be15af8988d230214977a3a3dad4ce","2bcede1c080dad244691aba27bbab623724c852bd2ad7f73a7b910e66396f125","17c9f569be89b4c3c17dc17a9fb7909b6bab34f73da5a9a02d160f502624e2e8","003df7b9a77eaeb7a524b795caeeb0576e624e78dea5e362b053cb96ae89132a","7ba17571f91993b87c12b5e4ecafe66b1a1e2467ac26fcb5b8cee900f6cf8ff4","6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","40e9aaa923bacffacfcd4b619b862c023245f03c67df28c49515bccd26e5f9a0","8b219399c6a743b7c526d4267800bd7c84cf8e27f51884c86ad032d662218a9d","bad6d83a581dbd97677b96ee3270a5e7d91b692d220b87aab53d63649e47b9ad","7f15c8d21ca2c062f4760ff3408e1e0ec235bad2ca4e2842d1da7fc76bb0b12f","54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","e1b666b145865bc8d0d843134b21cf589c13beba05d333c7568e7c30309d933a","ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","c836b5d8d84d990419548574fc037c923284df05803b098fe5ddaa49f88b898a","9ffef07d8bb9c98531d468d6bfcf497bfbee318628812c393cb48ed43a8bd94c","189266dd5f90a981910c70d7dfa05e2bca901a4f8a2680d7030c3abbfb5b1e23","5ec8dcf94c99d8f1ed7bb042cdfa4ef6a9810ca2f61d959be33bcaf3f309debe","a80e02af710bdac31f2d8308890ac4de4b6a221aafcbce808123bfc2903c5dc2","d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","f94362be0203351e67499c41bd1f3c91f4dabf6872e5c880f269d5ad7ffda603","0f345151cece7be8d10df068b58983ea8bcbfead1b216f0734037a6c63d8af87","37fd7bde9c88aa142756d15aeba872498f45ad149e0d1e56f3bccc1af405c520","2a920fd01157f819cf0213edfb801c3fb970549228c316ce0a4b1885020bad35","432a61971738da04b67e04e08390ac124cc543479083709896b2071d0a790066","1ba55e9efbea1dcf7a6563969ff406de1a9a865cbbdaea2714f090fff163e2b5","309715f2bcee4af51e6425b264deaa2f5f0bda74f86099a2112b596c8697e888",{"version":"75bc851da666e3e8ddfe0056f56ae55e4bd52e42590e35cbe55d89752a991006","affectsGlobalScope":true},"dd8936160e41420264a9d5fade0ff95cc92cab56032a84c74a46b4c38e43121e","1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","cf96262c8ad7ebde5a97f3a086913b9cdf0627c4af3fdb4dcfdc20ec5ef4a9ec","57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","e6f10f9a770dedf552ca0946eef3a3386b9bfb41509233a30fc8ca47c49db71c",{"version":"10f9a51785d3783aeb5c54a6fe150035057c0df7cb351800f8581f81388862f0","signature":"3ce76e79b728f6e6725653af35e92077a2023a9c3dca87751e67499e8d37fb9d"},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"8592fc4b6e1489be7cea75a65be9d9519d62485057f8381d6206c9d03acfbf5a","signature":"7d1c2d7037a7f19bb19ffb774a99b2e9ab8e4d644b7901f46fcd140398c80401"},{"version":"28f65af678bcead4cb8ef0b3c9ce2ad0761c85d28e805302d1f82b3fc8842510","signature":"42d1967b52216466e1d63c2895f61c34f12466b30c561c5c79a254840b0e3dfa"},"cf93fb9208a01c80f0fad245c4360356e5de6c2384b7641acf0b9cc2f5c42448","336398b0efaf964124e636a9b29c4edd5870aee79ac64bf87be58a9d66b7c048","571bc65ec37ba124e762bb822e14a2b8502dc684e356be8feaccbd6b9cadd023","2bbbefc1235500bdb5091f240dc8cba861a95342272f7d11b7574a0d2ef4f85e","7cd455fc4c4818f19263d73b29c59f3fb5fd54b45a6ab83ca3eb3661281db56b","1c6b9b5501774a2ece6574be8e26092800e3f1f836f8c179b4f9fdd271a620f8","bcd2426fd141157e04e3a8eff914b575403587f398cf0878f07c2f283e0d1afd","bac8ff394e831e4dd3f0961d6abb414b0e2b4ba16fdeb502d087ebf0340ed5f6","b8965484c1a08eeac238cf02a1498d72f3f3610059570a2c0fd207eb34245146","d6c0b824e25ca3bdd752c8baa81a8c5c2da034ffaa54ad60fb5cb2bea6e2bcec",{"version":"5819320ef83a154927ce21591de0c3c03b8177143fd25de32ea407d0fac8106f","signature":"1b36715af34c26b92342ef239f03fad770a864f703eeb973ce2056fd988b4486"},{"version":"d401985ead4f71602d725c09ba85c3a714c0e2d387a5a49a1ccc671a909e5dcc","signature":"1611450fce949928715a885aeed171ceacf0dc634498b61ad9c5a4104a00d704"},"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36",{"version":"90d7eec51e402c8536db1312ef5994a2566e34cc3eb42ce0923a724748310ae7","affectsGlobalScope":true},"2d6336a655a5cfd68661f773f611133b6992c25506b3f72b7773503924130a91","53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6",{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"e0d3b6c099dfc2e8d29bdeaf2753e2ec1225b1d7896c3afeadfd284a3c0025ec","affectsGlobalScope":true},"e5999af8a68622f7eaac6745a421f9d438bd847b3e012575e2a395ea5e752fde","3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","3bb6e21a9f30417c0a059e240b3f8f70c8af9c4cb6f2fd1bc2db594c647e285f","7483ef24249f6a3e24eb3d8136ec7fe0633cd6f8ffe752e2a8d99412aff35bb7","d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"3e7dd0014ec3594783dc83ba8c06c13f191931a93e4d1b743371b2e7150cb9d4","affectsGlobalScope":true},"9230a0b87a2d01d26e770bf55de59f71f7631125095926d51d93942694e26f6b","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","cb8bd3f7d20c3f1a671f1a0c4619d9f90c151bcd52b32eb405f35e6b2dcedac2","98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","26d5daea2aa3ba8e9d5540c75e1fec598ca76cf23ff0a772c5e1ae99d100d714","2eaa31492906bc8525aff3c3ec2236e22d90b0dfeee77089f196cd0adf0b3e3b",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"631a5f10cf3f2f0c962c60e2ad42e678a87067cb18d8437ba3caa6bd6875e04b","b329bfc2efb22b436a24554eadcdc29b7380c6ddfbfeb76653b7961020f725e7","d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900",{"version":"9bc44886a3ef2320d7fcda7f245de4d991af93935b850692a98465126caba07d","affectsGlobalScope":true},{"version":"49137120ae42f2301ae81f904c6ada72215d2255454d7b4992458bff7ea241de","affectsGlobalScope":true},"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","b98b461ffdbf07ca87e20cf007fe81084e487f2ddcea8d45b88e84ce70ddf6a4","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927",{"version":"77e7388c530402124af6eaf33e4693a3546be992657643a04533760296ee631c","affectsGlobalScope":true},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0",{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true},{"version":"7245af181218216bacb01fbdf51095617a51661f20d77178c69a377e16fb69ed","affectsGlobalScope":true},"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c",{"version":"ac14eb65c59722f0333e776a73e6a02cea23b5aa857a749ea176daf4e960e872","affectsGlobalScope":true},"7c6929fd7cbf38499b6a600b91c3b603d1d78395046dc3499b2b92d01418b94b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc",{"version":"0ea93d01083b3d5863cc98cb589b5d0eac55d14417487f9e5e455dfa0b17c660","affectsGlobalScope":true}],"root":[[101,104],115,116],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":99,"useDefineForClassFields":false},"fileIdsList":[[58],[50,58],[50,58,66],[60],[48,49],[57],[70,98],[69,75],[80],[75],[74],[92],[88],[70,87,98],[69,70,71,72,73,74,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99],[117],[153],[154,159,188],[155,160,166,167,174,185,196],[155,156,166,174],[157,197],[158,159,167,175],[159,185,193],[160,162,166,174],[153,161],[162,163],[166],[164,166],[153,166],[166,167,168,185,196],[166,167,168,181,185,188],[151,154,201],[162,166,169,174,185,196],[166,167,169,170,174,185,193,196],[169,171,185,193,196],[117,118,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[166,172],[173,196,201],[162,166,174,185],[175],[176],[153,177],[174,175,178,195,201],[179],[180],[166,181,182],[181,183,197,199],[154,166,185,186,187,188],[154,185,187],[185,186],[188],[189],[153,185],[166,191,192],[191,192],[159,174,185,193],[194],[174,195],[154,169,180,196],[159,197],[185,198],[173,199],[200],[154,159,166,168,177,185,196,199,201],[185,202],[51],[50,54],[54],[52,53],[59,60,61,62,63,64,65,66,67],[50,54,55,56],[128,132,196],[128,185,196],[123],[125,128,193,196],[174,193],[204],[123,204],[125,128,174,196],[120,121,124,127,154,166,185,196],[120,126],[124,128,154,188,196,204],[154,204],[144,154,204],[122,123,204],[128],[122,123,124,125,126,127,128,129,130,132,133,134,135,136,137,138,139,140,141,142,143,145,146,147,148,149,150],[128,135,136],[126,128,136,137],[127],[120,123,128],[128,132,136,137],[132],[126,128,131,196],[120,125,126,128,132,135],[154,185],[123,128,144,154,201,204],[47,57,68,100],[47],[47,57,101,104,113,114],[47,57,103,104,113,114],[105,106,107,108,109,110,111,112],[54,57,100],[57,101],[57,103]],"referencedMap":[[59,1],[62,2],[60,2],[64,2],[67,3],[66,2],[65,2],[63,2],[61,4],[50,5],[114,6],[71,7],[72,7],[76,8],[79,7],[82,9],[85,10],[87,11],[93,12],[95,13],[98,7],[99,14],[100,15],[117,16],[118,16],[153,17],[154,18],[155,19],[156,20],[157,21],[158,22],[159,23],[160,24],[161,25],[162,26],[163,26],[165,27],[164,28],[166,29],[167,30],[168,31],[152,32],[169,33],[170,34],[171,35],[204,36],[172,37],[173,38],[174,39],[175,40],[176,41],[177,42],[178,43],[179,44],[180,45],[181,46],[182,46],[183,47],[185,48],[187,49],[186,50],[188,51],[189,52],[190,53],[191,54],[192,55],[193,56],[194,57],[195,58],[196,59],[197,60],[198,61],[199,62],[200,63],[201,64],[202,65],[52,66],[55,67],[53,68],[54,69],[68,70],[57,71],[135,72],[142,73],[134,72],[149,74],[126,75],[125,76],[148,77],[143,78],[146,79],[128,80],[127,81],[123,82],[122,83],[145,84],[124,85],[129,86],[133,86],[151,87],[150,86],[137,88],[138,89],[140,90],[136,91],[139,92],[144,77],[131,93],[132,94],[141,95],[121,96],[147,97],[101,98],[103,98],[104,99],[115,100],[116,101],[111,6],[110,6],[112,6],[105,6],[113,102],[106,6],[107,6],[108,6]],"exportedModulesMap":[[59,1],[62,2],[60,2],[64,2],[67,3],[66,2],[65,2],[63,2],[61,4],[50,5],[114,6],[71,7],[72,7],[76,8],[79,7],[82,9],[85,10],[87,11],[93,12],[95,13],[98,7],[99,14],[100,15],[117,16],[118,16],[153,17],[154,18],[155,19],[156,20],[157,21],[158,22],[159,23],[160,24],[161,25],[162,26],[163,26],[165,27],[164,28],[166,29],[167,30],[168,31],[152,32],[169,33],[170,34],[171,35],[204,36],[172,37],[173,38],[174,39],[175,40],[176,41],[177,42],[178,43],[179,44],[180,45],[181,46],[182,46],[183,47],[185,48],[187,49],[186,50],[188,51],[189,52],[190,53],[191,54],[192,55],[193,56],[194,57],[195,58],[196,59],[197,60],[198,61],[199,62],[200,63],[201,64],[202,65],[52,66],[55,67],[53,68],[54,69],[68,70],[57,71],[135,72],[142,73],[134,72],[149,74],[126,75],[125,76],[148,77],[143,78],[146,79],[128,80],[127,81],[123,82],[122,83],[145,84],[124,85],[129,86],[133,86],[151,87],[150,86],[137,88],[138,89],[140,90],[136,91],[139,92],[144,77],[131,93],[132,94],[141,95],[121,96],[147,97],[101,103],[103,103],[115,104],[116,105],[111,6],[110,6],[112,6],[105,6],[113,102],[106,6],[107,6],[108,6]],"semanticDiagnosticsPerFile":[48,58,59,62,60,64,67,66,65,63,61,49,50,114,69,71,72,73,74,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,94,93,70,95,96,92,97,98,99,100,75,205,117,118,153,154,155,156,157,158,159,160,161,162,163,165,164,166,167,168,152,203,169,170,171,204,172,173,174,175,176,177,178,179,180,181,182,183,184,185,187,186,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,52,51,119,55,53,56,54,68,57,47,45,46,8,10,9,2,11,12,13,14,15,16,17,18,3,19,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,44,135,142,134,149,126,125,148,143,146,128,127,123,122,145,124,129,130,133,120,151,150,137,138,140,136,139,144,131,132,141,121,147,101,102,103,104,115,116,111,109,110,112,105,113,106,107,108]},"version":"5.4.5"}
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "@operato/gantt",
3
+ "description": "Webcomponents for gantt chart following open-wc recommendations",
4
+ "author": "heartyoh@hatiolab.com",
5
+ "version": "2.0.0-alpha.154",
6
+ "main": "dist/src/index.js",
7
+ "module": "dist/src/index.js",
8
+ "license": "MIT",
9
+ "publishConfig": {
10
+ "access": "public",
11
+ "@operato:registry": "https://registry.npmjs.org"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/hatiolab/operato.git",
16
+ "directory": "webcomponents/gantt"
17
+ },
18
+ "scripts": {
19
+ "clean": "npx rimraf dist",
20
+ "analyze": "cem analyze --litelement",
21
+ "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
22
+ "build": "npm run clean && tsc && npm run analyze -- --exclude dist",
23
+ "prepublish": "npm run build",
24
+ "lint": "eslint --ext .ts,.html . --ignore-path .gitignore && prettier \"**/*.ts\" --check --ignore-path .gitignore",
25
+ "format": "eslint --ext .ts,.html . --fix --ignore-path .gitignore && prettier \"**/*.ts\" --write --ignore-path .gitignore",
26
+ "test": "tsc && wtr --coverage",
27
+ "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch\"",
28
+ "storybook": "npm run build && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds -c .storybook/server.mjs\"",
29
+ "storybook:build": "npm run build && build-storybook"
30
+ },
31
+ "exports": {
32
+ ".": "./dist/src/index.js"
33
+ },
34
+ "typesVersions": {
35
+ "*": {}
36
+ },
37
+ "dependencies": {
38
+ "d3": "^7.8.5",
39
+ "lit": "^3.1.2",
40
+ "lodash-es": "^4.17.21"
41
+ },
42
+ "devDependencies": {
43
+ "@custom-elements-manifest/analyzer": "^0.9.2",
44
+ "@hatiolab/prettier-config": "^1.0.0",
45
+ "@open-wc/eslint-config": "^12.0.3",
46
+ "@open-wc/testing": "^3.1.6",
47
+ "@types/lodash-es": "^4.17.5",
48
+ "@typescript-eslint/eslint-plugin": "^7.0.1",
49
+ "@typescript-eslint/parser": "^7.0.1",
50
+ "@web/dev-server": "^0.3.0",
51
+ "@web/dev-server-storybook": "^2.0.1",
52
+ "@web/test-runner": "^0.18.0",
53
+ "concurrently": "^8.0.1",
54
+ "eslint": "^8.39.0",
55
+ "eslint-config-prettier": "^9.1.0",
56
+ "husky": "^9.0.11",
57
+ "lint-staged": "^15.2.2",
58
+ "prettier": "^3.2.5",
59
+ "tslib": "^2.3.1",
60
+ "typescript": "^5.0.4"
61
+ },
62
+ "resolutions": {},
63
+ "customElements": "custom-elements.json",
64
+ "prettier": "@hatiolab/prettier-config",
65
+ "husky": {
66
+ "hooks": {
67
+ "pre-commit": "lint-staged"
68
+ }
69
+ },
70
+ "lint-staged": {
71
+ "*.ts": [
72
+ "eslint --fix",
73
+ "prettier --write"
74
+ ]
75
+ },
76
+ "gitHead": "7efb3c3eeae5f115d7bee1942d30b26f51e19d82"
77
+ }
package/src/gantt.ts ADDED
@@ -0,0 +1,191 @@
1
+ import { LitElement, css, html } from 'lit'
2
+ import { customElement, property, query } from 'lit/decorators.js'
3
+ import * as d3 from 'd3'
4
+
5
+ @customElement('ox-gantt-chart')
6
+ export class OxGanttChart extends LitElement {
7
+ @property({ type: Number }) width: number = 0
8
+ @property({ type: Number }) height: number = 0
9
+ @property({ type: Array }) plots: Array<any> = []
10
+
11
+ @property({ type: Number }) precision?: number = 2
12
+
13
+ @query('#tooltip') tooltip!: HTMLDivElement
14
+ @query('#chart') chart!: SVGSVGElement
15
+
16
+ protected svg?: d3.Selection<SVGGElement, unknown, null, undefined>
17
+
18
+ private resizeObserver?: ResizeObserver
19
+
20
+ static styles = [
21
+ css`
22
+ :host {
23
+ display: flex;
24
+ }
25
+
26
+ svg {
27
+ flex: 1;
28
+ margin: 0;
29
+ padding: 0;
30
+ }
31
+
32
+ #tooltip {
33
+ position: absolute;
34
+ opacity: 0;
35
+ background-color: var(--gantt-chart-tooltip-background-color, white);
36
+ padding: var(--gantt-chart-tooltip-padding, 5px);
37
+ border: var(--gantt-chart-tooltip-border, 1px solid black);
38
+ border-radius: var(--gantt-chart-tooltip-border-radius, 5px);
39
+ box-shadow: var(--gantt-chart-tooltip-box-shadow, 2px 2px 5px rgba(0, 0, 0, 0.3));
40
+ pointer-events: var(--gantt-chart-tooltip-pointer-events, none);
41
+ font-size: var(--gantt-chart-tooltip-font-size, 12px);
42
+ font-family: var(--gantt-chart-tooltip-font-family, Arial, sans-serif);
43
+ transition: opacity 0.3s ease-in-out;
44
+ }
45
+
46
+ .data-point {
47
+ stroke: var(--gantt-chart-plot-stroke, black);
48
+ stroke-width: var(--gantt-chart-plot-stroke-width, 1px);
49
+ r: var(--gantt-chart-plot-r, 4);
50
+ }
51
+ `
52
+ ]
53
+
54
+ render() {
55
+ return html`
56
+ <svg id="chart"></svg>
57
+ <div id="tooltip"></div>
58
+ `
59
+ }
60
+
61
+ connectedCallback(): void {
62
+ super.connectedCallback()
63
+ this.initializeResizeObserver()
64
+ }
65
+
66
+ disconnectedCallback(): void {
67
+ if (this.resizeObserver) {
68
+ this.resizeObserver.disconnect()
69
+ }
70
+ super.disconnectedCallback()
71
+ }
72
+
73
+ protected initializeResizeObserver(): void {
74
+ this.resizeObserver = new ResizeObserver(entries => {
75
+ for (const entry of entries) {
76
+ this.initializeChart()
77
+ this.drawChart()
78
+ }
79
+ })
80
+
81
+ this.resizeObserver.observe(this)
82
+ }
83
+
84
+ updated(changedProperties: Map<string | number | symbol, unknown>) {
85
+ super.updated(changedProperties)
86
+
87
+ if (changedProperties.has('plots') && this.plots.length > 0) {
88
+ this.initializeChart()
89
+ this.drawChart()
90
+ }
91
+ }
92
+
93
+ protected initializeChart(): void {
94
+ const chart = this.chart
95
+
96
+ d3.select(chart).selectAll('g').remove()
97
+
98
+ this.svg = d3.select(chart).append('g')
99
+
100
+ this.addMouseHandlers()
101
+ }
102
+
103
+ protected drawChart(): void {
104
+ const tasks = [
105
+ { task: 'Task 1', startDate: new Date('2024-02-01'), endDate: new Date('2024-02-07') },
106
+ { task: 'Task 2', startDate: new Date('2024-02-05'), endDate: new Date('2024-02-15') },
107
+ { task: 'Task 3', startDate: new Date('2024-02-10'), endDate: new Date('2024-02-20') }
108
+ ]
109
+
110
+ const g = this.svg!
111
+
112
+ const x = d3
113
+ .scaleTime()
114
+ .domain([d3.min(tasks, d => d.startDate)!, d3.max(tasks, d => d.endDate)!])
115
+ .range([0, this.width])
116
+
117
+ const y = d3
118
+ .scaleBand()
119
+ .domain(tasks.map(d => d.task))
120
+ .range([0, this.height])
121
+ .padding(0.1)
122
+
123
+ g.selectAll('.task')
124
+ .data(tasks)
125
+ .enter()
126
+ .append('rect')
127
+ .attr('class', 'task')
128
+ .attr('x', d => x(d.startDate))
129
+ .attr('y', d => y(d.task)!)
130
+ .attr('width', d => x(d.endDate) - x(d.startDate))
131
+ .attr('height', y.bandwidth())
132
+
133
+ g.append('g')
134
+ .attr('transform', 'translate(0,' + this.height + ')')
135
+ .call(d3.axisBottom(x))
136
+
137
+ g.append('g').call(d3.axisLeft(y))
138
+ }
139
+
140
+ private addMouseHandlers(): void {
141
+ d3.select(this.chart)
142
+ .on('mouseover', this.onMouseOver.bind(this))
143
+ .on('mousemove', this.onMouseMove.bind(this))
144
+ .on('mouseout', this.onMouseOut.bind(this))
145
+ }
146
+
147
+ protected onMouseOver(event: MouseEvent): void {
148
+ const target = d3.select(event.target as HTMLElement)
149
+
150
+ if (target.classed('tooltip')) {
151
+ const data = target.datum()
152
+ this.showTooltip(this.tooltipContent(data), event.clientX, event.clientY)
153
+ }
154
+ }
155
+
156
+ protected onMouseMove(event: MouseEvent): void {
157
+ const target = d3.select(event.target as HTMLElement)
158
+
159
+ if (target.classed('tooltip')) {
160
+ const data = target.datum()
161
+ this.showTooltip(this.tooltipContent(data), event.clientX, event.clientY)
162
+ }
163
+ }
164
+
165
+ protected onMouseOut(event: MouseEvent): void {
166
+ const target = d3.select(event.target as HTMLElement)
167
+
168
+ if (target.classed('tooltip')) {
169
+ this.hideTooltip()
170
+ }
171
+ }
172
+
173
+ protected tooltipContent(data: any): string {
174
+ return `Data: ${data}`
175
+ }
176
+
177
+ protected showTooltip(content: string, x: number, y: number): void {
178
+ this.tooltip.style.opacity = '1'
179
+ this.tooltip.style.left = `${x}px`
180
+ this.tooltip.style.top = `${y}px`
181
+ this.tooltip.innerHTML = content
182
+ }
183
+
184
+ protected hideTooltip(): void {
185
+ this.tooltip.style.opacity = '0'
186
+ }
187
+
188
+ protected plotData(): void {
189
+ this.svg!.selectAll('.plot').data(this.plots).enter().append('circle').attr('class', 'plot tooltip')
190
+ }
191
+ }
package/src/index.ts ADDED
File without changes
@@ -0,0 +1,152 @@
1
+ import { LitElement, css, html } from 'lit'
2
+ import { customElement, property, query } from 'lit/decorators.js'
3
+ import * as d3 from 'd3'
4
+
5
+ @customElement('ox-lite-gantt-chart')
6
+ export class OxLiteGanttChart extends LitElement {
7
+ @property({ type: Number }) width: number = 0
8
+ @property({ type: Number }) height: number = 0
9
+ @property({ type: Array }) plots: Array<any> = []
10
+
11
+ @property({ type: Number }) precision?: number = 2
12
+
13
+ @query('#tooltip') tooltip!: HTMLDivElement
14
+ @query('#chart') chart!: SVGSVGElement
15
+
16
+ protected svg?: d3.Selection<SVGGElement, unknown, null, undefined>
17
+
18
+ private resizeObserver?: ResizeObserver
19
+
20
+ static styles = [
21
+ css`
22
+ :host {
23
+ display: flex;
24
+ }
25
+
26
+ svg {
27
+ flex: 1;
28
+ margin: 0;
29
+ padding: 0;
30
+ }
31
+
32
+ #tooltip {
33
+ position: absolute;
34
+ opacity: 0;
35
+ background-color: var(--gantt-chart-tooltip-background-color, white);
36
+ padding: var(--gantt-chart-tooltip-padding, 5px);
37
+ border: var(--gantt-chart-tooltip-border, 1px solid black);
38
+ border-radius: var(--gantt-chart-tooltip-border-radius, 5px);
39
+ box-shadow: var(--gantt-chart-tooltip-box-shadow, 2px 2px 5px rgba(0, 0, 0, 0.3));
40
+ pointer-events: var(--gantt-chart-tooltip-pointer-events, none);
41
+ font-size: var(--gantt-chart-tooltip-font-size, 12px);
42
+ font-family: var(--gantt-chart-tooltip-font-family, Arial, sans-serif);
43
+ transition: opacity 0.3s ease-in-out;
44
+ }
45
+
46
+ .data-point {
47
+ stroke: var(--gantt-chart-plot-stroke, black);
48
+ stroke-width: var(--gantt-chart-plot-stroke-width, 1px);
49
+ r: var(--gantt-chart-plot-r, 4);
50
+ }
51
+ `
52
+ ]
53
+
54
+ render() {
55
+ return html`
56
+ <svg id="chart"></svg>
57
+ <div id="tooltip"></div>
58
+ `
59
+ }
60
+
61
+ connectedCallback(): void {
62
+ super.connectedCallback()
63
+ this.initializeResizeObserver()
64
+ }
65
+
66
+ disconnectedCallback(): void {
67
+ if (this.resizeObserver) {
68
+ this.resizeObserver.disconnect()
69
+ }
70
+ super.disconnectedCallback()
71
+ }
72
+
73
+ protected initializeResizeObserver(): void {
74
+ this.resizeObserver = new ResizeObserver(entries => {
75
+ for (const entry of entries) {
76
+ this.initializeChart()
77
+ this.drawChart()
78
+ }
79
+ })
80
+
81
+ this.resizeObserver.observe(this)
82
+ }
83
+
84
+ updated(changedProperties: Map<string | number | symbol, unknown>) {
85
+ super.updated(changedProperties)
86
+
87
+ if (changedProperties.has('plots') && this.plots.length > 0) {
88
+ this.initializeChart()
89
+ this.drawChart()
90
+ }
91
+ }
92
+
93
+ protected initializeChart(): void {
94
+ const chart = this.chart
95
+
96
+ d3.select(chart).selectAll('g').remove()
97
+
98
+ this.svg = d3.select(chart).append('g')
99
+
100
+ this.addMouseHandlers()
101
+ }
102
+
103
+ protected drawChart(): void {}
104
+
105
+ private addMouseHandlers(): void {
106
+ d3.select(this.chart)
107
+ .on('mouseover', this.onMouseOver.bind(this))
108
+ .on('mousemove', this.onMouseMove.bind(this))
109
+ .on('mouseout', this.onMouseOut.bind(this))
110
+ }
111
+
112
+ protected onMouseOver(event: MouseEvent): void {
113
+ const target = d3.select(event.target as HTMLElement)
114
+
115
+ if (target.classed('tooltip')) {
116
+ const data = target.datum()
117
+ this.showTooltip(this.tooltipContent(data), event.clientX, event.clientY)
118
+ }
119
+ }
120
+
121
+ protected onMouseMove(event: MouseEvent): void {
122
+ const target = d3.select(event.target as HTMLElement)
123
+
124
+ if (target.classed('tooltip')) {
125
+ const data = target.datum()
126
+ this.showTooltip(this.tooltipContent(data), event.clientX, event.clientY)
127
+ }
128
+ }
129
+
130
+ protected onMouseOut(event: MouseEvent): void {
131
+ const target = d3.select(event.target as HTMLElement)
132
+
133
+ if (target.classed('tooltip')) {
134
+ this.hideTooltip()
135
+ }
136
+ }
137
+
138
+ protected tooltipContent(data: any): string {
139
+ return `Data: ${data}`
140
+ }
141
+
142
+ protected showTooltip(content: string, x: number, y: number): void {
143
+ this.tooltip.style.opacity = '1'
144
+ this.tooltip.style.left = `${x}px`
145
+ this.tooltip.style.top = `${y}px`
146
+ this.tooltip.innerHTML = content
147
+ }
148
+
149
+ protected hideTooltip(): void {
150
+ this.tooltip.style.opacity = '0'
151
+ }
152
+ }