@aquera/nile-elements 0.0.121 → 0.0.123
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.
- package/README.md +8 -0
- package/dist/abap-511af2a5.cjs.js +2 -0
- package/dist/abap-511af2a5.cjs.js.map +1 -0
- package/dist/abap-f2ab40d0.esm.js +1 -0
- package/dist/{angular-ts-32bbcd01.cjs.js → angular-ts-a70761c6.cjs.js} +2 -2
- package/dist/{angular-ts-32bbcd01.cjs.js.map → angular-ts-a70761c6.cjs.js.map} +1 -1
- package/dist/cairo-014ad724.cjs.js +2 -0
- package/dist/cairo-014ad724.cjs.js.map +1 -0
- package/dist/cairo-9be40999.esm.js +1 -0
- package/dist/catppuccin-frappe-52a52bb1.cjs.js +2 -0
- package/dist/catppuccin-frappe-52a52bb1.cjs.js.map +1 -0
- package/dist/catppuccin-frappe-dbc3161e.esm.js +1 -0
- package/dist/catppuccin-latte-d8a0f6a8.cjs.js +2 -0
- package/dist/catppuccin-latte-d8a0f6a8.cjs.js.map +1 -0
- package/dist/catppuccin-latte-e7591143.esm.js +1 -0
- package/dist/catppuccin-macchiato-19a7795e.cjs.js +2 -0
- package/dist/catppuccin-macchiato-19a7795e.cjs.js.map +1 -0
- package/dist/catppuccin-macchiato-283b424a.esm.js +1 -0
- package/dist/catppuccin-mocha-165e830c.esm.js +1 -0
- package/dist/catppuccin-mocha-9f9ec5f6.cjs.js +2 -0
- package/dist/catppuccin-mocha-9f9ec5f6.cjs.js.map +1 -0
- package/dist/cobol-8517cfc1.esm.js +1 -0
- package/dist/cobol-922d57ed.cjs.js +2 -0
- package/dist/cobol-922d57ed.cjs.js.map +1 -0
- package/dist/{cpp-c2442fe2.cjs.js → cpp-8812199e.cjs.js} +2 -2
- package/dist/{cpp-c2442fe2.cjs.js.map → cpp-8812199e.cjs.js.map} +1 -1
- package/dist/{crystal-1913e34d.cjs.js → crystal-5458e62a.cjs.js} +2 -2
- package/dist/{crystal-1913e34d.cjs.js.map → crystal-5458e62a.cjs.js.map} +1 -1
- package/dist/{edge-ef9e682b.cjs.js → edge-cb04b11b.cjs.js} +2 -2
- package/dist/{edge-ef9e682b.cjs.js.map → edge-cb04b11b.cjs.js.map} +1 -1
- package/dist/{elm-7fd07d47.cjs.js → elm-53a0b5b4.cjs.js} +2 -2
- package/dist/{elm-7fd07d47.cjs.js.map → elm-53a0b5b4.cjs.js.map} +1 -1
- package/dist/{erb-c813c1f2.cjs.js → erb-1bc4721c.cjs.js} +2 -2
- package/dist/{erb-c813c1f2.cjs.js.map → erb-1bc4721c.cjs.js.map} +1 -1
- package/dist/{fortran-fixed-form-c39bf051.cjs.js → fortran-fixed-form-00a9d08f.cjs.js} +2 -2
- package/dist/{fortran-fixed-form-c39bf051.cjs.js.map → fortran-fixed-form-00a9d08f.cjs.js.map} +1 -1
- package/dist/{fsharp-ba007c9c.cjs.js → fsharp-661f4f18.cjs.js} +2 -2
- package/dist/{fsharp-ba007c9c.cjs.js.map → fsharp-661f4f18.cjs.js.map} +1 -1
- package/dist/{gdresource-f3068367.cjs.js → gdresource-8fb6a6ad.cjs.js} +2 -2
- package/dist/{gdresource-f3068367.cjs.js.map → gdresource-8fb6a6ad.cjs.js.map} +1 -1
- package/dist/{git-commit-372b638c.cjs.js → git-commit-9373b48b.cjs.js} +2 -2
- package/dist/{git-commit-372b638c.cjs.js.map → git-commit-9373b48b.cjs.js.map} +1 -1
- package/dist/{git-rebase-2cc6f2a3.cjs.js → git-rebase-c3fa2bb9.cjs.js} +2 -2
- package/dist/{git-rebase-2cc6f2a3.cjs.js.map → git-rebase-c3fa2bb9.cjs.js.map} +1 -1
- package/dist/go-85139440.esm.js +1 -0
- package/dist/go-d5ed1b82.cjs.js +2 -0
- package/dist/go-d5ed1b82.cjs.js.map +1 -0
- package/dist/{graphql-74f146e1.cjs.js → graphql-1541cb3c.cjs.js} +2 -2
- package/dist/{graphql-74f146e1.cjs.js.map → graphql-1541cb3c.cjs.js.map} +1 -1
- package/dist/{handlebars-864fcb12.cjs.js → handlebars-39ab86cd.cjs.js} +2 -2
- package/dist/{handlebars-864fcb12.cjs.js.map → handlebars-39ab86cd.cjs.js.map} +1 -1
- package/dist/{http-08501497.cjs.js → http-1cf9a3de.cjs.js} +2 -2
- package/dist/{http-08501497.cjs.js.map → http-1cf9a3de.cjs.js.map} +1 -1
- package/dist/{hxml-bbac80e4.cjs.js → hxml-6d54d760.cjs.js} +2 -2
- package/dist/{hxml-bbac80e4.cjs.js.map → hxml-6d54d760.cjs.js.map} +1 -1
- package/dist/hy-33aa9c6f.cjs.js +2 -0
- package/dist/hy-33aa9c6f.cjs.js.map +1 -0
- package/dist/hy-a7a6e9c3.esm.js +1 -0
- package/dist/{julia-689ac552.cjs.js → julia-0152d8b9.cjs.js} +2 -2
- package/dist/{julia-689ac552.cjs.js.map → julia-0152d8b9.cjs.js.map} +1 -1
- package/dist/{latex-4d76e817.cjs.js → latex-33ebd2ce.cjs.js} +2 -2
- package/dist/{latex-4d76e817.cjs.js.map → latex-33ebd2ce.cjs.js.map} +1 -1
- package/dist/luau-19444703.cjs.js +2 -0
- package/dist/luau-19444703.cjs.js.map +1 -0
- package/dist/luau-b564b070.esm.js +1 -0
- package/dist/{marko-2880d4ee.cjs.js → marko-23ca6223.cjs.js} +2 -2
- package/dist/{marko-2880d4ee.cjs.js.map → marko-23ca6223.cjs.js.map} +1 -1
- package/dist/mdc-05d87356.esm.js +1 -0
- package/dist/mdc-56aefda2.cjs.js +2 -0
- package/dist/mdc-56aefda2.cjs.js.map +1 -0
- package/dist/{mdx-a859ee84.cjs.js → mdx-01dab0d1.cjs.js} +2 -2
- package/dist/{mdx-a859ee84.cjs.js.map → mdx-01dab0d1.cjs.js.map} +1 -1
- package/dist/{mdx-bf2a8fe9.esm.js → mdx-0782bcd8.esm.js} +1 -1
- package/dist/nextflow-11e4899f.esm.js +1 -0
- package/dist/nextflow-2a4bf0cc.cjs.js +2 -0
- package/dist/nextflow-2a4bf0cc.cjs.js.map +1 -0
- package/dist/{nginx-7bc0fc82.cjs.js → nginx-1aabec59.cjs.js} +2 -2
- package/dist/{nginx-7bc0fc82.cjs.js.map → nginx-1aabec59.cjs.js.map} +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js.map +1 -1
- package/dist/nile-accordion/nile-accordion.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +6 -15
- package/dist/nile-avatar/nile-avatar.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.cjs.js.map +1 -1
- package/dist/nile-avatar/nile-avatar.esm.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.esm.js +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +2 -2
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.esm.js +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.cjs.js +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.cjs.js.map +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.esm.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js.map +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.esm.js +3 -3
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +9 -5
- package/dist/nile-card/nile-card.cjs.js +1 -1
- package/dist/nile-card/nile-card.cjs.js.map +1 -1
- package/dist/nile-card/nile-card.esm.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.esm.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.esm.js +2 -6
- package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +2 -2
- package/dist/nile-content-editor/nile-content-editor.cjs.js +1 -1
- package/dist/nile-content-editor/nile-content-editor.cjs.js.map +1 -1
- package/dist/nile-content-editor/nile-content-editor.esm.js +5 -5
- package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
- package/dist/nile-date-picker/nile-date-picker.esm.js +8 -15
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.esm.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.cjs.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.cjs.js.map +1 -1
- package/dist/nile-empty-state/nile-empty-state.esm.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.cjs.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.cjs.js.map +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.esm.js +5 -4
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +2 -0
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js.map +1 -0
- package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -0
- package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
- package/dist/nile-highlighter/nile-highlighter.cjs.js.map +1 -1
- package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
- package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-link/nile-link.cjs.js +1 -1
- package/dist/nile-link/nile-link.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.esm.js +1 -1
- package/dist/nile-list/nile-list.cjs.js +1 -1
- package/dist/nile-list/nile-list.cjs.js.map +1 -1
- package/dist/nile-list/nile-list.esm.js +1 -1
- package/dist/nile-list-item/nile-list-item.cjs.js +1 -1
- package/dist/nile-list-item/nile-list-item.cjs.js.map +1 -1
- package/dist/nile-list-item/nile-list-item.esm.js +1 -1
- package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
- package/dist/nile-loader/nile-loader.test.cjs.js.map +1 -1
- package/dist/nile-loader/nile-loader.test.esm.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
- package/dist/nile-menu/nile-menu.esm.js +2 -5
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
- package/dist/nile-popover/nile-popover.esm.js +4 -4
- package/dist/nile-popup/nile-popup.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.cjs.js.map +1 -1
- package/dist/nile-popup/nile-popup.esm.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
- package/dist/nile-radio-group/nile-radio-group.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +4 -6
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js.map +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.esm.js +1 -1
- package/dist/nile-split-panel/nile-split-panel.cjs.js +1 -1
- package/dist/nile-split-panel/nile-split-panel.cjs.js.map +1 -1
- package/dist/nile-split-panel/nile-split-panel.esm.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
- package/dist/nile-stepper/nile-stepper.esm.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
- package/dist/nile-tab/nile-tab.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +4 -4
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +13 -5
- package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
- package/dist/nile-table-body/nile-table-body.esm.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
- package/dist/nile-tag/nile-tag.esm.js +1 -1
- package/dist/nile-textarea/nile-textarea.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.cjs.js.map +1 -1
- package/dist/nile-textarea/nile-textarea.esm.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
- package/dist/nile-toast/nile-toast.esm.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
- package/dist/nile-tooltip/nile-tooltip.esm.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
- package/dist/nile-tree/nile-tree.esm.js +1 -1
- package/dist/{nim-1cf0460c.cjs.js → nim-55b3acf7.cjs.js} +2 -2
- package/dist/{nim-1cf0460c.cjs.js.map → nim-55b3acf7.cjs.js.map} +1 -1
- package/dist/one-dark-pro-3bcc58f7.cjs.js +2 -0
- package/dist/one-dark-pro-3bcc58f7.cjs.js.map +1 -0
- package/dist/one-dark-pro-4fce25f8.esm.js +1 -0
- package/dist/{razor-0acc551a.cjs.js → razor-57f13c4a.cjs.js} +2 -2
- package/dist/{razor-0acc551a.cjs.js.map → razor-57f13c4a.cjs.js.map} +1 -1
- package/dist/{rst-6b792481.cjs.js → rst-4226018b.cjs.js} +2 -2
- package/dist/{rst-6b792481.cjs.js.map → rst-4226018b.cjs.js.map} +1 -1
- package/dist/{ruby-578b1ee6.cjs.js → ruby-4306ddd1.cjs.js} +2 -2
- package/dist/{ruby-578b1ee6.cjs.js.map → ruby-4306ddd1.cjs.js.map} +1 -1
- package/dist/{shaderlab-606f022b.cjs.js → shaderlab-2234cd06.cjs.js} +2 -2
- package/dist/{shaderlab-606f022b.cjs.js.map → shaderlab-2234cd06.cjs.js.map} +1 -1
- package/dist/{shellsession-cb0df007.cjs.js → shellsession-cd95727e.cjs.js} +2 -2
- package/dist/{shellsession-cb0df007.cjs.js.map → shellsession-cd95727e.cjs.js.map} +1 -1
- package/dist/{sparql-589e0308.cjs.js → sparql-197a828d.cjs.js} +2 -2
- package/dist/{sparql-589e0308.cjs.js.map → sparql-197a828d.cjs.js.map} +1 -1
- package/dist/src/nile-accordion/nile-accordion.d.ts +0 -1
- package/dist/src/nile-accordion/nile-accordion.js +0 -1
- package/dist/src/nile-accordion/nile-accordion.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.d.ts +0 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js +2 -12
- package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
- package/dist/src/nile-avatar/nile-avatar.d.ts +0 -1
- package/dist/src/nile-avatar/nile-avatar.js +0 -1
- package/dist/src/nile-avatar/nile-avatar.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.d.ts +0 -1
- package/dist/src/nile-badge/nile-badge.js +0 -1
- package/dist/src/nile-badge/nile-badge.js.map +1 -1
- package/dist/src/nile-breadcrumb/nile-breadcrumb.d.ts +0 -1
- package/dist/src/nile-breadcrumb/nile-breadcrumb.js +0 -5
- package/dist/src/nile-breadcrumb/nile-breadcrumb.js.map +1 -1
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.d.ts +0 -1
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js +0 -1
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js.map +1 -1
- package/dist/src/nile-button/nile-button.d.ts +0 -1
- package/dist/src/nile-button/nile-button.js +0 -1
- package/dist/src/nile-button/nile-button.js.map +1 -1
- package/dist/src/nile-button-toggle/nile-button-toggle.d.ts +0 -1
- package/dist/src/nile-button-toggle/nile-button-toggle.js +0 -1
- package/dist/src/nile-button-toggle/nile-button-toggle.js.map +1 -1
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.d.ts +0 -1
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js +0 -1
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.d.ts +1 -9
- package/dist/src/nile-calendar/nile-calendar.js +1 -55
- package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.test.js +50 -5
- package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
- package/dist/src/nile-card/nile-card.d.ts +0 -1
- package/dist/src/nile-card/nile-card.js +0 -1
- package/dist/src/nile-card/nile-card.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.d.ts +0 -1
- package/dist/src/nile-checkbox/nile-checkbox.js +0 -1
- package/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.d.ts +0 -1
- package/dist/src/nile-chip/nile-chip.js +0 -5
- package/dist/src/nile-chip/nile-chip.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +7 -4
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-content-editor/nile-content-editor.d.ts +0 -1
- package/dist/src/nile-content-editor/nile-content-editor.js +0 -1
- package/dist/src/nile-content-editor/nile-content-editor.js.map +1 -1
- package/dist/src/nile-date-picker/nile-date-picker.d.ts +0 -1
- package/dist/src/nile-date-picker/nile-date-picker.js +7 -14
- package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
- package/dist/src/nile-dialog/nile-dialog.d.ts +0 -1
- package/dist/src/nile-dialog/nile-dialog.js +0 -1
- package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
- package/dist/src/nile-drawer/nile-drawer.d.ts +0 -1
- package/dist/src/nile-drawer/nile-drawer.js +0 -1
- package/dist/src/nile-drawer/nile-drawer.js.map +1 -1
- package/dist/src/nile-empty-state/nile-empty-state.d.ts +0 -1
- package/dist/src/nile-empty-state/nile-empty-state.js +0 -1
- package/dist/src/nile-empty-state/nile-empty-state.js.map +1 -1
- package/dist/src/nile-form-help-text/nile-form-help-text.d.ts +2 -0
- package/dist/src/nile-form-help-text/nile-form-help-text.js +14 -6
- package/dist/src/nile-form-help-text/nile-form-help-text.js.map +1 -1
- package/dist/src/nile-form-help-text/nile-form-help-text.test.d.ts +1 -0
- package/dist/src/nile-form-help-text/nile-form-help-text.test.js +67 -0
- package/dist/src/nile-form-help-text/nile-form-help-text.test.js.map +1 -0
- package/dist/src/nile-icon-button/nile-icon-button.d.ts +0 -1
- package/dist/src/nile-icon-button/nile-icon-button.js +0 -1
- package/dist/src/nile-icon-button/nile-icon-button.js.map +1 -1
- package/dist/src/nile-input/nile-input.d.ts +0 -1
- package/dist/src/nile-input/nile-input.js +0 -1
- package/dist/src/nile-input/nile-input.js.map +1 -1
- package/dist/src/nile-link/nile-link.d.ts +0 -1
- package/dist/src/nile-link/nile-link.js +0 -1
- package/dist/src/nile-link/nile-link.js.map +1 -1
- package/dist/src/nile-list/nile-list.d.ts +0 -1
- package/dist/src/nile-list/nile-list.js +0 -5
- package/dist/src/nile-list/nile-list.js.map +1 -1
- package/dist/src/nile-list-item/nile-list-item.d.ts +0 -1
- package/dist/src/nile-list-item/nile-list-item.js +0 -1
- package/dist/src/nile-list-item/nile-list-item.js.map +1 -1
- package/dist/src/nile-loader/nile-loader.test.js +5 -0
- package/dist/src/nile-loader/nile-loader.test.js.map +1 -1
- package/dist/src/nile-menu/nile-menu.d.ts +0 -1
- package/dist/src/nile-menu/nile-menu.js +0 -4
- package/dist/src/nile-menu/nile-menu.js.map +1 -1
- package/dist/src/nile-menu-item/nile-menu-item.d.ts +0 -2
- package/dist/src/nile-menu-item/nile-menu-item.js +0 -2
- package/dist/src/nile-menu-item/nile-menu-item.js.map +1 -1
- package/dist/src/nile-option/nile-option.d.ts +0 -2
- package/dist/src/nile-option/nile-option.js +0 -2
- package/dist/src/nile-option/nile-option.js.map +1 -1
- package/dist/src/nile-popover/nile-popover.d.ts +0 -1
- package/dist/src/nile-popover/nile-popover.js +0 -1
- package/dist/src/nile-popover/nile-popover.js.map +1 -1
- package/dist/src/nile-popup/nile-popup.d.ts +0 -2
- package/dist/src/nile-popup/nile-popup.js +0 -2
- package/dist/src/nile-popup/nile-popup.js.map +1 -1
- package/dist/src/nile-radio-group/nile-radio-group.d.ts +0 -1
- package/dist/src/nile-radio-group/nile-radio-group.js +0 -1
- package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +0 -1
- package/dist/src/nile-select/nile-select.js +3 -6
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.d.ts +0 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.js +0 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.js.map +1 -1
- package/dist/src/nile-split-panel/nile-split-panel.d.ts +0 -1
- package/dist/src/nile-split-panel/nile-split-panel.js +0 -1
- package/dist/src/nile-split-panel/nile-split-panel.js.map +1 -1
- package/dist/src/nile-stepper/nile-stepper.d.ts +0 -1
- package/dist/src/nile-stepper/nile-stepper.js +0 -1
- package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
- package/dist/src/nile-tab/nile-tab.d.ts +0 -1
- package/dist/src/nile-tab/nile-tab.js +0 -1
- package/dist/src/nile-tab/nile-tab.js.map +1 -1
- package/dist/src/nile-tab-group/nile-tab-group.d.ts +1 -2
- package/dist/src/nile-tab-group/nile-tab-group.js +5 -10
- package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
- package/dist/src/nile-tab-group/nile-tab-group.test.js +56 -22
- package/dist/src/nile-tab-group/nile-tab-group.test.js.map +1 -1
- package/dist/src/nile-table-body/nile-table-body.d.ts +0 -1
- package/dist/src/nile-table-body/nile-table-body.js +0 -1
- package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
- package/dist/src/nile-tag/nile-tag.d.ts +0 -1
- package/dist/src/nile-tag/nile-tag.js +0 -1
- package/dist/src/nile-tag/nile-tag.js.map +1 -1
- package/dist/src/nile-textarea/nile-textarea.d.ts +0 -1
- package/dist/src/nile-textarea/nile-textarea.js +0 -1
- package/dist/src/nile-textarea/nile-textarea.js.map +1 -1
- package/dist/src/nile-toast/nile-toast.d.ts +0 -1
- package/dist/src/nile-toast/nile-toast.js +0 -1
- package/dist/src/nile-toast/nile-toast.js.map +1 -1
- package/dist/src/nile-tooltip/nile-tooltip.d.ts +0 -1
- package/dist/src/nile-tooltip/nile-tooltip.js +0 -1
- package/dist/src/nile-tooltip/nile-tooltip.js.map +1 -1
- package/dist/src/nile-tree/nile-tree.d.ts +0 -1
- package/dist/src/nile-tree/nile-tree.js +0 -1
- package/dist/src/nile-tree/nile-tree.js.map +1 -1
- package/dist/{svelte-2ae868b6.cjs.js → svelte-5a90df12.cjs.js} +2 -2
- package/dist/{svelte-2ae868b6.cjs.js.map → svelte-5a90df12.cjs.js.map} +1 -1
- package/dist/{svelte-ac03a3ac.esm.js → svelte-cb8564e6.esm.js} +1 -1
- package/dist/{system-verilog-7d2d7268.cjs.js → system-verilog-b3e652eb.cjs.js} +2 -2
- package/dist/{system-verilog-7d2d7268.cjs.js.map → system-verilog-b3e652eb.cjs.js.map} +1 -1
- package/dist/{system-verilog-2d49210f.esm.js → system-verilog-c1c6377f.esm.js} +1 -1
- package/dist/{templ-f2d0dadd.esm.js → templ-13492ead.esm.js} +1 -1
- package/dist/{templ-2a2d64b7.cjs.js → templ-4425132d.cjs.js} +2 -2
- package/dist/{templ-2a2d64b7.cjs.js.map → templ-4425132d.cjs.js.map} +1 -1
- package/dist/{tex-8addc455.cjs.js → tex-d609b400.cjs.js} +2 -2
- package/dist/{tex-8addc455.cjs.js.map → tex-d609b400.cjs.js.map} +1 -1
- package/dist/{ts-tags-e56ee3ee.cjs.js → ts-tags-ba7eb9e3.cjs.js} +2 -2
- package/dist/{ts-tags-e56ee3ee.cjs.js.map → ts-tags-ba7eb9e3.cjs.js.map} +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/{twig-911808dc.cjs.js → twig-e9bb57f2.cjs.js} +2 -2
- package/dist/{twig-911808dc.cjs.js.map → twig-e9bb57f2.cjs.js.map} +1 -1
- package/dist/{vue-9b06428b.cjs.js → vue-16d91bfa.cjs.js} +2 -2
- package/dist/{vue-9b06428b.cjs.js.map → vue-16d91bfa.cjs.js.map} +1 -1
- package/dist/{vue-html-ca1dd5bf.cjs.js → vue-html-432cdd7f.cjs.js} +2 -2
- package/dist/{vue-html-ca1dd5bf.cjs.js.map → vue-html-432cdd7f.cjs.js.map} +1 -1
- package/dist/wikitext-2748811a.cjs.js +2 -0
- package/dist/wikitext-2748811a.cjs.js.map +1 -0
- package/dist/wikitext-c9071578.esm.js +1 -0
- package/package.json +2 -2
- package/src/nile-accordion/nile-accordion.ts +0 -1
- package/src/nile-auto-complete/nile-auto-complete.ts +2 -13
- package/src/nile-avatar/nile-avatar.ts +0 -2
- package/src/nile-badge/nile-badge.ts +0 -2
- package/src/nile-breadcrumb/nile-breadcrumb.ts +0 -2
- package/src/nile-breadcrumb-item/nile-breadcrumb-item.ts +0 -2
- package/src/nile-button/nile-button.ts +0 -2
- package/src/nile-button-toggle/nile-button-toggle.ts +0 -2
- package/src/nile-button-toggle-group/nile-button-toggle-group.ts +0 -2
- package/src/nile-calendar/nile-calendar.test.ts +64 -5
- package/src/nile-calendar/nile-calendar.ts +2 -69
- package/src/nile-card/nile-card.ts +0 -2
- package/src/nile-checkbox/nile-checkbox.ts +0 -2
- package/src/nile-chip/nile-chip.ts +0 -6
- package/src/nile-code-editor/nile-code-editor.ts +6 -5
- package/src/nile-content-editor/nile-content-editor.ts +0 -2
- package/src/nile-date-picker/nile-date-picker.ts +7 -15
- package/src/nile-dialog/nile-dialog.ts +0 -2
- package/src/nile-drawer/nile-drawer.ts +0 -2
- package/src/nile-empty-state/nile-empty-state.ts +0 -2
- package/src/nile-form-help-text/nile-form-help-text.test.ts +86 -0
- package/src/nile-form-help-text/nile-form-help-text.ts +17 -15
- package/src/nile-icon-button/nile-icon-button.ts +0 -2
- package/src/nile-input/nile-input.ts +0 -2
- package/src/nile-link/nile-link.ts +0 -2
- package/src/nile-list/nile-list.ts +0 -2
- package/src/nile-list-item/nile-list-item.ts +0 -2
- package/src/nile-loader/nile-loader.test.ts +6 -0
- package/src/nile-menu/nile-menu.ts +0 -6
- package/src/nile-menu-item/nile-menu-item.ts +0 -3
- package/src/nile-option/nile-option.ts +0 -3
- package/src/nile-popover/nile-popover.ts +0 -2
- package/src/nile-popup/nile-popup.ts +0 -3
- package/src/nile-radio-group/nile-radio-group.ts +0 -2
- package/src/nile-select/nile-select.ts +3 -7
- package/src/nile-slide-toggle/nile-slide-toggle.ts +0 -2
- package/src/nile-split-panel/nile-split-panel.ts +0 -2
- package/src/nile-stepper/nile-stepper.ts +0 -2
- package/src/nile-tab/nile-tab.ts +0 -2
- package/src/nile-tab-group/nile-tab-group.test.ts +71 -29
- package/src/nile-tab-group/nile-tab-group.ts +6 -14
- package/src/nile-table-body/nile-table-body.ts +0 -2
- package/src/nile-tag/nile-tag.ts +0 -2
- package/src/nile-textarea/nile-textarea.ts +0 -2
- package/src/nile-toast/nile-toast.ts +0 -2
- package/src/nile-tooltip/nile-tooltip.ts +0 -2
- package/src/nile-tree/nile-tree.ts +0 -2
- package/tsconfig.json +1 -0
- package/vscode-html-custom-data.json +3722 -60
- package/dist/abap-1e9762d1.esm.js +0 -1
- package/dist/abap-3b3fe406.cjs.js +0 -2
- package/dist/abap-3b3fe406.cjs.js.map +0 -1
- package/dist/catppuccin-frappe-c0734345.esm.js +0 -1
- package/dist/catppuccin-frappe-eb77e95d.cjs.js +0 -2
- package/dist/catppuccin-frappe-eb77e95d.cjs.js.map +0 -1
- package/dist/catppuccin-latte-471f76fc.cjs.js +0 -2
- package/dist/catppuccin-latte-471f76fc.cjs.js.map +0 -1
- package/dist/catppuccin-latte-d798493f.esm.js +0 -1
- package/dist/catppuccin-macchiato-7ac78e7e.cjs.js +0 -2
- package/dist/catppuccin-macchiato-7ac78e7e.cjs.js.map +0 -1
- package/dist/catppuccin-macchiato-d78b2ec2.esm.js +0 -1
- package/dist/catppuccin-mocha-3b00f8d6.cjs.js +0 -2
- package/dist/catppuccin-mocha-3b00f8d6.cjs.js.map +0 -1
- package/dist/catppuccin-mocha-6a189a57.esm.js +0 -1
- package/dist/cobol-4ed2b235.esm.js +0 -1
- package/dist/cobol-c428fca2.cjs.js +0 -2
- package/dist/cobol-c428fca2.cjs.js.map +0 -1
- package/dist/go-4c55ae2b.esm.js +0 -1
- package/dist/go-9bee484b.cjs.js +0 -2
- package/dist/go-9bee484b.cjs.js.map +0 -1
- package/dist/hy-431f15f8.cjs.js +0 -2
- package/dist/hy-431f15f8.cjs.js.map +0 -1
- package/dist/hy-5e43d6c1.esm.js +0 -1
- package/dist/luau-0b166b7a.cjs.js +0 -2
- package/dist/luau-0b166b7a.cjs.js.map +0 -1
- package/dist/luau-7d7eaa97.esm.js +0 -1
- package/dist/mdc-13285ad6.esm.js +0 -1
- package/dist/mdc-a3fe82c5.cjs.js +0 -2
- package/dist/mdc-a3fe82c5.cjs.js.map +0 -1
- package/dist/nextflow-35e5a63d.esm.js +0 -1
- package/dist/nextflow-c666e91b.cjs.js +0 -2
- package/dist/nextflow-c666e91b.cjs.js.map +0 -1
- package/dist/nile-split-panel/nile-split-panel.test.cjs.js +0 -2
- package/dist/nile-split-panel/nile-split-panel.test.cjs.js.map +0 -1
- package/dist/nile-split-panel/nile-split-panel.test.esm.js +0 -1
- package/dist/nile-stepper/nile-stepper.test.cjs.js +0 -2
- package/dist/nile-stepper/nile-stepper.test.cjs.js.map +0 -1
- package/dist/nile-stepper/nile-stepper.test.esm.js +0 -1
- package/dist/nile-tree/nile-tree.test.cjs.js +0 -2
- package/dist/nile-tree/nile-tree.test.cjs.js.map +0 -1
- package/dist/nile-tree/nile-tree.test.esm.js +0 -1
- package/dist/one-dark-pro-9477257e.cjs.js +0 -2
- package/dist/one-dark-pro-9477257e.cjs.js.map +0 -1
- package/dist/one-dark-pro-deb4f5e9.esm.js +0 -1
- package/dist/src/nile-split-panel/nile-split-panel.test.d.ts +0 -1
- package/dist/src/nile-split-panel/nile-split-panel.test.js +0 -4
- package/dist/src/nile-split-panel/nile-split-panel.test.js.map +0 -1
- package/dist/src/nile-stepper/nile-stepper.test.d.ts +0 -4
- package/dist/src/nile-stepper/nile-stepper.test.js +0 -7
- package/dist/src/nile-stepper/nile-stepper.test.js.map +0 -1
- package/dist/src/nile-tree/nile-tree.test.d.ts +0 -2
- package/dist/src/nile-tree/nile-tree.test.js +0 -5
- package/dist/src/nile-tree/nile-tree.test.js.map +0 -1
- package/dist/wikitext-b9a7e67b.cjs.js +0 -2
- package/dist/wikitext-b9a7e67b.cjs.js.map +0 -1
- package/dist/wikitext-c06489b3.esm.js +0 -1
- package/src/nile-split-panel/nile-split-panel.test.ts +0 -7
- package/src/nile-stepper/nile-stepper.test.ts +0 -12
- package/src/nile-tree/nile-tree.test.ts +0 -9
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-button-toggle-group.js","sourceRoot":"","sources":["../../../src/nile-button-toggle-group/nile-button-toggle-group.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAa,IAAI,EAAE,QAAQ,EAAiC,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACtD,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AACxE,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD;;;;;GAKG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,WAAW;IAA/C;;
|
1
|
+
{"version":3,"file":"nile-button-toggle-group.js","sourceRoot":"","sources":["../../../src/nile-button-toggle-group/nile-button-toggle-group.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement, query, queryAll } from 'lit/decorators.js';\nimport {styles} from './nile-button-toggle-group.css';\nimport NileButtonToggle from '../nile-button-toggle/nile-button-toggle';\nimport NileElement from '../internal/nile-element';\n/**\n * Nile icon component.\n *\n * @tag nile-button-toggle-group\n *\n */\n@customElement('nile-button-toggle-group')\nexport class NileButtonToggleGroup extends NileElement {\n /**\n * The styles for ButtonToggleGroup\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @queryAll('nile-button-toggle') private toggles!: NodeListOf<NileButtonToggle>;\n\n @query('slot:not([name])') private defaultSlot!: HTMLSlotElement;\n\n @property({ type: Boolean, reflect: true }) public disabled: boolean = false;\n\n @property() value:String[]|String='';\n\n @property({type:Boolean}) multiple:boolean=false;\n\n @property({type: Boolean}) disableUserInput: Boolean = false;\n\n @property({type:Boolean}) emptyDefault:boolean=false;\n\n firstUpdated() {\n this.defaultSlot.addEventListener('slotchange', () =>\n this.updateTogglePositions()\n );\n this.addEventListener('nile-toggle-change', this.handleToggle);\n this.updateTogglePositions();\n if (!this.value) {\n if (!this.multiple) {\n const toggles = Array.from(this.querySelectorAll<NileButtonToggle>('nile-button-toggle'));\n const activeToggle = toggles.find(e => e.active && !e.disabled);\n if (activeToggle) this.value = activeToggle.value;\n else if(toggles.length && !this.emptyDefault && !this.disabled) this.value = toggles[0].value;\n else this.value = '';\n }\n else this.value = [];\n }\n this.setBtnState()\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>) {\n super.updated(changedProperties);\n if (changedProperties.has('disabled')) {\n this.updateDisabledState();\n }\n if(changedProperties.has('multiple')){\n if(!this.value) this.value=this.multiple?[]:''\n this.setBtnState()\n }\n if(changedProperties.has('value')){\n this.setBtnState()\n }\n }\n\n private updateDisabledState() {\n const assignedNodes = this.defaultSlot.assignedNodes({ flatten: true });\n const toggles = assignedNodes.filter(\n node => node instanceof NileButtonToggle\n ) as NileButtonToggle[];\n\n toggles.forEach(toggle => {\n if (!toggle.disabled) {\n toggle.disabled = this.disabled;\n }\n });\n }\n\n updateTogglePositions() {\n const assignedNodes = this.defaultSlot.assignedNodes({ flatten: true });\n const toggles = assignedNodes.filter(\n node => node instanceof NileButtonToggle\n ) as NileButtonToggle[];\n\n toggles.forEach((toggle, index) => {\n toggle.initial = index === 0;\n toggle.middle = index > 0 && index < toggles.length - 1;\n toggle.end = index === toggles.length - 1;\n });\n }\n\n handleToggle(event: CustomEvent) {\n event.stopPropagation()\n if (this.disabled) return;\n if(!this.multiple && event.detail.value == this.value) return;\n if(this.disableUserInput) return;\n this.setValue(event.detail.value);\n this.emit('nile-change', { value: this.value });\n }\n\n setValue(btnValue:string){\n if(this.multiple && btnValue){\n // @ts-ignore\n if(this.value.includes(btnValue)) this.value=this.value.filter(e=>e!=btnValue)\n else this.value=[...this.value,btnValue]\n }\n else{\n this.value=btnValue;\n }\n this.setBtnState()\n }\n\n setBtnState(){\n const toggles = Array.from(this.querySelectorAll<NileButtonToggle>('nile-button-toggle'));\n if(this.multiple){\n toggles.forEach(btn=>{\n if(this.value.includes(btn.value)) btn.active=true;\n else btn.active=false;\n })\n }\n else toggles.forEach(btn=>{\n if(btn.value==this.value) btn.active=true;\n else btn.active=false;\n })\n }\n\n /**\n * Render method\n * @slot This is a slot test\n */\n public render(): TemplateResult {\n return html`<slot> </slot>`;\n }\n\n /* #endregion */\n}\n\nexport default NileButtonToggleGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-button-toggle-group': NileButtonToggleGroup;\n }\n}\n"]}
|
@@ -24,7 +24,6 @@ export declare class NileCalendar extends NileElement {
|
|
24
24
|
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
25
25
|
*/
|
26
26
|
static get styles(): CSSResultArray;
|
27
|
-
protected BUBBLES: boolean;
|
28
27
|
valueAttribute: string | null;
|
29
28
|
allowedDates: string;
|
30
29
|
range: boolean;
|
@@ -99,7 +98,7 @@ export declare class NileCalendar extends NileElement {
|
|
99
98
|
* Function to handle relative date selection
|
100
99
|
*/
|
101
100
|
handleDurationChange(event: CustomEvent): void;
|
102
|
-
handleUnitChange(event:
|
101
|
+
handleUnitChange(event: CustomEvent): void;
|
103
102
|
handleTimeValueClick(unit: TimeUnits, value: number, event: any): void;
|
104
103
|
createRelativePeriod(unit: String, value: number): {
|
105
104
|
startDate: Date;
|
@@ -115,17 +114,10 @@ export declare class NileCalendar extends NileElement {
|
|
115
114
|
private handleEndTimeInput;
|
116
115
|
private parseTime;
|
117
116
|
private isValidTimeInput;
|
118
|
-
private handleStartDateInput;
|
119
|
-
private handleEndDateInput;
|
120
|
-
private isValidDateInput;
|
121
|
-
private parseDate;
|
122
|
-
private formatDateRange;
|
123
|
-
private formatDate;
|
124
117
|
private formatTime;
|
125
118
|
private nextMonth;
|
126
119
|
private prevMonth;
|
127
120
|
private confimRange;
|
128
|
-
convertTZ(date: Date, tzString: any): Date;
|
129
121
|
onTypeChange(event: CustomEvent): void;
|
130
122
|
getUTCDate(dateStr: any): Date;
|
131
123
|
emitChangedData(data: {
|
@@ -20,7 +20,6 @@ import NileElement from '../internal/nile-element';
|
|
20
20
|
let NileCalendar = class NileCalendar extends NileElement {
|
21
21
|
constructor() {
|
22
22
|
super(...arguments);
|
23
|
-
this.BUBBLES = false;
|
24
23
|
this.valueAttribute = null;
|
25
24
|
this.allowedDates = JSON.stringify({});
|
26
25
|
this.range = false;
|
@@ -126,7 +125,7 @@ let NileCalendar = class NileCalendar extends NileElement {
|
|
126
125
|
${this.allowClear ?
|
127
126
|
html `
|
128
127
|
<nile-button
|
129
|
-
class="
|
128
|
+
class="clear-button"
|
130
129
|
variant="secondary"
|
131
130
|
?disabled="${!this.startDate || !this.endDate}"
|
132
131
|
@click="${this.clearDate}"
|
@@ -580,56 +579,6 @@ let NileCalendar = class NileCalendar extends NileElement {
|
|
580
579
|
const regex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;
|
581
580
|
return regex.test(input);
|
582
581
|
}
|
583
|
-
handleStartDateInput(event) {
|
584
|
-
const date = this.parseDate(event.detail.value);
|
585
|
-
if (!this.isValidDateInput(date)) {
|
586
|
-
this.startDate = null;
|
587
|
-
}
|
588
|
-
if (date && (!this.endDate || date <= this.endDate)) {
|
589
|
-
this.startDate = date;
|
590
|
-
}
|
591
|
-
else {
|
592
|
-
this.startDate = null;
|
593
|
-
this.endDate = null;
|
594
|
-
}
|
595
|
-
}
|
596
|
-
handleEndDateInput(event) {
|
597
|
-
const date = this.parseDate(event.detail.value);
|
598
|
-
if (!this.isValidDateInput(date)) {
|
599
|
-
this.endDate = null;
|
600
|
-
}
|
601
|
-
if (date && (!this.startDate || date >= this.startDate)) {
|
602
|
-
this.endDate = date;
|
603
|
-
}
|
604
|
-
else {
|
605
|
-
this.endDate = null;
|
606
|
-
}
|
607
|
-
}
|
608
|
-
isValidDateInput(input) {
|
609
|
-
const regex = /^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/\d{4}$/;
|
610
|
-
return regex.test(input);
|
611
|
-
}
|
612
|
-
parseDate(dateString) {
|
613
|
-
const [day, month, year] = dateString.split('/').map(Number);
|
614
|
-
const date = new Date(year, month - 1, day);
|
615
|
-
return !isNaN(date.getTime()) ? date : null;
|
616
|
-
}
|
617
|
-
formatDateRange(value) {
|
618
|
-
if (!value) {
|
619
|
-
return value;
|
620
|
-
}
|
621
|
-
if (!value.startDate || !value.endDate)
|
622
|
-
return '';
|
623
|
-
return `${this.formatDate(value.startDate)} - ${this.formatDate(value.endDate)}`;
|
624
|
-
}
|
625
|
-
formatDate(date) {
|
626
|
-
if (!date)
|
627
|
-
return '';
|
628
|
-
const day = String(date.getDate()).padStart(2, '0');
|
629
|
-
const month = String(date.getMonth() + 1).padStart(2, '0');
|
630
|
-
const year = date.getFullYear();
|
631
|
-
return `${day}/${month}/${year}`;
|
632
|
-
}
|
633
582
|
formatTime(date) {
|
634
583
|
if (!date)
|
635
584
|
return '';
|
@@ -664,9 +613,6 @@ let NileCalendar = class NileCalendar extends NileElement {
|
|
664
613
|
endDate: this.endDate,
|
665
614
|
});
|
666
615
|
}
|
667
|
-
convertTZ(date, tzString) {
|
668
|
-
return new Date((typeof date === 'string' ? new Date(date) : date).toLocaleString('en-US', { timeZone: tzString }));
|
669
|
-
}
|
670
616
|
onTypeChange(event) {
|
671
617
|
this.type = event.detail.value;
|
672
618
|
this.emit('nile-type-change', { value: this.type });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-calendar.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n property,\n CSSResultArray,\n TemplateResult,\n nothing\n} from 'lit-element';\nimport { customElement, state } from 'lit/decorators.js';\nimport { styles } from './nile-calendar.css';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { PropertyValueMap } from 'lit';\ntype NileCalendarDateRange={ startDate: string, endDate: string }\ntype TimeUnits= 'minutes'|'hours'|'days'|'weeks'|'months';\n/**\n * Nile icon component.\n *\n * @tag nile-calendar\n *\n */\n@customElement('nile-calendar')\nexport class NileCalendar extends NileElement {\n /**\n * The styles for NileCalendar\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n protected override BUBBLES: boolean=false;\n\n\n @property({ type: String, attribute: 'value' }) valueAttribute: | string | null = null;\n\n @property({ type: String, attribute:true, reflect:true }) allowedDates: string = JSON.stringify({});\n\n @property({ type: Boolean, reflect: true }) range = false;\n\n @property({ type: Boolean, attribute: true, reflect:true }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: String }) selectedUnit: TimeUnits;\n\n @property({ type: Number }) selectedValue: number;\n\n @property({ type: Array, attribute: 'hide-duration-fields' }) hideDurationFields: String[] = [];\n \n @property({ type: Boolean}) showManualInputs :boolean=false;\n\n @state() startDate: Date | null = null;\n\n @state() endDate: Date | null = null;\n\n @state() isSelectingStart = true;\n\n @state() hideInput: Boolean = false;\n\n @state() value: Date | null;\n\n @state() currentMonth: number = new Date().getMonth();\n\n @state() currentYear: number = new Date().getFullYear();\n\n @state() allowedDatesLocal: NileCalendarDateRange | any = null;\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeValue();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('valueAttribute')) {\n if(!this.valueAttribute){\n this.value=null;\n this.startDate=null;\n this.endDate=null;\n this.isSelectingStart=true;\n }\n const date = new Date(this.valueAttribute || '');\n if (!isNaN(date.getTime())) {\n const offset = date.getTimezoneOffset();\n this.value = new Date(date.getTime() - offset * 60 * 1000);\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n this.initializeValue();\n }\n }\n\n @watch('allowedDates')\n checkValidAllowedDate() {\n let newDateRange: NileCalendarDateRange | null;\n try {\n newDateRange=JSON.parse(this.allowedDates);\n } catch (error) {\n newDateRange=null;\n }\n if (!newDateRange || Object.keys(newDateRange).length == 0) {\n this.allowedDatesLocal=null;\n return;\n }\n this.hideInput=true;\n const startDate = this.getUTCDate(newDateRange.startDate)\n const endDate = this.getUTCDate(newDateRange.endDate)\n\n if (startDate > endDate) {\n console.error('StartDate must be greater than endDate');\n }\n else\n {\n this.allowedDatesLocal=newDateRange;\n }\n }\n \n\n /**\n * Render method\n */\n render(): TemplateResult {\n return html`\n <div\n class=${classMap({\n base:true,\n base__range:this.range,\n })}\n >\n <div class=${classMap({\n \"calendar-config\":true,\n \"hidden\": !this.range || (this.range && this.hideTypes)\n })}>\n <div class=\"calendar-switcher\">\n <nile-tab-group centered @nile-tab-show=\"${this.onTypeChange}\" value=\"${this.type}\">\n <nile-tab slot=\"nav\" panel=\"absolute\">Absolute</nile-tab>\n <nile-tab slot=\"nav\" panel=\"relative\">Relative</nile-tab>\n </nile-tab-group>\n </div>\n </div>\n\n ${this.type == 'relative' ? this.renderRelativeCalendar():''}\n ${this.type == 'absolute' ? this.renderAbsoluteCalendar():''}\n\n ${!this.range?'':html`\n <div class=\"button-container\">\n ${this.allowClear?\n html`\n <nile-button \n class=\"apply-button\"\n variant=\"secondary\"\n ?disabled=\"${ !this.startDate || !this.endDate }\"\n @click=\"${this.clearDate}\"\n > Clear</nile-button>`:nothing\n }\n <nile-button \n class=\"apply-button\" \n ?disabled=\"${ !this.startDate || !this.endDate }\" \n @click=\"${this.confimRange}\"\n > Apply</nile-button>\n </div>\n `}\n </div>\n `;\n }\n\n /**\n * @returns HTML content for absolute calendar\n */\n renderAbsoluteCalendar(){\n return html`\n <div class=\"calendar-wrapper\">\n <div class=\"calendar-container\">\n ${this.renderMonth(\n this.currentYear,\n this.currentMonth,\n this.getDaysArray(this.currentYear, this.currentMonth)\n )}\n </div>\n </div>\n ${this.range ? html`\n <div class=\"calender-input ${this.showManualInputs ? '' : 'hidden'}\" >\n <div class=\"from\">\n <nile-input \n label=\"From\"\n class=\"manual-input\" \n value=\"${this.formatTime(this.startDate)}\" \n placeholder=\"HH:MM:SS\" @nile-change=\"${this.handleStartTimeInput}\"\n > </nile-input>\n </div>\n\n <div class=\"from\">\n <nile-input \n label=\"To\"\n class=\"manual-input\" \n value=\"${this.formatTime(this.endDate)}\" \n placeholder=\"HH:MM:SS\" @nile-change=\"${this.handleEndTimeInput}\"\n > </nile-input>\n </div>\n </div>\n `:''}\n `\n }\n\n /**\n * @returns HTML content for relative calendar\n */\n renderRelativeCalendar(){\n return html`\n <div class=\"units-wrapper\">\n <div class=\"unit-container\">\n ${this.hideDurationFields?.includes('minutes')?'':html`\n <div class=\"duration-name\">Minutes</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('minutes', [1, 5, 15, 30, 45])}\n </div>\n `}\n\n ${this.hideDurationFields?.includes('hours')?'':html`\n <div class=\"duration-name\">Hours</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('hours', [1, 2, 3, 6, 8, 12])}\n </div>\n `}\n \n ${this.hideDurationFields?.includes('days')?'':html`\n <div class=\"duration-name\">Days</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('days', [1, 2, 3, 4, 5, 6])}\n </div>\n `}\n \n ${this.hideDurationFields?.includes('weeks')?'':html`\n <div class=\"duration-name\">Weeks</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('weeks', [1, 2, 4, 6])}\n </div>\n `}\n \n ${this.hideDurationFields?.includes('months')?'':html`\n <div class=\"duration-name\">Months</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('months', [3, 6, 12, 15])}\n </div>\n `}\n </div>\n </div>\n \n ${this.range ? html`\n <div>\n <div class=\"unit-input-container\">\n <nile-input \n class=\"manual-input duration-input\" \n label=\"Duration\"\n inputmode=\"numeric\"\n type=\"number\"\n value=\"${this.selectedValue}\" \n @nile-change=\"${this.handleDurationChange}\"\n placeholder=\"Enter Value\"\n ></nile-input>\n\n <nile-select class=\"manual-input time-input\" \n label=\"Unit of time\" \n value=\"${ this.selectedUnit }\"\n @nile-change=\"${this.handleUnitChange}\"\n >\n <nile-option value=\"minutes\" class=\"${this.hideDurationFields?.includes('minutes')?'hidden':''}\">Minutes</nile-option>\n <nile-option value=\"hours\" class=\"${this.hideDurationFields?.includes('hours')?'hidden':''}\"> Hours </nile-option>\n <nile-option value=\"days\" class=\"${this.hideDurationFields?.includes('days')?'hidden':''}\">Days</nile-option>\n <nile-option value=\"weeks\" class=\"${this.hideDurationFields?.includes('weeks')?'hidden':''}\">Weeks</nile-option>\n <nile-option value=\"months\" class=\"${this.hideDurationFields?.includes('months')?'hidden':''}\"> Months </nile-option>\n </nile-select>\n </div>\n </div>\n `:''}\n `\n }\n \n /**\n * \n * @param unit \n * @param values \n * @returns html for the option\n */\n renderTimeValues(unit: TimeUnits, values: any[]) {\n return values.map(\n value =>\n html`\n <div\n class=\"duration__value ${this.selectedUnit === unit && this.selectedValue === value ? 'duration__value--selected':''}\"\n @click=${(e: any) => this.handleTimeValueClick(unit, value, e)}\n >${value}\n </div>`\n );\n }\n\n /**\n * \n * @param year \n * @param month \n * @param daysArray \n * @returns HTML for rendered month\n */\n private renderMonth(\n year: number,\n month: number,\n daysArray: number[]\n ): TemplateResult {\n const firstDay = new Date(year, month, 1).getDay();\n const lastDay = new Date(year, month + 1, 0).getDay();\n const prevMonthDays = this.getDaysArray(\n month === 0 ? year - 1 : year,\n month === 0 ? 11 : month - 1\n );\n const nextMonthDays = this.getDaysArray(\n month === 11 ? year + 1 : year,\n month === 11 ? 0 : month + 1\n );\n const fillerDaysBefore = prevMonthDays.slice(\n prevMonthDays.length - firstDay\n );\n const fillerDaysAfter = nextMonthDays.slice(0, 6 - lastDay);\n const allDays = [...fillerDaysBefore, ...daysArray, ...fillerDaysAfter];\n\n const isSelectedDate = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return '';\n\n if (!this.range && this.value) {\n const isSelected =\n day === this.value.getDate() &&\n month === this.value.getMonth() &&\n year === this.value.getFullYear();\n if (isSelected) return 'selected-date';\n }\n\n const isStartDate =\n this.startDate &&\n day === this.startDate.getDate() &&\n month === this.startDate.getMonth() &&\n year === this.startDate.getFullYear();\n const isEndDate =\n this.endDate &&\n day === this.endDate.getDate() &&\n month === this.endDate.getMonth() &&\n year === this.endDate.getFullYear();\n\n return isStartDate ? 'range-start' : isEndDate ? 'range-end' : '';\n };\n\n const isInRange = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return false;\n if (this.startDate && this.endDate) {\n const date = new Date(year, month, day);\n return date >= this.startDate && date <= this.endDate;\n }\n return false;\n };\n\n const isCurrentDate = (day: number, month: number, year: number) => {\n const today = new Date();\n return (\n day === today.getDate() &&\n month + 1 === today.getMonth() + 1 &&\n year === today.getFullYear()\n );\n };\n\n return html`\n <div class=\"calendar\">\n <div class=\"calendar-header\">\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"arrowleft\"\n color=\"black\"\n @click=\"${this.prevMonth}\"\n >\n </nile-icon>\n <span\n >${new Date(year, month).toLocaleString('default', {\n month: 'long',\n })}\n ${year}</span\n >\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"arrowright\"\n color=\"black\"\n @click=\"${this.nextMonth}\"\n >\n </nile-icon>\n </div>\n <div class=\"days_container\">\n <div class=\"day_name\">Su</div>\n <div class=\"day_name\">Mo</div>\n <div class=\"day_name\">Tu</div>\n <div class=\"day_name\">We</div>\n <div class=\"day_name\">Th</div>\n <div class=\"day_name\">Fr</div>\n <div class=\"day_name\">Sa</div>\n\n ${allDays.map((day, index) => {\n const isCurrentMonth =\n index >= fillerDaysBefore.length &&\n index < fillerDaysBefore.length + daysArray.length;\n const datePlacement:''|'selected-date'|'range-start'|'range-end' = isSelectedDate(day, month, year, isCurrentMonth)\n const classMapObj:any={\n 'day_date' : true,\n 'not-allowed' : !this.isAllowedDate(day, month, year),\n 'in-range' : isInRange(day, month, year, isCurrentMonth) ,\n 'filler' : !isCurrentMonth,\n }\n if(datePlacement) classMapObj[datePlacement]=true\n \n return html` \n <div\n class=${classMap(classMapObj)}\n @click=\"${() => { if (isCurrentMonth) this.selectDate(day, month, year)}}\"\n >\n <span style=\"position:relative;\">\n ${day}\n ${isCurrentDate(day, month, year) && isCurrentMonth?html`<div class=\"current__date__dot\"></div>`:nothing}\n </span>\n </div>`;\n })}\n </div>\n </div>\n `;\n }\n\n /**\n * Function to validate if date is not in allowedDates range\n * @param day \n * @param month \n * @param year \n * @returns \n */\n isAllowedDate(day: number, month: number, year: number) {\n if (!this.allowedDatesLocal) {\n return true;\n }\n const dateToCheck = new Date(Date.UTC(year, month, day));\n const startDate = this.getUTCDate(this.allowedDatesLocal.startDate)\n const endDate = this.getUTCDate(this.allowedDatesLocal.endDate)\n endDate.setUTCHours(23, 59, 59, 999);\n const isWithinRange = dateToCheck >= startDate && dateToCheck <= endDate;\n return isWithinRange;\n }\n\n clearDate(){\n if(this.range){\n this.valueAttribute='';\n this.startDate=null;\n this.endDate=null;\n }\n else{\n this.value=null;\n }\n this.emit('nile-clear')\n }\n\n /**\n * @function handle_date-click/select\n * @param day \n * @param month \n * @param year \n */\n selectDate(day: number, month: number, year: number): void {\n const selectedDate = new Date(year, month, day);\n\n if (this.range) {\n if (this.startDate && this.endDate) {\n this.startDate = null;\n this.endDate = null;\n }\n\n if (this.isSelectingStart) {\n this.startDate = selectedDate;\n if (this.endDate && selectedDate > this.endDate) {\n this.endDate = null;\n }\n this.isSelectingStart = false;\n } else {\n this.isSelectingStart = true;\n\n if (this.startDate && selectedDate < this.startDate) {\n this.startDate = selectedDate;\n this.endDate = null;\n this.isSelectingStart = false;\n } else {\n const endDate = selectedDate;\n endDate.setHours(23, 59, 59, 999);\n this.endDate = endDate;\n }\n }\n } else {\n if(String(this.value)==String(selectedDate) && this.doubleClickUnselect){\n this.clearDate()\n return\n }\n this.value = selectedDate;\n this.emitChangedData({ value: this.value });\n }\n }\n\n /**\n * Function to be called on initialization to set all other properties\n */\n initializeValue() {\n if (this.range) {\n try {\n const rangeValue = JSON.parse(this.valueAttribute || '');\n this.startDate = new Date(rangeValue.startDate);\n this.endDate = new Date(rangeValue.endDate);\n\n // Convert to local time\n this.startDate = new Date(this.startDate.getTime());\n this.endDate = new Date(this.endDate.getTime());\n\n this.value = null;\n } catch (e) {\n // console.error('Invalid range value');\n }\n } else {\n if (this.valueAttribute) {\n let date: Date = new Date(this.valueAttribute);\n\n date = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n\n if (!isNaN(date.getTime())) {\n this.value = date;\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n }\n }\n }\n\n /**\n * Function to handle relative date selection\n */\n handleDurationChange(event: CustomEvent) {\n event.stopPropagation()\n event.detail.value = event.detail.value.replace(/e/gi, \"\");\n const duration=Number(event.detail.value);\n if(!duration) {\n return\n };\n this.selectedValue = duration\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleUnitChange(event: any) {\n event.stopPropagation()\n this.selectedUnit = event.detail.value;\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleTimeValueClick(unit: TimeUnits, value: number, event: any) {\n this.createRelativePeriod(unit, value)\n this.selectedUnit = unit;\n this.selectedValue = value;\n }\n\n createRelativePeriod(unit: String, value: number) {\n const endTime = new Date();\n const startTime = new Date();\n\n switch (unit) {\n case 'minutes':\n startTime.setMinutes(startTime.getMinutes() - value);\n break;\n case 'hours':\n startTime.setHours(startTime.getHours() - value);\n break;\n case 'days':\n startTime.setDate(startTime.getDate() - value);\n break;\n case 'weeks':\n startTime.setDate(startTime.getDate() - 7 * value); // Subtract weeks as days\n break;\n case 'months':\n startTime.setMonth(startTime.getMonth() - value);\n break;\n }\n\n this.startDate = new Date(startTime.getTime());\n this.endDate = new Date(endTime.getTime());\n\n return {\n startDate: this.startDate,\n endDate: this.endDate,\n };\n }\n \n /**\n * Function to handle start time selecion\n */\n private handleStartTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.startDate) {\n this.startDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.startDate);\n if (time) {\n this.startDate = time;\n } else {\n this.startDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n \n /**\n * Function to handle end time selecion\n */\n private handleEndTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.endDate) {\n this.endDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.endDate);\n if (time) {\n this.endDate = time;\n } else {\n this.endDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n\n // Parse time string to a Date object\n private parseTime(input: string, date: Date): Date | null {\n if (!this.isValidTimeInput(input)) {\n return null;\n }\n const [hour, minute, second] = input.split(':').map(Number);\n const newDate = new Date(date.getTime());\n newDate.setHours(hour, minute, second);\n return newDate;\n }\n\n // Validate time in HH:MM:SS format\n private isValidTimeInput(input: string): boolean {\n const regex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;\n return regex.test(input);\n }\n\n private handleStartDateInput(event: CustomEvent): void {\n const date = this.parseDate(event.detail.value);\n if (!this.isValidDateInput(date)) {\n this.startDate = null;\n }\n if (date && (!this.endDate || date <= this.endDate)) {\n this.startDate = date;\n } else {\n this.startDate = null;\n this.endDate = null;\n }\n }\n\n private handleEndDateInput(event: CustomEvent): void {\n const date = this.parseDate(event.detail.value);\n if (!this.isValidDateInput(date)) {\n this.endDate = null;\n }\n if (date && (!this.startDate || date >= this.startDate)) {\n this.endDate = date;\n } else {\n this.endDate = null;\n }\n }\n \n private isValidDateInput(input: any): boolean {\n const regex = /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\n return regex.test(input);\n }\n\n private parseDate(dateString: string): Date | null {\n const [day, month, year] = dateString.split('/').map(Number);\n const date = new Date(year, month - 1, day);\n return !isNaN(date.getTime()) ? date : null;\n }\n\n private formatDateRange(value: {\n startDate: Date | null;\n endDate: Date | null;\n }): string {\n if (!value) {\n return value;\n }\n if (!value.startDate || !value.endDate) return '';\n return `${this.formatDate(value.startDate)} - ${this.formatDate(\n value.endDate\n )}`;\n }\n\n private formatDate(date: Date | null): string {\n if (!date) return '';\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n return `${day}/${month}/${year}`;\n }\n\n private formatTime(date: Date | null): string {\n if (!date) return '';\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n return `${hours}:${minutes}:${seconds}`;\n }\n\n private nextMonth(): void {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.currentYear++;\n } else {\n this.currentMonth++;\n }\n }\n\n private prevMonth(): void {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.currentYear--;\n } else {\n this.currentMonth--;\n }\n }\n\n private confimRange() {\n if (!(this.startDate && this.endDate)) return;\n this.emitChangedData( {\n startDate: this.startDate,\n endDate: this.endDate,\n });\n }\n\n convertTZ(date: Date, tzString: any) {\n return new Date(\n (typeof date === 'string' ? new Date(date) : date).toLocaleString(\n 'en-US',\n { timeZone: tzString }\n )\n );\n }\n\n onTypeChange(event: CustomEvent) {\n this.type = event.detail.value;\n this.emit('nile-type-change', { value: this.type })\n }\n getUTCDate(dateStr:any){\n return new Date(\n Date.UTC(\n dateStr.slice(0, 4),\n dateStr.slice(5, 7) - 1,\n dateStr.slice(8, 10)\n )\n )\n }\n\n emitChangedData(data:{startDate:Date,endDate:Date}|{value:any}|null){\n this.emit('nile-changed',data);\n this.emit('nile-change',data)\n }\n\n private getDaysArray(year: number, month: number): number[] {\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n return Array.from({ length: daysInMonth }, (_, i) => i + 1);\n }\n}\n\nexport default NileCalendar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-calendar': NileCalendar;\n }\n}"]}
|
1
|
+
{"version":3,"file":"nile-calendar.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n property,\n CSSResultArray,\n TemplateResult,\n nothing\n} from 'lit-element';\nimport { customElement, state } from 'lit/decorators.js';\nimport { styles } from './nile-calendar.css';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { PropertyValueMap } from 'lit';\ntype NileCalendarDateRange={ startDate: string, endDate: string }\ntype TimeUnits= 'minutes'|'hours'|'days'|'weeks'|'months';\n/**\n * Nile icon component.\n *\n * @tag nile-calendar\n *\n */\n@customElement('nile-calendar')\nexport class NileCalendar extends NileElement {\n /**\n * The styles for NileCalendar\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n\n\n @property({ type: String, attribute: 'value' }) valueAttribute: | string | null = null;\n\n @property({ type: String, attribute:true, reflect:true }) allowedDates: string = JSON.stringify({});\n\n @property({ type: Boolean, reflect: true }) range = false;\n\n @property({ type: Boolean, attribute: true, reflect:true }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: String }) selectedUnit: TimeUnits;\n\n @property({ type: Number }) selectedValue: number;\n\n @property({ type: Array, attribute: 'hide-duration-fields' }) hideDurationFields: String[] = [];\n \n @property({ type: Boolean}) showManualInputs :boolean=false;\n\n @state() startDate: Date | null = null;\n\n @state() endDate: Date | null = null;\n\n @state() isSelectingStart = true;\n\n @state() hideInput: Boolean = false;\n\n @state() value: Date | null;\n\n @state() currentMonth: number = new Date().getMonth();\n\n @state() currentYear: number = new Date().getFullYear();\n\n @state() allowedDatesLocal: NileCalendarDateRange | any = null;\n\n connectedCallback() {\n super.connectedCallback();\n this.initializeValue();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('valueAttribute')) {\n if(!this.valueAttribute){\n this.value=null;\n this.startDate=null;\n this.endDate=null;\n this.isSelectingStart=true;\n }\n const date = new Date(this.valueAttribute || '');\n if (!isNaN(date.getTime())) {\n const offset = date.getTimezoneOffset();\n this.value = new Date(date.getTime() - offset * 60 * 1000);\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n this.initializeValue();\n }\n }\n\n @watch('allowedDates')\n checkValidAllowedDate() {\n let newDateRange: NileCalendarDateRange | null;\n try {\n newDateRange=JSON.parse(this.allowedDates);\n } catch (error) {\n newDateRange=null;\n }\n if (!newDateRange || Object.keys(newDateRange).length == 0) {\n this.allowedDatesLocal=null;\n return;\n }\n this.hideInput=true;\n const startDate = this.getUTCDate(newDateRange.startDate)\n const endDate = this.getUTCDate(newDateRange.endDate)\n\n if (startDate > endDate) {\n console.error('StartDate must be greater than endDate');\n }\n else\n {\n this.allowedDatesLocal=newDateRange;\n }\n }\n \n\n /**\n * Render method\n */\n render(): TemplateResult {\n return html`\n <div\n class=${classMap({\n base:true,\n base__range:this.range,\n })}\n >\n <div class=${classMap({\n \"calendar-config\":true,\n \"hidden\": !this.range || (this.range && this.hideTypes)\n })}>\n <div class=\"calendar-switcher\">\n <nile-tab-group centered @nile-tab-show=\"${this.onTypeChange}\" value=\"${this.type}\">\n <nile-tab slot=\"nav\" panel=\"absolute\">Absolute</nile-tab>\n <nile-tab slot=\"nav\" panel=\"relative\">Relative</nile-tab>\n </nile-tab-group>\n </div>\n </div>\n\n ${this.type == 'relative' ? this.renderRelativeCalendar():''}\n ${this.type == 'absolute' ? this.renderAbsoluteCalendar():''}\n\n ${!this.range?'':html`\n <div class=\"button-container\">\n ${this.allowClear?\n html`\n <nile-button \n class=\"clear-button\"\n variant=\"secondary\"\n ?disabled=\"${ !this.startDate || !this.endDate }\"\n @click=\"${this.clearDate}\"\n > Clear</nile-button>`:nothing\n }\n <nile-button \n class=\"apply-button\" \n ?disabled=\"${ !this.startDate || !this.endDate }\" \n @click=\"${this.confimRange}\"\n > Apply</nile-button>\n </div>\n `}\n </div>\n `;\n }\n\n /**\n * @returns HTML content for absolute calendar\n */\n renderAbsoluteCalendar(){\n return html`\n <div class=\"calendar-wrapper\">\n <div class=\"calendar-container\">\n ${this.renderMonth(\n this.currentYear,\n this.currentMonth,\n this.getDaysArray(this.currentYear, this.currentMonth)\n )}\n </div>\n </div>\n ${this.range ? html`\n <div class=\"calender-input ${this.showManualInputs ? '' : 'hidden'}\" >\n <div class=\"from\">\n <nile-input \n label=\"From\"\n class=\"manual-input\" \n value=\"${this.formatTime(this.startDate)}\" \n placeholder=\"HH:MM:SS\" @nile-change=\"${this.handleStartTimeInput}\"\n > </nile-input>\n </div>\n\n <div class=\"from\">\n <nile-input \n label=\"To\"\n class=\"manual-input\" \n value=\"${this.formatTime(this.endDate)}\" \n placeholder=\"HH:MM:SS\" @nile-change=\"${this.handleEndTimeInput}\"\n > </nile-input>\n </div>\n </div>\n `:''}\n `\n }\n\n /**\n * @returns HTML content for relative calendar\n */\n renderRelativeCalendar(){\n return html`\n <div class=\"units-wrapper\">\n <div class=\"unit-container\">\n ${this.hideDurationFields?.includes('minutes')?'':html`\n <div class=\"duration-name\">Minutes</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('minutes', [1, 5, 15, 30, 45])}\n </div>\n `}\n\n ${this.hideDurationFields?.includes('hours')?'':html`\n <div class=\"duration-name\">Hours</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('hours', [1, 2, 3, 6, 8, 12])}\n </div>\n `}\n \n ${this.hideDurationFields?.includes('days')?'':html`\n <div class=\"duration-name\">Days</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('days', [1, 2, 3, 4, 5, 6])}\n </div>\n `}\n \n ${this.hideDurationFields?.includes('weeks')?'':html`\n <div class=\"duration-name\">Weeks</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('weeks', [1, 2, 4, 6])}\n </div>\n `}\n \n ${this.hideDurationFields?.includes('months')?'':html`\n <div class=\"duration-name\">Months</div>\n <div class=\"duration-units\">\n ${this.renderTimeValues('months', [3, 6, 12, 15])}\n </div>\n `}\n </div>\n </div>\n \n ${this.range ? html`\n <div>\n <div class=\"unit-input-container\">\n <nile-input \n class=\"manual-input duration-input\" \n label=\"Duration\"\n inputmode=\"numeric\"\n type=\"number\"\n value=\"${this.selectedValue}\" \n @nile-change=\"${this.handleDurationChange}\"\n placeholder=\"Enter Value\"\n ></nile-input>\n\n <nile-select class=\"manual-input time-input\" \n label=\"Unit of time\" \n value=\"${ this.selectedUnit }\"\n @nile-change=\"${this.handleUnitChange}\"\n >\n <nile-option value=\"minutes\" class=\"${this.hideDurationFields?.includes('minutes')?'hidden':''}\">Minutes</nile-option>\n <nile-option value=\"hours\" class=\"${this.hideDurationFields?.includes('hours')?'hidden':''}\"> Hours </nile-option>\n <nile-option value=\"days\" class=\"${this.hideDurationFields?.includes('days')?'hidden':''}\">Days</nile-option>\n <nile-option value=\"weeks\" class=\"${this.hideDurationFields?.includes('weeks')?'hidden':''}\">Weeks</nile-option>\n <nile-option value=\"months\" class=\"${this.hideDurationFields?.includes('months')?'hidden':''}\"> Months </nile-option>\n </nile-select>\n </div>\n </div>\n `:''}\n `\n }\n \n /**\n * \n * @param unit \n * @param values \n * @returns html for the option\n */\n renderTimeValues(unit: TimeUnits, values: any[]) {\n return values.map(\n value =>\n html`\n <div\n class=\"duration__value ${this.selectedUnit === unit && this.selectedValue === value ? 'duration__value--selected':''}\"\n @click=${(e: any) => this.handleTimeValueClick(unit, value, e)}\n >${value}\n </div>`\n );\n }\n\n /**\n * \n * @param year \n * @param month \n * @param daysArray \n * @returns HTML for rendered month\n */\n private renderMonth(\n year: number,\n month: number,\n daysArray: number[]\n ): TemplateResult {\n const firstDay = new Date(year, month, 1).getDay();\n const lastDay = new Date(year, month + 1, 0).getDay();\n const prevMonthDays = this.getDaysArray(\n month === 0 ? year - 1 : year,\n month === 0 ? 11 : month - 1\n );\n const nextMonthDays = this.getDaysArray(\n month === 11 ? year + 1 : year,\n month === 11 ? 0 : month + 1\n );\n const fillerDaysBefore = prevMonthDays.slice(\n prevMonthDays.length - firstDay\n );\n const fillerDaysAfter = nextMonthDays.slice(0, 6 - lastDay);\n const allDays = [...fillerDaysBefore, ...daysArray, ...fillerDaysAfter];\n\n const isSelectedDate = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return '';\n\n if (!this.range && this.value) {\n const isSelected =\n day === this.value.getDate() &&\n month === this.value.getMonth() &&\n year === this.value.getFullYear();\n if (isSelected) return 'selected-date';\n }\n\n const isStartDate =\n this.startDate &&\n day === this.startDate.getDate() &&\n month === this.startDate.getMonth() &&\n year === this.startDate.getFullYear();\n const isEndDate =\n this.endDate &&\n day === this.endDate.getDate() &&\n month === this.endDate.getMonth() &&\n year === this.endDate.getFullYear();\n\n return isStartDate ? 'range-start' : isEndDate ? 'range-end' : '';\n };\n\n const isInRange = (\n day: number,\n month: number,\n year: number,\n isCurrentMonth: boolean\n ) => {\n if (!isCurrentMonth) return false;\n if (this.startDate && this.endDate) {\n const date = new Date(year, month, day);\n return date >= this.startDate && date <= this.endDate;\n }\n return false;\n };\n\n const isCurrentDate = (day: number, month: number, year: number) => {\n const today = new Date();\n return (\n day === today.getDate() &&\n month + 1 === today.getMonth() + 1 &&\n year === today.getFullYear()\n );\n };\n\n return html`\n <div class=\"calendar\">\n <div class=\"calendar-header\">\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"arrowleft\"\n color=\"black\"\n @click=\"${this.prevMonth}\"\n >\n </nile-icon>\n <span\n >${new Date(year, month).toLocaleString('default', {\n month: 'long',\n })}\n ${year}</span\n >\n <nile-icon\n class=\"calendar-header__month-navigation\"\n name=\"arrowright\"\n color=\"black\"\n @click=\"${this.nextMonth}\"\n >\n </nile-icon>\n </div>\n <div class=\"days_container\">\n <div class=\"day_name\">Su</div>\n <div class=\"day_name\">Mo</div>\n <div class=\"day_name\">Tu</div>\n <div class=\"day_name\">We</div>\n <div class=\"day_name\">Th</div>\n <div class=\"day_name\">Fr</div>\n <div class=\"day_name\">Sa</div>\n\n ${allDays.map((day, index) => {\n const isCurrentMonth =\n index >= fillerDaysBefore.length &&\n index < fillerDaysBefore.length + daysArray.length;\n const datePlacement:''|'selected-date'|'range-start'|'range-end' = isSelectedDate(day, month, year, isCurrentMonth)\n const classMapObj:any={\n 'day_date' : true,\n 'not-allowed' : !this.isAllowedDate(day, month, year),\n 'in-range' : isInRange(day, month, year, isCurrentMonth) ,\n 'filler' : !isCurrentMonth,\n }\n if(datePlacement) classMapObj[datePlacement]=true\n \n return html` \n <div\n class=${classMap(classMapObj)}\n @click=\"${() => { if (isCurrentMonth) this.selectDate(day, month, year)}}\"\n >\n <span style=\"position:relative;\">\n ${day}\n ${isCurrentDate(day, month, year) && isCurrentMonth?html`<div class=\"current__date__dot\"></div>`:nothing}\n </span>\n </div>`;\n })}\n </div>\n </div>\n `;\n }\n\n /**\n * Function to validate if date is not in allowedDates range\n * @param day \n * @param month \n * @param year \n * @returns \n */\n isAllowedDate(day: number, month: number, year: number) {\n if (!this.allowedDatesLocal) {\n return true;\n }\n const dateToCheck = new Date(Date.UTC(year, month, day));\n const startDate = this.getUTCDate(this.allowedDatesLocal.startDate)\n const endDate = this.getUTCDate(this.allowedDatesLocal.endDate)\n endDate.setUTCHours(23, 59, 59, 999);\n const isWithinRange = dateToCheck >= startDate && dateToCheck <= endDate;\n return isWithinRange;\n }\n\n clearDate(){\n if(this.range){\n this.valueAttribute='';\n this.startDate=null;\n this.endDate=null;\n }\n else{\n this.value=null;\n }\n this.emit('nile-clear')\n }\n\n /**\n * @function handle_date-click/select\n * @param day \n * @param month \n * @param year \n */\n selectDate(day: number, month: number, year: number): void {\n const selectedDate = new Date(year, month, day);\n\n if (this.range) {\n if (this.startDate && this.endDate) {\n this.startDate = null;\n this.endDate = null;\n }\n\n if (this.isSelectingStart) {\n this.startDate = selectedDate;\n if (this.endDate && selectedDate > this.endDate) {\n this.endDate = null;\n }\n this.isSelectingStart = false;\n } else {\n this.isSelectingStart = true;\n\n if (this.startDate && selectedDate < this.startDate) {\n this.startDate = selectedDate;\n this.endDate = null;\n this.isSelectingStart = false;\n } else {\n const endDate = selectedDate;\n endDate.setHours(23, 59, 59, 999);\n this.endDate = endDate;\n }\n }\n } else {\n if(String(this.value)==String(selectedDate) && this.doubleClickUnselect){\n this.clearDate()\n return\n }\n this.value = selectedDate;\n this.emitChangedData({ value: this.value });\n }\n }\n\n /**\n * Function to be called on initialization to set all other properties\n */\n initializeValue() {\n if (this.range) {\n try {\n const rangeValue = JSON.parse(this.valueAttribute || '');\n this.startDate = new Date(rangeValue.startDate);\n this.endDate = new Date(rangeValue.endDate);\n\n // Convert to local time\n this.startDate = new Date(this.startDate.getTime());\n this.endDate = new Date(this.endDate.getTime());\n\n this.value = null;\n } catch (e) {\n // console.error('Invalid range value');\n }\n } else {\n if (this.valueAttribute) {\n let date: Date = new Date(this.valueAttribute);\n\n date = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n\n if (!isNaN(date.getTime())) {\n this.value = date;\n this.currentMonth = this.value.getMonth();\n this.currentYear = this.value.getFullYear();\n }\n }\n }\n }\n\n /**\n * Function to handle relative date selection\n */\n handleDurationChange(event: CustomEvent) {\n event.stopPropagation()\n event.detail.value = event.detail.value.replace(/e/gi, \"\");\n const duration=Number(event.detail.value);\n if(!duration) {\n return\n };\n this.selectedValue = duration\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleUnitChange(event: CustomEvent) {\n event.stopPropagation()\n this.selectedUnit = event.detail.value;\n if (this.selectedUnit && this.selectedValue) {\n this.handleTimeValueClick(this.selectedUnit, this.selectedValue, event);\n }\n }\n\n handleTimeValueClick(unit: TimeUnits, value: number, event: any) {\n this.createRelativePeriod(unit, value)\n this.selectedUnit = unit;\n this.selectedValue = value;\n }\n\n createRelativePeriod(unit: String, value: number) {\n const endTime = new Date();\n const startTime = new Date();\n\n switch (unit) {\n case 'minutes':\n startTime.setMinutes(startTime.getMinutes() - value);\n break;\n case 'hours':\n startTime.setHours(startTime.getHours() - value);\n break;\n case 'days':\n startTime.setDate(startTime.getDate() - value);\n break;\n case 'weeks':\n startTime.setDate(startTime.getDate() - 7 * value); // Subtract weeks as days\n break;\n case 'months':\n startTime.setMonth(startTime.getMonth() - value);\n break;\n }\n\n this.startDate = new Date(startTime.getTime());\n this.endDate = new Date(endTime.getTime());\n\n return {\n startDate: this.startDate,\n endDate: this.endDate,\n };\n }\n \n /**\n * Function to handle start time selecion\n */\n private handleStartTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.startDate) {\n this.startDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.startDate);\n if (time) {\n this.startDate = time;\n } else {\n this.startDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n \n /**\n * Function to handle end time selecion\n */\n private handleEndTimeInput(event: CustomEvent): void {\n event.stopPropagation()\n if (!this.endDate) {\n this.endDate = null;\n return;\n }\n const time = this.parseTime(event.detail.value, this.endDate);\n if (time) {\n this.endDate = time;\n } else {\n this.endDate.setHours(0, 0, 0);\n }\n this.requestUpdate();\n }\n\n // Parse time string to a Date object\n private parseTime(input: string, date: Date): Date | null {\n if (!this.isValidTimeInput(input)) {\n return null;\n }\n const [hour, minute, second] = input.split(':').map(Number);\n const newDate = new Date(date.getTime());\n newDate.setHours(hour, minute, second);\n return newDate;\n }\n\n // Validate time in HH:MM:SS format\n private isValidTimeInput(input: string): boolean {\n const regex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;\n return regex.test(input);\n }\n\n private formatTime(date: Date | null): string {\n if (!date) return '';\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n return `${hours}:${minutes}:${seconds}`;\n }\n\n private nextMonth(): void {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.currentYear++;\n } else {\n this.currentMonth++;\n }\n }\n\n private prevMonth(): void {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.currentYear--;\n } else {\n this.currentMonth--;\n }\n }\n\n private confimRange() {\n if (!(this.startDate && this.endDate)) return;\n this.emitChangedData( {\n startDate: this.startDate,\n endDate: this.endDate,\n });\n }\n\n onTypeChange(event: CustomEvent) {\n this.type = event.detail.value;\n this.emit('nile-type-change', { value: this.type })\n }\n getUTCDate(dateStr:any){\n return new Date(\n Date.UTC(\n dateStr.slice(0, 4),\n dateStr.slice(5, 7) - 1,\n dateStr.slice(8, 10)\n )\n )\n }\n\n emitChangedData(data:{startDate:Date,endDate:Date}|{value:any}|null){\n this.emit('nile-changed',data);\n this.emit('nile-change',data)\n }\n\n private getDaysArray(year: number, month: number): number[] {\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n return Array.from({ length: daysInMonth }, (_, i) => i + 1);\n }\n}\n\nexport default NileCalendar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-calendar': NileCalendar;\n }\n}"]}
|
@@ -12,10 +12,10 @@ function wait(ms = 50000) {
|
|
12
12
|
return new Promise(resolve => setTimeout(resolve, ms));
|
13
13
|
}
|
14
14
|
describe('NileCalendar', () => {
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
it('renders correctly with default properties', async () => {
|
16
|
+
const el = await fixture(html `<nile-calendar></nile-calendar>`);
|
17
|
+
expect(el).shadowDom.to.equalSnapshot();
|
18
|
+
});
|
19
19
|
it('should render correctly', async () => {
|
20
20
|
const el = await fixture(html `<nile-calendar></nile-calendar>`);
|
21
21
|
expect(el).to.be.instanceOf(NileCalendar);
|
@@ -243,7 +243,7 @@ describe('NileCalendar', () => {
|
|
243
243
|
// Step 1: Manually set the "Duration" input value
|
244
244
|
const durationInput = el.shadowRoot?.querySelector('nile-input.duration-input');
|
245
245
|
if (durationInput) {
|
246
|
-
durationInput.dispatchEvent(new CustomEvent('nile-
|
246
|
+
durationInput.dispatchEvent(new CustomEvent('nile-change', { detail: { value: '5' } })); // Set duration to 5 (e.g., 5 hours)
|
247
247
|
}
|
248
248
|
await elementUpdated(el); // Wait for the DOM to update after the input
|
249
249
|
// Step 2: Select the "Unit of Time" from the select input (e.g., hours)
|
@@ -267,5 +267,50 @@ describe('NileCalendar', () => {
|
|
267
267
|
// Check if the emitted endDate is approximately now
|
268
268
|
expect(endDate.getTime()).to.be.closeTo(now.getTime(), 1000); // The end date should be roughly now
|
269
269
|
});
|
270
|
+
it('should allow deselection of date on clicking again on selected date', async () => {
|
271
|
+
const el = await fixture(html `
|
272
|
+
<nile-calendar showManualInput doubleClickUnselect></nile-calendar>
|
273
|
+
`);
|
274
|
+
await elementUpdated(el);
|
275
|
+
// Get the current date element in the calendar
|
276
|
+
const currentDateElement = el.shadowRoot?.querySelector('div.days_container div.current__date__dot')?.parentElement?.parentElement;
|
277
|
+
// Simulate a click on the current date after a brief timeout
|
278
|
+
setTimeout(() => currentDateElement?.click());
|
279
|
+
// Wait for the 'nile-change' event to be emitted
|
280
|
+
const { detail: { value } } = await oneEvent(el, 'nile-change');
|
281
|
+
// Update the element after the event
|
282
|
+
await elementUpdated(el);
|
283
|
+
// Assertions
|
284
|
+
expect(value).to.exist;
|
285
|
+
expect(currentDateElement?.className).to.include('selected-date');
|
286
|
+
// Simulate a click on the current date after a brief timeout
|
287
|
+
currentDateElement?.click();
|
288
|
+
await elementUpdated(el);
|
289
|
+
expect(currentDateElement?.className).to.not.include('selected-date');
|
290
|
+
});
|
291
|
+
it('should allow deselection of range on clicking on clear button', async () => {
|
292
|
+
const el = await fixture(html `
|
293
|
+
<nile-calendar range allowClear></nile-calendar>
|
294
|
+
`);
|
295
|
+
await elementUpdated(el);
|
296
|
+
// Get day elements from the calendar, selecting two dates for range selection
|
297
|
+
const days = el.shadowRoot?.querySelectorAll('.days_container .day_date:not(.filler)') || [];
|
298
|
+
const firstDay = days[4]; // Choose the 5th day of the month
|
299
|
+
const lastDay = days[9]; // Choose the 10th day of the month
|
300
|
+
// Simulate click events for selecting the range (start and end date)
|
301
|
+
firstDay.click();
|
302
|
+
await elementUpdated(el); // Wait for updates after selection
|
303
|
+
lastDay.click();
|
304
|
+
await elementUpdated(el); // Wait for updates after range selection
|
305
|
+
// Ensure both dates are correctly selected in the DOM
|
306
|
+
expect(firstDay.classList.contains('range-start')).to.be.true;
|
307
|
+
expect(lastDay.classList.contains('range-end')).to.be.true;
|
308
|
+
// Find and click the "Apply" button to confirm the range
|
309
|
+
const clearButton = el.shadowRoot?.querySelector('.clear-button');
|
310
|
+
clearButton?.click();
|
311
|
+
await elementUpdated(el); // Wait for updates after range selection
|
312
|
+
expect(firstDay.classList.contains('range-start')).to.be.false;
|
313
|
+
expect(lastDay.classList.contains('range-end')).to.be.false;
|
314
|
+
});
|
270
315
|
});
|
271
316
|
//# sourceMappingURL=nile-calendar.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-calendar.test.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAC9F,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAClC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,4BAA4B,CAAC;AAEpC,SAAS,IAAI,CAAC,KAAU,KAAK;IAC3B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,gEAAgE;IAChE,mFAAmF;IACnF,6CAA6C;IAC7C,MAAM;IAEN,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,iCAAiC,CAAC,CAAC;QAC9E,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,oDAAoD,CAAC,CAAC;QACjG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,iCAAiC,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,oDAAoD,CAAC,CAAC;QACjG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,oDAAoD,CAAC,CAAC;QACjG,EAAE,CAAC,cAAc,GAAG,YAAY,CAAC;QACjC,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,iCAAiC,CAAC,CAAC;QAE9E,+CAA+C;QAC/C,MAAM,kBAAkB,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,2CAA2C,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC;QAEnI,6DAA6D;QAC7D,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9C,iDAAiD;QACjD,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAEhE,qCAAqC;QACrC,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,aAAa;QACb,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACvB,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,iCAAiC,CAAC,CAAC;QAC9E,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,sBAAsB;QACtB,IAAI,SAAS,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,4BAA4B,CAAC,EAAE,WAAW,CAAC;QACxF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExC,yCAAyC;QACzC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAW,WAAW,CAAC,IAAI,EAAE,CAAC;QAC9F,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,SAAS,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,4BAA4B,CAAC,EAAE,WAAW,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExC,uDAAuD;QACvD,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,SAAS,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,4BAA4B,CAAC,EAAE,WAAW,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,uCAAuC,CAAC,CAAC;QACpF,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,8EAA8E;QAC9E,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,wCAAwC,CAAC,IAAI,EAAE,CAAC;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAgB,CAAC,CAAE,kCAAkC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAgB,CAAC,CAAE,mCAAmC;QAE5E,qEAAqE;QACrE,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,mCAAmC;QAC7D,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,yCAAyC;QAEnE,sDAAsD;QACtD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAE3D,yDAAyD;QACzD,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAa,eAAe,CAAC,CAAC;QAC9E,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAEvC,4CAA4C;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAEtD,gEAAgE;QAChE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAEtC,4BAA4B;QAC5B,MAAM,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;QACrC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC;QAC/D,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;QACnC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC;QAE/D,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE7C,wFAAwF;QACxF,MAAM,YAAY,GAAG;YACnB,SAAS,EAAE,GAAG,WAAW,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;YAC3E,OAAO,EAAE,GAAG,WAAW,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;SAC1E,CAAC;QAEF,wDAAwD;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;qCACV,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KAC5D,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,yCAAyC;QACzC,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;QAEhF,uEAAuE;QACvE,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAEzD,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE;gBACnC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;aACjE;iBAAM;gBACL,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;aAClE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA,uDAAuD,CAAC,CAAC;QACpG,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,0EAA0E;QAC1E,MAAM,SAAS,GAAG;YAChB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;YAC3B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;YAC1B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;YAC3B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;SAC7B,CAAC;QAEF,IAAI,KAAK,GAAC,CAAC,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;YAEjC,+EAA+E;YAC/E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAc,gDAAgD,KAAK,GAAC,CAAC,OAAO,CAAC,IAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA,EAAE,CAAA,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,IAAE,KAAK,CAAC,CAAC;YAClM,YAAY,EAAE,KAAK,EAAE,CAAC;YACtB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;YAEzB,qCAAqC;YACrC,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAoB,eAAe,CAAC,CAAC;YACrF,UAAU,CAAC,GAAG,EAAE;gBACd,WAAW,EAAE,KAAK,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,oFAAoF;YACpF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YACrD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAEtC,0CAA0C;YAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,iBAAiB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtC,QAAQ,IAAI,EAAE;gBACZ,KAAK,SAAS;oBACZ,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,OAAO;oBACV,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;oBACnD,MAAM;gBACR,KAAK,MAAM;oBACT,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;oBACjD,MAAM;gBACR,KAAK,OAAO;oBACV,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;oBACrD,MAAM;gBACR,KAAK,QAAQ;oBACX,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;oBACnD,MAAM;aACT;YAED,qEAAqE;YACrE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,kCAAkC;YAChH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,oCAAoC;YAClG,KAAK,EAAE,CAAC;SACT;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;;KAE1C,CAAC,CAAC;QACH,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,wCAAwC,CAAC,IAAI,EAAE,CAAC;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAgB,CAAC,CAAE,8BAA8B;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAgB,CAAC,CAAE,+BAA+B;QAExE,2DAA2D;QAC3D,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,wCAAwC;QACxC,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAmB,0BAA0B,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAmB,wBAAwB,CAAC,CAAC;QAEzF,+CAA+C;QAC/C,IAAI,SAAS,IAAI,OAAO,EAAE;YACxB,6DAA6D;YAC7D,SAAS,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAC,EAAC,MAAM,EAAC,EAAC,KAAK,EAAC,UAAU,EAAC,EAAC,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAC,EAAC,MAAM,EAAC,EAAC,KAAK,EAAC,UAAU,EAAC,EAAC,CAAC,CAAC,CAAC;SACnF;QAED,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,8CAA8C;QAExE,uCAAuC;QACvC,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAoB,eAAe,CAAC,CAAC;QACrF,UAAU,CAAC,GAAE,EAAE,CAAA,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QAEpC,2CAA2C;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACrD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAEtC,wEAAwE;QACxE,MAAM,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;QACrC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,2BAA2B;QACjE,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;QACnC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,yBAAyB;QAE9D,6CAA6C;QAC7C,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC;QAExE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;;KAE1C,CAAC,CAAC;QACH,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,kDAAkD;QAClD,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAY,2BAA2B,CAAC,CAAC;QAE3F,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,EAAC,EAAC,MAAM,EAAC,EAAC,KAAK,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC,CAAC,CAAA,oCAAoC;SACrH;QAED,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,6CAA6C;QAEvE,wEAAwE;QACxE,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAa,aAAa,CAAC,CAAC;QAC3E,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAC,EAAC,MAAM,EAAC,EAAC,KAAK,EAAC,OAAO,EAAC,EAAC,CAAC,CAAC,CAAC,CAAA,uBAAuB;SAC1G;QAED,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,iDAAiD;QAE3E,+CAA+C;QAC/C,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAa,eAAe,CAAC,CAAC;QAC9E,UAAU,CAAC,GAAE,EAAE,CAAA,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QAEpC,mDAAmD;QACnD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACrD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAEtC,oCAAoC;QACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,yCAAyC;QAEzF,+EAA+E;QAC/E,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,0CAA0C;QAExH,oDAAoD;QACpD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,qCAAqC;IACrG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture, html, expect, oneEvent, elementUpdated, waitUntil } from '@open-wc/testing';\nimport './nile-calendar';\nimport { NileCalendar } from './nile-calendar';\nimport Sinon from 'sinon';\nimport { NileButton } from '../nile-button';\nimport { NileIcon } from '../nile-icon';\nimport { NileTab } from '../nile-tab';\nimport { NileTabGroup } from '../nile-tab-group';\nimport { NileSelect } from '../nile-select';\nimport { NileInput } from '../nile-input';\n\nimport './nile-calendar';\nimport '../nile-input/nile-input';\nimport '../nile-select/nile-select';\nimport '../nile-tab-group/nile-tab-group';\nimport '../nile-tab/nile-tab';\nimport '../nile-button/nile-button';\n\nfunction wait(ms:number=50000) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\ndescribe('NileCalendar', () => {\n // it('renders correctly with default properties', async () => {\n // const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n // expect(el).shadowDom.to.equalSnapshot();\n // });\n \n it('should render correctly', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n expect(el).to.be.instanceOf(NileCalendar);\n expect(el.shadowRoot).not.to.be.null;\n });\n\n it('should initialize value on connectedCallback', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar value=\"2023-10-01\"></nile-calendar>`);\n el.connectedCallback();\n expect(el.value?.toISOString().split('T')[0]).to.equal('2023-10-01');\n });\n\n it('should emit `nile-init` event on connectedCallback', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n const eventSpy = Sinon.spy(el, 'emit');\n el.connectedCallback();\n expect(eventSpy).to.have.been.calledWith('nile-init');\n });\n\n it('should initialize value on connectedCallback', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar value=\"2023-10-01\"></nile-calendar>`);\n el.connectedCallback();\n expect(el.value?.toISOString().split('T')[0]).to.equal('2023-10-01');\n });\n\n it('should update value when valueAttribute changes', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar value=\"2023-10-01\"></nile-calendar>`);\n el.valueAttribute = '2023-11-05';\n await el.updateComplete;\n expect(el.value?.toISOString().split('T')[0]).to.equal('2023-11-05');\n });\n\n it('should select a single date when clicked', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n \n // Get the current date element in the calendar\n const currentDateElement = el.shadowRoot?.querySelector('div.days_container div.current__date__dot')?.parentElement?.parentElement;\n \n // Simulate a click on the current date after a brief timeout\n setTimeout(() => currentDateElement?.click());\n \n // Wait for the 'nile-change' event to be emitted\n const { detail: { value } } = await oneEvent(el, 'nile-change');\n \n // Update the element after the event\n await elementUpdated(el);\n \n const emittedDate = new Date(value);\n // Assertions\n expect(value).to.exist;\n expect(emittedDate.getDate()).to.equal(new Date().getDate());\n expect(currentDateElement?.className).to.include('selected-date');\n });\n\n it('should change the month correctly on next and previous button click', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n await elementUpdated(el);\n \n // Get current, next, and previous months\n const today = new Date();\n const getMonthName = (date: Date) => date.toLocaleString('default', { month: 'long' });\n const currMonth = getMonthName(today);\n const nextMonth = getMonthName(new Date(today.setMonth(today.getMonth() + 1)));\n const prevMonth = getMonthName(new Date(today.setMonth(today.getMonth() - 2)));\n \n // Check initial month\n let monthText = el.shadowRoot?.querySelector('div.calendar-header > span')?.textContent;\n expect(monthText).to.include(currMonth);\n \n // Click next button and check next month\n const [prevButton, nextButton] = el.shadowRoot?.querySelectorAll<NileIcon>('nile-icon') || [];\n nextButton?.click();\n await elementUpdated(el);\n monthText = el.shadowRoot?.querySelector('div.calendar-header > span')?.textContent;\n expect(monthText).to.include(nextMonth);\n \n // Click previous button twice and check previous month\n prevButton?.click();\n await elementUpdated(el);\n prevButton?.click();\n await elementUpdated(el);\n monthText = el.shadowRoot?.querySelector('div.calendar-header > span')?.textContent;\n expect(monthText).to.include(prevMonth);\n })\n\n it('should allow range selection and emit validated data on apply', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar range></nile-calendar>`);\n await elementUpdated(el);\n\n // Get day elements from the calendar, selecting two dates for range selection\n const days = el.shadowRoot?.querySelectorAll('.days_container .day_date:not(.filler)') || [];\n const firstDay = days[4] as HTMLElement; // Choose the 5th day of the month\n const lastDay = days[9] as HTMLElement; // Choose the 10th day of the month\n\n // Simulate click events for selecting the range (start and end date)\n firstDay.click();\n await elementUpdated(el); // Wait for updates after selection\n lastDay.click();\n await elementUpdated(el); // Wait for updates after range selection\n\n // Ensure both dates are correctly selected in the DOM\n expect(firstDay.classList.contains('range-start')).to.be.true;\n expect(lastDay.classList.contains('range-end')).to.be.true;\n\n // Find and click the \"Apply\" button to confirm the range\n const applyButton = el.shadowRoot?.querySelector<NileButton>('.apply-button');\n setTimeout(() => applyButton?.click());\n\n // Wait for the emitted 'nile-changed' event\n const { detail } = await oneEvent(el, 'nile-changed');\n\n // Extract the emitted start and end dates from the event detail\n const { startDate, endDate } = detail;\n \n // Validate the emitted data\n const expectedStartDate = new Date();\n expectedStartDate.setDate(5); // Adjust to the expected 5th day\n const expectedEndDate = new Date();\n expectedEndDate.setDate(10); // Adjust to the expected 10th day\n \n expect(startDate.getDate()).to.equal(expectedStartDate.getDate());\n expect(endDate.getDate()).to.equal(expectedEndDate.getDate());\n });\n\n it('should correctly apply allowed dates range on calendar', async () => {\n const currentMonth = new Date().getMonth();\n const currentYear = new Date().getFullYear();\n\n // Define a range of allowed dates (e.g., from the 5th to the 20th of the current month)\n const allowedDates = {\n startDate: `${currentYear}-${String(currentMonth + 1).padStart(2, '0')}-05`,\n endDate: `${currentYear}-${String(currentMonth + 1).padStart(2, '0')}-20`\n };\n\n // Pass the allowed dates to the component as a property\n const el = await fixture<NileCalendar>(html`\n <nile-calendar allowedDates='${JSON.stringify(allowedDates)}'></nile-calendar>\n `);\n\n await elementUpdated(el);\n\n // Get all day elements from the calendar\n const days = el.shadowRoot?.querySelectorAll('.days_container .day_date') || [];\n\n // Verify that days outside the allowed range are marked as not allowed\n days.forEach((dayElement, index) => {\n const dayNumber = Number(dayElement.textContent?.trim());\n\n if (dayNumber < 5 || dayNumber > 20) {\n expect(dayElement.classList.contains('not-allowed')).to.be.true;\n } else {\n expect(dayElement.classList.contains('not-allowed')).to.be.false;\n }\n });\n });\n \n it('should select various ranges in relative calendar and emit correct data', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar range type=\"relative\"></nile-calendar>`);\n await elementUpdated(el);\n\n // Define test cases with unit and values for the relative range selection\n const testCases = [\n { unit: 'minutes', value: 15 },\n { unit: 'hours', value: 2 },\n { unit: 'days', value: 3 },\n { unit: 'weeks', value: 1 },\n { unit: 'months', value: 6 }\n ];\n\n let index=1;\n for (const testCase of testCases) {\n const { unit, value } = testCase;\n\n // Find the unit selector buttons and simulate click for the corresponding unit\n const unitSelector = Array.from(el.shadowRoot?.querySelectorAll<HTMLElement>(`div.unit-container .duration-units:nth-child(${index*2})>div`)??[]).find(el=>Number(el.textContent?.trim())==value);\n unitSelector?.click();\n await elementUpdated(el);\n\n // Simulate clicking the apply button\n const applyButton = el.shadowRoot?.querySelector<HTMLButtonElement>('.apply-button');\n setTimeout(() =>{ \n applyButton?.click();\n });\n\n // Wait for the emitted `nile-changed` event and get the emitted start and end dates\n const { detail } = await oneEvent(el, 'nile-change');\n const { startDate, endDate } = detail;\n\n // Validate the emitted data for each unit\n const now = new Date();\n let expectedStartDate = new Date(now);\n \n switch (unit) {\n case 'minutes':\n expectedStartDate.setMinutes(now.getMinutes() - value);\n break;\n case 'hours':\n expectedStartDate.setHours(now.getHours() - value);\n break;\n case 'days':\n expectedStartDate.setDate(now.getDate() - value);\n break;\n case 'weeks':\n expectedStartDate.setDate(now.getDate() - value * 7);\n break;\n case 'months':\n expectedStartDate.setMonth(now.getMonth() - value);\n break;\n }\n\n // Ensure the emitted startDate and endDate match the expected values\n expect(startDate.getTime()).to.be.closeTo(expectedStartDate.getTime(), 1000); // Allowing a small time tolerance\n expect(endDate.getTime()).to.be.closeTo(now.getTime(), 1000); // The endDate should be roughly now\n index++;\n }\n });\n\n it('should allow manual time input for from and to fields and emit correct data', async () => {\n const el = await fixture<NileCalendar>(html`\n <nile-calendar range showManualInputs></nile-calendar>\n `);\n await elementUpdated(el);\n\n const days = el.shadowRoot?.querySelectorAll('.days_container .day_date:not(.filler)') || [];\n const firstDay = days[4] as HTMLElement; // Select 5th day of the month\n const lastDay = days[9] as HTMLElement; // Select 10th day of the month\n\n // Simulate clicks to select the range (start and end date)\n firstDay.click();\n await elementUpdated(el);\n lastDay.click();\n await elementUpdated(el);\n\n // Find the \"From\" and \"To\" input fields\n const fromInput = el.shadowRoot?.querySelector<HTMLInputElement>('nile-input[label=\"From\"]');\n const toInput = el.shadowRoot?.querySelector<HTMLInputElement>('nile-input[label=\"To\"]');\n\n // Manually set the \"From\" and \"To\" time values\n if (fromInput && toInput) {\n // Simulate input events for both \"From\" and \"To\" time inputs\n fromInput.dispatchEvent(new CustomEvent('nile-change',{detail:{value:'08:30:00'}}));\n toInput.dispatchEvent(new CustomEvent('nile-change',{detail:{value:'17:00:00'}}));\n }\n\n await elementUpdated(el); // Wait for the DOM to update after the inputs\n\n // Simulate clicking the \"Apply\" button\n const applyButton = el.shadowRoot?.querySelector<HTMLButtonElement>('.apply-button');\n setTimeout(()=>applyButton?.click())\n\n // Wait for the emitted `nile-change` event\n const { detail } = await oneEvent(el, 'nile-change');\n const { startDate, endDate } = detail;\n\n // Expected start and end date should include the manually entered times\n const expectedStartDate = new Date();\n expectedStartDate.setHours(8, 30, 0); // 08:30:00 for \"From\" time\n const expectedEndDate = new Date();\n expectedEndDate.setHours(17, 0, 0); // 17:00:00 for \"To\" time\n\n // Validate the emitted startDate and endDate\n expect(startDate.getHours()).to.equal(expectedStartDate.getHours());\n expect(startDate.getMinutes()).to.equal(expectedStartDate.getMinutes());\n expect(startDate.getSeconds()).to.equal(expectedStartDate.getSeconds());\n\n expect(endDate.getHours()).to.equal(expectedEndDate.getHours());\n expect(endDate.getMinutes()).to.equal(expectedEndDate.getMinutes());\n expect(endDate.getSeconds()).to.equal(expectedEndDate.getSeconds());\n });\n\n it('should allow setting duration and unit of time in relative mode and emit correct data', async () => {\n const el = await fixture<NileCalendar>(html`\n <nile-calendar type=\"relative\" range></nile-calendar>\n `);\n await elementUpdated(el);\n\n // Step 1: Manually set the \"Duration\" input value\n const durationInput = el.shadowRoot?.querySelector<NileInput>('nile-input.duration-input');\n \n if (durationInput) {\n durationInput.dispatchEvent(new CustomEvent('nile-input',{detail:{value:'5'}}));// Set duration to 5 (e.g., 5 hours)\n }\n\n await elementUpdated(el); // Wait for the DOM to update after the input\n\n // Step 2: Select the \"Unit of Time\" from the select input (e.g., hours)\n const unitSelect = el.shadowRoot?.querySelector<NileSelect>('nile-select');\n if (unitSelect) {\n unitSelect.dispatchEvent(new CustomEvent('nile-change',{detail:{value:'hours'}}));// Trigger change event\n }\n\n await elementUpdated(el); // Wait for the DOM to update after the selection\n\n // Step 3: Simulate clicking the \"Apply\" button\n const applyButton = el.shadowRoot?.querySelector<NileButton>('.apply-button');\n setTimeout(()=>applyButton?.click())\n\n // Step 4: Wait for the emitted `nile-change` event\n const { detail } = await oneEvent(el, 'nile-change');\n const { startDate, endDate } = detail;\n\n // Step 5: Validate the emitted data\n const now = new Date();\n const expectedStartDate = new Date(now);\n expectedStartDate.setHours(now.getHours() - 5); // Subtract 5 hours from the current time\n\n // Check if the emitted startDate matches the expected start date (5 hours ago)\n expect(startDate.getTime()).to.be.closeTo(expectedStartDate.getTime(), 1000); // Allowing small time tolerance (1000 ms)\n \n // Check if the emitted endDate is approximately now\n expect(endDate.getTime()).to.be.closeTo(now.getTime(), 1000); // The end date should be roughly now\n });\n});\n\n"]}
|
1
|
+
{"version":3,"file":"nile-calendar.test.js","sourceRoot":"","sources":["../../../src/nile-calendar/nile-calendar.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { fixture, html, expect, oneEvent, elementUpdated, waitUntil } from '@open-wc/testing';\nimport './nile-calendar';\nimport { NileCalendar } from './nile-calendar';\nimport Sinon from 'sinon';\nimport { NileButton } from '../nile-button';\nimport { NileIcon } from '../nile-icon';\nimport { NileTab } from '../nile-tab';\nimport { NileTabGroup } from '../nile-tab-group';\nimport { NileSelect } from '../nile-select';\nimport { NileInput } from '../nile-input';\n\nimport './nile-calendar';\nimport '../nile-input/nile-input';\nimport '../nile-select/nile-select';\nimport '../nile-tab-group/nile-tab-group';\nimport '../nile-tab/nile-tab';\nimport '../nile-button/nile-button';\n\nfunction wait(ms:number=50000) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\ndescribe('NileCalendar', () => {\n it('renders correctly with default properties', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n expect(el).shadowDom.to.equalSnapshot();\n });\n \n it('should render correctly', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n expect(el).to.be.instanceOf(NileCalendar);\n expect(el.shadowRoot).not.to.be.null;\n });\n\n it('should initialize value on connectedCallback', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar value=\"2023-10-01\"></nile-calendar>`);\n el.connectedCallback();\n expect(el.value?.toISOString().split('T')[0]).to.equal('2023-10-01');\n });\n\n it('should emit `nile-init` event on connectedCallback', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n const eventSpy = Sinon.spy(el, 'emit');\n el.connectedCallback();\n expect(eventSpy).to.have.been.calledWith('nile-init');\n });\n\n it('should initialize value on connectedCallback', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar value=\"2023-10-01\"></nile-calendar>`);\n el.connectedCallback();\n expect(el.value?.toISOString().split('T')[0]).to.equal('2023-10-01');\n });\n\n it('should update value when valueAttribute changes', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar value=\"2023-10-01\"></nile-calendar>`);\n el.valueAttribute = '2023-11-05';\n await el.updateComplete;\n expect(el.value?.toISOString().split('T')[0]).to.equal('2023-11-05');\n });\n\n it('should select a single date when clicked', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n \n // Get the current date element in the calendar\n const currentDateElement = el.shadowRoot?.querySelector('div.days_container div.current__date__dot')?.parentElement?.parentElement;\n \n // Simulate a click on the current date after a brief timeout\n setTimeout(() => currentDateElement?.click());\n \n // Wait for the 'nile-change' event to be emitted\n const { detail: { value } } = await oneEvent(el, 'nile-change');\n \n // Update the element after the event\n await elementUpdated(el);\n \n const emittedDate = new Date(value);\n // Assertions\n expect(value).to.exist;\n expect(emittedDate.getDate()).to.equal(new Date().getDate());\n expect(currentDateElement?.className).to.include('selected-date');\n });\n\n it('should change the month correctly on next and previous button click', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar></nile-calendar>`);\n await elementUpdated(el);\n \n // Get current, next, and previous months\n const today = new Date();\n const getMonthName = (date: Date) => date.toLocaleString('default', { month: 'long' });\n const currMonth = getMonthName(today);\n const nextMonth = getMonthName(new Date(today.setMonth(today.getMonth() + 1)));\n const prevMonth = getMonthName(new Date(today.setMonth(today.getMonth() - 2)));\n \n // Check initial month\n let monthText = el.shadowRoot?.querySelector('div.calendar-header > span')?.textContent;\n expect(monthText).to.include(currMonth);\n \n // Click next button and check next month\n const [prevButton, nextButton] = el.shadowRoot?.querySelectorAll<NileIcon>('nile-icon') || [];\n nextButton?.click();\n await elementUpdated(el);\n monthText = el.shadowRoot?.querySelector('div.calendar-header > span')?.textContent;\n expect(monthText).to.include(nextMonth);\n \n // Click previous button twice and check previous month\n prevButton?.click();\n await elementUpdated(el);\n prevButton?.click();\n await elementUpdated(el);\n monthText = el.shadowRoot?.querySelector('div.calendar-header > span')?.textContent;\n expect(monthText).to.include(prevMonth);\n })\n\n it('should allow range selection and emit validated data on apply', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar range></nile-calendar>`);\n await elementUpdated(el);\n\n // Get day elements from the calendar, selecting two dates for range selection\n const days = el.shadowRoot?.querySelectorAll('.days_container .day_date:not(.filler)') || [];\n const firstDay = days[4] as HTMLElement; // Choose the 5th day of the month\n const lastDay = days[9] as HTMLElement; // Choose the 10th day of the month\n\n // Simulate click events for selecting the range (start and end date)\n firstDay.click();\n await elementUpdated(el); // Wait for updates after selection\n lastDay.click();\n await elementUpdated(el); // Wait for updates after range selection\n\n // Ensure both dates are correctly selected in the DOM\n expect(firstDay.classList.contains('range-start')).to.be.true;\n expect(lastDay.classList.contains('range-end')).to.be.true;\n\n // Find and click the \"Apply\" button to confirm the range\n const applyButton = el.shadowRoot?.querySelector<NileButton>('.apply-button');\n setTimeout(() => applyButton?.click());\n\n // Wait for the emitted 'nile-changed' event\n const { detail } = await oneEvent(el, 'nile-changed');\n\n // Extract the emitted start and end dates from the event detail\n const { startDate, endDate } = detail;\n \n // Validate the emitted data\n const expectedStartDate = new Date();\n expectedStartDate.setDate(5); // Adjust to the expected 5th day\n const expectedEndDate = new Date();\n expectedEndDate.setDate(10); // Adjust to the expected 10th day\n \n expect(startDate.getDate()).to.equal(expectedStartDate.getDate());\n expect(endDate.getDate()).to.equal(expectedEndDate.getDate());\n });\n\n it('should correctly apply allowed dates range on calendar', async () => {\n const currentMonth = new Date().getMonth();\n const currentYear = new Date().getFullYear();\n\n // Define a range of allowed dates (e.g., from the 5th to the 20th of the current month)\n const allowedDates = {\n startDate: `${currentYear}-${String(currentMonth + 1).padStart(2, '0')}-05`,\n endDate: `${currentYear}-${String(currentMonth + 1).padStart(2, '0')}-20`\n };\n\n // Pass the allowed dates to the component as a property\n const el = await fixture<NileCalendar>(html`\n <nile-calendar allowedDates='${JSON.stringify(allowedDates)}'></nile-calendar>\n `);\n\n await elementUpdated(el);\n\n // Get all day elements from the calendar\n const days = el.shadowRoot?.querySelectorAll('.days_container .day_date') || [];\n\n // Verify that days outside the allowed range are marked as not allowed\n days.forEach((dayElement, index) => {\n const dayNumber = Number(dayElement.textContent?.trim());\n\n if (dayNumber < 5 || dayNumber > 20) {\n expect(dayElement.classList.contains('not-allowed')).to.be.true;\n } else {\n expect(dayElement.classList.contains('not-allowed')).to.be.false;\n }\n });\n });\n \n it('should select various ranges in relative calendar and emit correct data', async () => {\n const el = await fixture<NileCalendar>(html`<nile-calendar range type=\"relative\"></nile-calendar>`);\n await elementUpdated(el);\n\n // Define test cases with unit and values for the relative range selection\n const testCases = [\n { unit: 'minutes', value: 15 },\n { unit: 'hours', value: 2 },\n { unit: 'days', value: 3 },\n { unit: 'weeks', value: 1 },\n { unit: 'months', value: 6 }\n ];\n\n let index=1;\n for (const testCase of testCases) {\n const { unit, value } = testCase;\n\n // Find the unit selector buttons and simulate click for the corresponding unit\n const unitSelector = Array.from(el.shadowRoot?.querySelectorAll<HTMLElement>(`div.unit-container .duration-units:nth-child(${index*2})>div`)??[]).find(el=>Number(el.textContent?.trim())==value);\n unitSelector?.click();\n await elementUpdated(el);\n\n // Simulate clicking the apply button\n const applyButton = el.shadowRoot?.querySelector<HTMLButtonElement>('.apply-button');\n setTimeout(() =>{ \n applyButton?.click();\n });\n\n // Wait for the emitted `nile-changed` event and get the emitted start and end dates\n const { detail } = await oneEvent(el, 'nile-change');\n const { startDate, endDate } = detail;\n\n // Validate the emitted data for each unit\n const now = new Date();\n let expectedStartDate = new Date(now);\n \n switch (unit) {\n case 'minutes':\n expectedStartDate.setMinutes(now.getMinutes() - value);\n break;\n case 'hours':\n expectedStartDate.setHours(now.getHours() - value);\n break;\n case 'days':\n expectedStartDate.setDate(now.getDate() - value);\n break;\n case 'weeks':\n expectedStartDate.setDate(now.getDate() - value * 7);\n break;\n case 'months':\n expectedStartDate.setMonth(now.getMonth() - value);\n break;\n }\n\n // Ensure the emitted startDate and endDate match the expected values\n expect(startDate.getTime()).to.be.closeTo(expectedStartDate.getTime(), 1000); // Allowing a small time tolerance\n expect(endDate.getTime()).to.be.closeTo(now.getTime(), 1000); // The endDate should be roughly now\n index++;\n }\n });\n\n it('should allow manual time input for from and to fields and emit correct data', async () => {\n const el = await fixture<NileCalendar>(html`\n <nile-calendar range showManualInputs></nile-calendar>\n `);\n await elementUpdated(el);\n\n const days = el.shadowRoot?.querySelectorAll('.days_container .day_date:not(.filler)') || [];\n const firstDay = days[4] as HTMLElement; // Select 5th day of the month\n const lastDay = days[9] as HTMLElement; // Select 10th day of the month\n\n // Simulate clicks to select the range (start and end date)\n firstDay.click();\n await elementUpdated(el);\n lastDay.click();\n await elementUpdated(el);\n\n // Find the \"From\" and \"To\" input fields\n const fromInput = el.shadowRoot?.querySelector<HTMLInputElement>('nile-input[label=\"From\"]');\n const toInput = el.shadowRoot?.querySelector<HTMLInputElement>('nile-input[label=\"To\"]');\n\n // Manually set the \"From\" and \"To\" time values\n if (fromInput && toInput) {\n // Simulate input events for both \"From\" and \"To\" time inputs\n fromInput.dispatchEvent(new CustomEvent('nile-change',{detail:{value:'08:30:00'}}));\n toInput.dispatchEvent(new CustomEvent('nile-change',{detail:{value:'17:00:00'}}));\n }\n\n await elementUpdated(el); // Wait for the DOM to update after the inputs\n\n // Simulate clicking the \"Apply\" button\n const applyButton = el.shadowRoot?.querySelector<HTMLButtonElement>('.apply-button');\n setTimeout(()=>applyButton?.click())\n\n // Wait for the emitted `nile-change` event\n const { detail } = await oneEvent(el, 'nile-change');\n const { startDate, endDate } = detail;\n\n // Expected start and end date should include the manually entered times\n const expectedStartDate = new Date();\n expectedStartDate.setHours(8, 30, 0); // 08:30:00 for \"From\" time\n const expectedEndDate = new Date();\n expectedEndDate.setHours(17, 0, 0); // 17:00:00 for \"To\" time\n\n // Validate the emitted startDate and endDate\n expect(startDate.getHours()).to.equal(expectedStartDate.getHours());\n expect(startDate.getMinutes()).to.equal(expectedStartDate.getMinutes());\n expect(startDate.getSeconds()).to.equal(expectedStartDate.getSeconds());\n\n expect(endDate.getHours()).to.equal(expectedEndDate.getHours());\n expect(endDate.getMinutes()).to.equal(expectedEndDate.getMinutes());\n expect(endDate.getSeconds()).to.equal(expectedEndDate.getSeconds());\n });\n\n it('should allow setting duration and unit of time in relative mode and emit correct data', async () => {\n const el = await fixture<NileCalendar>(html`\n <nile-calendar type=\"relative\" range></nile-calendar>\n `);\n await elementUpdated(el);\n\n // Step 1: Manually set the \"Duration\" input value\n const durationInput = el.shadowRoot?.querySelector<NileInput>('nile-input.duration-input');\n \n if (durationInput) {\n durationInput.dispatchEvent(new CustomEvent('nile-change',{detail:{value:'5'}}));// Set duration to 5 (e.g., 5 hours)\n }\n\n await elementUpdated(el); // Wait for the DOM to update after the input\n\n // Step 2: Select the \"Unit of Time\" from the select input (e.g., hours)\n const unitSelect = el.shadowRoot?.querySelector<NileSelect>('nile-select');\n if (unitSelect) {\n unitSelect.dispatchEvent(new CustomEvent('nile-change',{detail:{value:'hours'}}));// Trigger change event\n }\n\n await elementUpdated(el); // Wait for the DOM to update after the selection\n\n // Step 3: Simulate clicking the \"Apply\" button\n const applyButton = el.shadowRoot?.querySelector<NileButton>('.apply-button');\n setTimeout(()=>applyButton?.click())\n\n // Step 4: Wait for the emitted `nile-change` event\n const { detail } = await oneEvent(el, 'nile-change');\n const { startDate, endDate } = detail;\n\n // Step 5: Validate the emitted data\n const now = new Date();\n const expectedStartDate = new Date(now);\n expectedStartDate.setHours(now.getHours() - 5); // Subtract 5 hours from the current time\n\n // Check if the emitted startDate matches the expected start date (5 hours ago)\n expect(startDate.getTime()).to.be.closeTo(expectedStartDate.getTime(), 1000); // Allowing small time tolerance (1000 ms)\n \n // Check if the emitted endDate is approximately now\n expect(endDate.getTime()).to.be.closeTo(now.getTime(), 1000); // The end date should be roughly now\n });\n\n it('should allow deselection of date on clicking again on selected date', async () => {\n const el = await fixture<NileCalendar>(html`\n <nile-calendar showManualInput doubleClickUnselect></nile-calendar>\n `);\n await elementUpdated(el);\n \n // Get the current date element in the calendar\n const currentDateElement = el.shadowRoot?.querySelector('div.days_container div.current__date__dot')?.parentElement?.parentElement;\n \n // Simulate a click on the current date after a brief timeout\n setTimeout(() => currentDateElement?.click());\n \n // Wait for the 'nile-change' event to be emitted\n const { detail: { value } } = await oneEvent(el, 'nile-change');\n \n // Update the element after the event\n await elementUpdated(el);\n \n // Assertions\n expect(value).to.exist;\n expect(currentDateElement?.className).to.include('selected-date');\n\n // Simulate a click on the current date after a brief timeout\n currentDateElement?.click()\n await elementUpdated(el);\n \n expect(currentDateElement?.className).to.not.include('selected-date');\n })\n\n it('should allow deselection of range on clicking on clear button', async () => {\n const el = await fixture<NileCalendar>(html`\n <nile-calendar range allowClear></nile-calendar>\n `);\n await elementUpdated(el);\n \n // Get day elements from the calendar, selecting two dates for range selection\n const days = el.shadowRoot?.querySelectorAll('.days_container .day_date:not(.filler)') || [];\n const firstDay = days[4] as HTMLElement; // Choose the 5th day of the month\n const lastDay = days[9] as HTMLElement; // Choose the 10th day of the month\n\n // Simulate click events for selecting the range (start and end date)\n firstDay.click();\n await elementUpdated(el); // Wait for updates after selection\n lastDay.click();\n await elementUpdated(el); // Wait for updates after range selection\n\n // Ensure both dates are correctly selected in the DOM\n expect(firstDay.classList.contains('range-start')).to.be.true;\n expect(lastDay.classList.contains('range-end')).to.be.true;\n\n // Find and click the \"Apply\" button to confirm the range\n const clearButton = el.shadowRoot?.querySelector<NileButton>('.clear-button');\n clearButton?.click()\n await elementUpdated(el); // Wait for updates after range selection\n \n expect(firstDay.classList.contains('range-start')).to.be.false;\n expect(lastDay.classList.contains('range-end')).to.be.false;\n })\n});\n\n"]}
|