@acorex/components 6.5.91 → 6.6.1
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 +7 -3
- package/esm2022/acorex-components.mjs +5 -0
- package/esm2022/index.mjs +158 -0
- package/esm2022/lib/accordion/accordion.component.mjs +45 -0
- package/esm2022/lib/accordion/accordion.module.mjs +20 -0
- package/esm2022/lib/base/base-page.class.mjs +97 -0
- package/esm2022/lib/base/components.class.mjs +17 -0
- package/esm2022/lib/base/element.class.mjs +301 -0
- package/esm2022/lib/base/events.class.mjs +17 -0
- package/esm2022/lib/button/button.component.mjs +74 -0
- package/esm2022/lib/button/button.module.mjs +21 -0
- package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +426 -0
- package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
- package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +59 -0
- package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +16 -0
- package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +226 -0
- package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +68 -0
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +136 -0
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
- package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +49 -0
- package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +102 -0
- package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +214 -0
- package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
- package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +85 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +102 -0
- package/esm2022/lib/checkbox/checkbox.module.mjs +20 -0
- package/esm2022/lib/color-picker/color-box/color-box.component.mjs +423 -0
- package/esm2022/lib/color-picker/color-picker.component.mjs +89 -0
- package/esm2022/lib/color-picker/color-picker.module.mjs +24 -0
- package/esm2022/lib/context-menu/context-menu.component.mjs +68 -0
- package/esm2022/lib/context-menu/context-menu.directive.mjs +146 -0
- package/esm2022/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +140 -0
- package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +119 -0
- package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +75 -0
- package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +119 -0
- package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +267 -0
- package/esm2022/lib/data-filter/filter.class.mjs +46 -0
- package/esm2022/lib/data-filter/filter.module.mjs +88 -0
- package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +168 -0
- package/esm2022/lib/data-list/core/data-list.component.mjs +37 -0
- package/esm2022/lib/data-list/list/list.component.mjs +134 -0
- package/esm2022/lib/data-list/list/list.module.mjs +22 -0
- package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +84 -0
- package/esm2022/lib/data-source/datasource.component.mjs +47 -0
- package/esm2022/lib/data-source/datasource.module.mjs +18 -0
- package/esm2022/lib/data-source/read-param.mjs +7 -0
- package/esm2022/lib/date-picker/date-picker.component.mjs +1093 -0
- package/esm2022/lib/date-picker/date-picker.module.mjs +49 -0
- package/esm2022/lib/dialog/dialog.component.mjs +26 -0
- package/esm2022/lib/dialog/dialog.module.mjs +21 -0
- package/esm2022/lib/dialog/dialog.service.mjs +160 -0
- package/esm2022/lib/drawer/content.component.mjs +18 -0
- package/esm2022/lib/drawer/drawer-container.component.mjs +38 -0
- package/esm2022/lib/drawer/drawer.component.mjs +146 -0
- package/esm2022/lib/drawer/drawer.module.mjs +23 -0
- package/esm2022/lib/dropdown/dropdown.component.mjs +186 -0
- package/esm2022/lib/dropdown/dropdown.module.mjs +26 -0
- package/esm2022/lib/fieldset/fieldset.component.mjs +57 -0
- package/esm2022/lib/fieldset/fieldset.module.mjs +19 -0
- package/esm2022/lib/form-group/form-group.component.mjs +37 -0
- package/esm2022/lib/form-group/form-group.module.mjs +21 -0
- package/esm2022/lib/label/label.component.mjs +19 -0
- package/esm2022/lib/label/label.module.mjs +21 -0
- package/esm2022/lib/loading/loading-indicator.component.mjs +18 -0
- package/esm2022/lib/loading/loading-panel.component.mjs +45 -0
- package/esm2022/lib/loading/loading.module.mjs +21 -0
- package/esm2022/lib/loading/loading.service.mjs +47 -0
- package/esm2022/lib/menu/menu-item.component.mjs +50 -0
- package/esm2022/lib/menu/menu.component.mjs +98 -0
- package/esm2022/lib/menu/menu.module.mjs +22 -0
- package/esm2022/lib/menu/menu2.component.mjs +100 -0
- package/esm2022/lib/number-box/number-box.component.mjs +628 -0
- package/esm2022/lib/number-box/number-box.module.mjs +21 -0
- package/esm2022/lib/page/content.component.mjs +27 -0
- package/esm2022/lib/page/footer.component.mjs +19 -0
- package/esm2022/lib/page/page.component.mjs +57 -0
- package/esm2022/lib/page/page.module.mjs +22 -0
- package/esm2022/lib/panel-box/panel-box.component.mjs +87 -0
- package/esm2022/lib/panel-box/panel-box.module.mjs +19 -0
- package/esm2022/lib/password-box/password-box.component.mjs +32 -0
- package/esm2022/lib/password-box/password-box.module.mjs +23 -0
- package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +50 -0
- package/esm2022/lib/popover/overlay.service.mjs +94 -0
- package/esm2022/lib/popover/popover.component.mjs +145 -0
- package/esm2022/lib/popover/popover.module.mjs +19 -0
- package/esm2022/lib/popup/popup.component.mjs +160 -0
- package/esm2022/lib/popup/popup.module.mjs +25 -0
- package/esm2022/lib/popup/popup.service.mjs +94 -0
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +16 -0
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +19 -0
- package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +65 -0
- package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
- package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +41 -0
- package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +118 -0
- package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +216 -0
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +76 -0
- package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +87 -0
- package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +69 -0
- package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +145 -0
- package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +59 -0
- package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +76 -0
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +75 -0
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
- package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +73 -0
- package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
- package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +30 -0
- package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
- package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +36 -0
- package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +35 -0
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
- package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +47 -0
- package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
- package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +167 -0
- package/esm2022/lib/property-editor/property-editor.class.mjs +108 -0
- package/esm2022/lib/property-editor/property-editor.module.mjs +194 -0
- package/esm2022/lib/query-builder/query-builder-group.component.mjs +129 -0
- package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +177 -0
- package/esm2022/lib/query-builder/query-builder-rule.component.mjs +428 -0
- package/esm2022/lib/query-builder/query-builder.class.mjs +42 -0
- package/esm2022/lib/query-builder/query-builder.component.mjs +92 -0
- package/esm2022/lib/query-builder/query-builder.module.mjs +62 -0
- package/esm2022/lib/query-builder/query-builder.service.mjs +199 -0
- package/esm2022/lib/search-bar/search-bar.component.mjs +293 -0
- package/esm2022/lib/search-bar/search-bar.module.mjs +61 -0
- package/esm2022/lib/searchbox/searchbox.component.mjs +106 -0
- package/esm2022/lib/searchbox/searchbox.module.mjs +24 -0
- package/esm2022/lib/selectbox/selectbox.component.mjs +1134 -0
- package/esm2022/lib/selectbox/selectbox.module.mjs +44 -0
- package/esm2022/lib/selectbox/selectbox2.component.mjs +617 -0
- package/esm2022/lib/selection-list/selection-list.component.mjs +113 -0
- package/esm2022/lib/selection-list/selection-list.module.mjs +21 -0
- package/esm2022/lib/switch/switch.component.mjs +55 -0
- package/esm2022/lib/switch/switch.module.mjs +20 -0
- package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +75 -0
- package/esm2022/lib/tab-page/tab-page-host.component.mjs +124 -0
- package/esm2022/lib/tab-page/tab-page.module.mjs +21 -0
- package/esm2022/lib/tab-page/tab-page.service.mjs +159 -0
- package/esm2022/lib/tab-strip/tab-strip.component.mjs +38 -0
- package/esm2022/lib/tab-strip/tab-strip.module.mjs +19 -0
- package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +25 -0
- package/esm2022/lib/tab-view/tab-view.component.mjs +110 -0
- package/esm2022/lib/tab-view/tab-view.module.mjs +21 -0
- package/esm2022/lib/tab-view/tab.component.mjs +33 -0
- package/esm2022/lib/textarea/textarea.component.mjs +27 -0
- package/esm2022/lib/textarea/textarea.module.mjs +21 -0
- package/esm2022/lib/textbox/textbox.component.mjs +42 -0
- package/esm2022/lib/textbox/textbox.module.mjs +36 -0
- package/esm2022/lib/time-picker/time-picker.component.mjs +1107 -0
- package/esm2022/lib/time-picker/time-picker.module.mjs +34 -0
- package/esm2022/lib/toast/toast-message/toast-message.component.mjs +76 -0
- package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
- package/esm2022/lib/toast/toast.module.mjs +21 -0
- package/esm2022/lib/toast/toast.service.mjs +45 -0
- package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +77 -0
- package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +62 -0
- package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +56 -0
- package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +37 -0
- package/esm2022/lib/toolbar/toolbar-item.mjs +4 -0
- package/esm2022/lib/toolbar/toolbar.component.mjs +13 -0
- package/esm2022/lib/toolbar/toolbar.module.mjs +40 -0
- package/esm2022/lib/tooltip/tooltip.directive.mjs +104 -0
- package/esm2022/lib/tooltip/tooltip.module.mjs +19 -0
- package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +697 -0
- package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +33 -0
- package/esm2022/lib/tree-view/tree-view.component.mjs +854 -0
- package/esm2022/lib/tree-view/tree-view.module.mjs +22 -0
- package/esm2022/lib/upload-file/upload-file.component.mjs +226 -0
- package/esm2022/lib/upload-file/upload-file.events.mjs +2 -0
- package/esm2022/lib/upload-file/upload-file.module.mjs +24 -0
- package/esm2022/lib/validation/validation-form.component.mjs +68 -0
- package/esm2022/lib/validation/validation-rule.widget.mjs +114 -0
- package/esm2022/lib/validation/validation.class.mjs +2 -0
- package/esm2022/lib/validation/validation.component.mjs +89 -0
- package/esm2022/lib/validation/validation.module.mjs +34 -0
- package/{fesm2020 → fesm2022}/acorex-components.mjs +17004 -15581
- package/fesm2022/acorex-components.mjs.map +1 -0
- package/{public-api.d.ts → index.d.ts} +155 -155
- package/lib/accordion/accordion.component.d.ts +13 -13
- package/lib/accordion/accordion.module.d.ts +9 -9
- package/lib/base/base-page.class.d.ts +46 -46
- package/lib/base/components.class.d.ts +10 -10
- package/lib/base/element.class.d.ts +106 -106
- package/lib/base/events.class.d.ts +18 -18
- package/lib/button/button.component.d.ts +21 -21
- package/lib/button/button.module.d.ts +8 -8
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -81
- package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -11
- package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -19
- package/lib/calendar/scheduler/scheduler.class.d.ts +36 -36
- package/lib/calendar/scheduler/scheduler.component.d.ts +39 -39
- package/lib/calendar/scheduler/scheduler.module.d.ts +21 -21
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -25
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -14
- package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -16
- package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -26
- package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -37
- package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -28
- package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -24
- package/lib/checkbox/checkbox.component.d.ts +30 -30
- package/lib/checkbox/checkbox.module.d.ts +9 -9
- package/lib/color-picker/color-box/color-box.component.d.ts +25 -25
- package/lib/color-picker/color-picker.component.d.ts +30 -30
- package/lib/color-picker/color-picker.module.d.ts +13 -13
- package/lib/context-menu/context-menu.component.d.ts +22 -22
- package/lib/context-menu/context-menu.directive.d.ts +38 -38
- package/lib/context-menu/context-menu.module.d.ts +9 -9
- package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -22
- package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -15
- package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -18
- package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -15
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -45
- package/lib/data-filter/filter.class.d.ts +40 -40
- package/lib/data-filter/filter.module.d.ts +24 -24
- package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -25
- package/lib/data-list/core/data-list.component.d.ts +15 -15
- package/lib/data-list/list/list.component.d.ts +40 -40
- package/lib/data-list/list/list.module.d.ts +11 -11
- package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -17
- package/lib/data-source/datasource.component.d.ts +16 -16
- package/lib/data-source/datasource.module.d.ts +7 -7
- package/lib/data-source/read-param.d.ts +40 -40
- package/lib/date-picker/date-picker.component.d.ts +81 -81
- package/lib/date-picker/date-picker.module.d.ts +14 -14
- package/lib/dialog/dialog.component.d.ts +14 -14
- package/lib/dialog/dialog.module.d.ts +10 -10
- package/lib/dialog/dialog.service.d.ts +36 -36
- package/lib/drawer/content.component.d.ts +7 -7
- package/lib/drawer/drawer-container.component.d.ts +10 -10
- package/lib/drawer/drawer.component.d.ts +34 -34
- package/lib/drawer/drawer.module.d.ts +10 -10
- package/lib/dropdown/dropdown.component.d.ts +38 -38
- package/lib/dropdown/dropdown.module.d.ts +13 -13
- package/lib/fieldset/fieldset.component.d.ts +11 -11
- package/lib/fieldset/fieldset.module.d.ts +8 -8
- package/lib/form-group/form-group.component.d.ts +14 -14
- package/lib/form-group/form-group.module.d.ts +8 -8
- package/lib/label/label.component.d.ts +9 -9
- package/lib/label/label.module.d.ts +8 -8
- package/lib/loading/loading-indicator.component.d.ts +9 -9
- package/lib/loading/loading-panel.component.d.ts +13 -13
- package/lib/loading/loading.module.d.ts +10 -10
- package/lib/loading/loading.service.d.ts +13 -13
- package/lib/menu/menu-item.component.d.ts +18 -18
- package/lib/menu/menu.component.d.ts +35 -35
- package/lib/menu/menu.module.d.ts +11 -11
- package/lib/menu/menu2.component.d.ts +21 -21
- package/lib/number-box/number-box.component.d.ts +52 -52
- package/lib/number-box/number-box.module.d.ts +10 -10
- package/lib/page/content.component.d.ts +8 -8
- package/lib/page/footer.component.d.ts +5 -5
- package/lib/page/page.component.d.ts +16 -16
- package/lib/page/page.module.d.ts +11 -11
- package/lib/panel-box/panel-box.component.d.ts +19 -19
- package/lib/panel-box/panel-box.module.d.ts +8 -8
- package/lib/password-box/password-box.component.d.ts +12 -12
- package/lib/password-box/password-box.module.d.ts +10 -10
- package/lib/popover/custom-cdk-overlay.service.d.ts +19 -19
- package/lib/popover/overlay.service.d.ts +32 -32
- package/lib/popover/popover.component.d.ts +35 -35
- package/lib/popover/popover.module.d.ts +8 -8
- package/lib/popup/popup.component.d.ts +40 -40
- package/lib/popup/popup.module.d.ts +13 -13
- package/lib/popup/popup.service.d.ts +22 -22
- package/lib/progress-bar/progress-bar.component.d.ts +7 -7
- package/lib/progress-bar/progress-bar.module.d.ts +8 -8
- package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -19
- package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -11
- package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -13
- package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -12
- package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -34
- package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -20
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -44
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -19
- package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -28
- package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -12
- package/lib/property-editor/editors/number-editor/number.editor.d.ts +21 -20
- package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -12
- package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -29
- package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -18
- package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -29
- package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -28
- package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -14
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -25
- package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -11
- package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -11
- package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -13
- package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -18
- package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -12
- package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -17
- package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -12
- package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -17
- package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -12
- package/lib/property-editor/property-editor-renderer.directive.d.ts +31 -31
- package/lib/property-editor/property-editor.class.d.ts +93 -93
- package/lib/property-editor/property-editor.module.d.ts +21 -21
- package/lib/query-builder/query-builder-group.component.d.ts +33 -33
- package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -35
- package/lib/query-builder/query-builder-rule.component.d.ts +45 -45
- package/lib/query-builder/query-builder.class.d.ts +45 -45
- package/lib/query-builder/query-builder.component.d.ts +29 -29
- package/lib/query-builder/query-builder.module.d.ts +23 -23
- package/lib/query-builder/query-builder.service.d.ts +18 -18
- package/lib/search-bar/search-bar.component.d.ts +62 -62
- package/lib/search-bar/search-bar.module.d.ts +18 -18
- package/lib/searchbox/searchbox.component.d.ts +23 -22
- package/lib/searchbox/searchbox.module.d.ts +13 -13
- package/lib/selectbox/selectbox.component.d.ts +149 -118
- package/lib/selectbox/selectbox.module.d.ts +15 -15
- package/lib/selectbox/selectbox2.component.d.ts +103 -103
- package/lib/selection-list/selection-list.component.d.ts +32 -32
- package/lib/selection-list/selection-list.module.d.ts +10 -10
- package/lib/switch/switch.component.d.ts +20 -20
- package/lib/switch/switch.module.d.ts +9 -9
- package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -16
- package/lib/tab-page/tab-page-host.component.d.ts +24 -24
- package/lib/tab-page/tab-page.module.d.ts +10 -10
- package/lib/tab-page/tab-page.service.d.ts +30 -30
- package/lib/tab-strip/tab-strip.component.d.ts +28 -28
- package/lib/tab-strip/tab-strip.module.d.ts +8 -8
- package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -16
- package/lib/tab-view/tab-view.component.d.ts +26 -26
- package/lib/tab-view/tab-view.module.d.ts +10 -10
- package/lib/tab-view/tab.component.d.ts +12 -12
- package/lib/textarea/textarea.component.d.ts +12 -12
- package/lib/textarea/textarea.module.d.ts +8 -8
- package/lib/textbox/textbox.component.d.ts +16 -16
- package/lib/textbox/textbox.module.d.ts +11 -11
- package/lib/time-picker/time-picker.component.d.ts +53 -52
- package/lib/time-picker/time-picker.module.d.ts +11 -11
- package/lib/toast/toast-message/toast-message.component.d.ts +18 -18
- package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -8
- package/lib/toast/toast.module.d.ts +9 -9
- package/lib/toast/toast.service.d.ts +18 -18
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -12
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -24
- package/lib/toolbar/search/toolbar-search.component.d.ts +16 -16
- package/lib/toolbar/title/toolbar-title.component.d.ts +9 -9
- package/lib/toolbar/toolbar-item.d.ts +3 -3
- package/lib/toolbar/toolbar.component.d.ts +8 -8
- package/lib/toolbar/toolbar.module.d.ts +14 -14
- package/lib/tooltip/tooltip.directive.d.ts +21 -21
- package/lib/tooltip/tooltip.module.d.ts +8 -8
- package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -111
- package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -11
- package/lib/tree-view/tree-view.component.d.ts +121 -121
- package/lib/tree-view/tree-view.module.d.ts +11 -11
- package/lib/upload-file/upload-file.component.d.ts +42 -42
- package/lib/upload-file/upload-file.events.d.ts +10 -10
- package/lib/upload-file/upload-file.module.d.ts +13 -13
- package/lib/validation/validation-form.component.d.ts +19 -19
- package/lib/validation/validation-rule.widget.d.ts +23 -23
- package/lib/validation/validation.class.d.ts +16 -16
- package/lib/validation/validation.component.d.ts +25 -25
- package/lib/validation/validation.module.d.ts +11 -11
- package/package.json +15 -20
- package/acorex-components.d.ts +0 -5
- package/esm2020/acorex-components.mjs +0 -5
- package/esm2020/lib/accordion/accordion.component.mjs +0 -44
- package/esm2020/lib/accordion/accordion.module.mjs +0 -20
- package/esm2020/lib/base/base-page.class.mjs +0 -94
- package/esm2020/lib/base/components.class.mjs +0 -17
- package/esm2020/lib/base/element.class.mjs +0 -294
- package/esm2020/lib/base/events.class.mjs +0 -11
- package/esm2020/lib/button/button.component.mjs +0 -71
- package/esm2020/lib/button/button.module.mjs +0 -21
- package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +0 -413
- package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
- package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +0 -54
- package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +0 -18
- package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +0 -213
- package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +0 -68
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -132
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
- package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -47
- package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -95
- package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -204
- package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
- package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -77
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -98
- package/esm2020/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2020/lib/color-picker/color-box/color-box.component.mjs +0 -422
- package/esm2020/lib/color-picker/color-picker.component.mjs +0 -82
- package/esm2020/lib/color-picker/color-picker.module.mjs +0 -24
- package/esm2020/lib/context-menu/context-menu.component.mjs +0 -65
- package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -135
- package/esm2020/lib/context-menu/context-menu.module.mjs +0 -20
- package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +0 -138
- package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +0 -117
- package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +0 -74
- package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +0 -117
- package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -258
- package/esm2020/lib/data-filter/filter.class.mjs +0 -44
- package/esm2020/lib/data-filter/filter.module.mjs +0 -90
- package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -166
- package/esm2020/lib/data-list/core/data-list.component.mjs +0 -40
- package/esm2020/lib/data-list/list/list.component.mjs +0 -124
- package/esm2020/lib/data-list/list/list.module.mjs +0 -22
- package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +0 -85
- package/esm2020/lib/data-source/datasource.component.mjs +0 -47
- package/esm2020/lib/data-source/datasource.module.mjs +0 -18
- package/esm2020/lib/data-source/read-param.mjs +0 -5
- package/esm2020/lib/date-picker/date-picker.component.mjs +0 -702
- package/esm2020/lib/date-picker/date-picker.module.mjs +0 -25
- package/esm2020/lib/dialog/dialog.component.mjs +0 -24
- package/esm2020/lib/dialog/dialog.module.mjs +0 -21
- package/esm2020/lib/dialog/dialog.service.mjs +0 -150
- package/esm2020/lib/drawer/content.component.mjs +0 -18
- package/esm2020/lib/drawer/drawer-container.component.mjs +0 -36
- package/esm2020/lib/drawer/drawer.component.mjs +0 -142
- package/esm2020/lib/drawer/drawer.module.mjs +0 -23
- package/esm2020/lib/dropdown/dropdown.component.mjs +0 -176
- package/esm2020/lib/dropdown/dropdown.module.mjs +0 -26
- package/esm2020/lib/fieldset/fieldset.component.mjs +0 -59
- package/esm2020/lib/fieldset/fieldset.module.mjs +0 -19
- package/esm2020/lib/form-group/form-group.component.mjs +0 -34
- package/esm2020/lib/form-group/form-group.module.mjs +0 -21
- package/esm2020/lib/label/label.component.mjs +0 -19
- package/esm2020/lib/label/label.module.mjs +0 -21
- package/esm2020/lib/loading/loading-indicator.component.mjs +0 -17
- package/esm2020/lib/loading/loading-panel.component.mjs +0 -44
- package/esm2020/lib/loading/loading.module.mjs +0 -21
- package/esm2020/lib/loading/loading.service.mjs +0 -45
- package/esm2020/lib/menu/menu-item.component.mjs +0 -47
- package/esm2020/lib/menu/menu.component.mjs +0 -86
- package/esm2020/lib/menu/menu.module.mjs +0 -22
- package/esm2020/lib/menu/menu2.component.mjs +0 -96
- package/esm2020/lib/number-box/number-box.component.mjs +0 -622
- package/esm2020/lib/number-box/number-box.module.mjs +0 -21
- package/esm2020/lib/page/content.component.mjs +0 -32
- package/esm2020/lib/page/footer.component.mjs +0 -19
- package/esm2020/lib/page/page.component.mjs +0 -53
- package/esm2020/lib/page/page.module.mjs +0 -22
- package/esm2020/lib/panel-box/panel-box.component.mjs +0 -88
- package/esm2020/lib/panel-box/panel-box.module.mjs +0 -19
- package/esm2020/lib/password-box/password-box.component.mjs +0 -31
- package/esm2020/lib/password-box/password-box.module.mjs +0 -23
- package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +0 -48
- package/esm2020/lib/popover/overlay.service.mjs +0 -91
- package/esm2020/lib/popover/popover.component.mjs +0 -133
- package/esm2020/lib/popover/popover.module.mjs +0 -19
- package/esm2020/lib/popup/popup.component.mjs +0 -147
- package/esm2020/lib/popup/popup.module.mjs +0 -25
- package/esm2020/lib/popup/popup.service.mjs +0 -93
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -19
- package/esm2020/lib/progress-bar/progress-bar.module.mjs +0 -19
- package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +0 -61
- package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
- package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +0 -38
- package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +0 -115
- package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -211
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -78
- package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +0 -51
- package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +0 -63
- package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +0 -140
- package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +0 -61
- package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -72
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -71
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
- package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -69
- package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
- package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -29
- package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
- package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +0 -32
- package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -32
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
- package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +0 -43
- package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
- package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +0 -157
- package/esm2020/lib/property-editor/property-editor.class.mjs +0 -102
- package/esm2020/lib/property-editor/property-editor.module.mjs +0 -196
- package/esm2020/lib/query-builder/query-builder-group.component.mjs +0 -124
- package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -172
- package/esm2020/lib/query-builder/query-builder-rule.component.mjs +0 -399
- package/esm2020/lib/query-builder/query-builder.class.mjs +0 -20
- package/esm2020/lib/query-builder/query-builder.component.mjs +0 -87
- package/esm2020/lib/query-builder/query-builder.module.mjs +0 -62
- package/esm2020/lib/query-builder/query-builder.service.mjs +0 -197
- package/esm2020/lib/search-bar/search-bar.component.mjs +0 -286
- package/esm2020/lib/search-bar/search-bar.module.mjs +0 -63
- package/esm2020/lib/searchbox/searchbox.component.mjs +0 -81
- package/esm2020/lib/searchbox/searchbox.module.mjs +0 -24
- package/esm2020/lib/selectbox/selectbox.component.mjs +0 -961
- package/esm2020/lib/selectbox/selectbox.module.mjs +0 -44
- package/esm2020/lib/selectbox/selectbox2.component.mjs +0 -574
- package/esm2020/lib/selection-list/selection-list.component.mjs +0 -108
- package/esm2020/lib/selection-list/selection-list.module.mjs +0 -21
- package/esm2020/lib/switch/switch.component.mjs +0 -51
- package/esm2020/lib/switch/switch.module.mjs +0 -20
- package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +0 -71
- package/esm2020/lib/tab-page/tab-page-host.component.mjs +0 -114
- package/esm2020/lib/tab-page/tab-page.module.mjs +0 -21
- package/esm2020/lib/tab-page/tab-page.service.mjs +0 -160
- package/esm2020/lib/tab-strip/tab-strip.component.mjs +0 -36
- package/esm2020/lib/tab-strip/tab-strip.module.mjs +0 -19
- package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +0 -24
- package/esm2020/lib/tab-view/tab-view.component.mjs +0 -105
- package/esm2020/lib/tab-view/tab-view.module.mjs +0 -21
- package/esm2020/lib/tab-view/tab.component.mjs +0 -30
- package/esm2020/lib/textarea/textarea.component.mjs +0 -26
- package/esm2020/lib/textarea/textarea.module.mjs +0 -21
- package/esm2020/lib/textbox/textbox.component.mjs +0 -39
- package/esm2020/lib/textbox/textbox.module.mjs +0 -24
- package/esm2020/lib/time-picker/time-picker.component.mjs +0 -943
- package/esm2020/lib/time-picker/time-picker.module.mjs +0 -22
- package/esm2020/lib/toast/toast-message/toast-message.component.mjs +0 -74
- package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
- package/esm2020/lib/toast/toast.module.mjs +0 -21
- package/esm2020/lib/toast/toast.service.mjs +0 -44
- package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -78
- package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +0 -57
- package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +0 -54
- package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +0 -47
- package/esm2020/lib/toolbar/toolbar-item.mjs +0 -6
- package/esm2020/lib/toolbar/toolbar.component.mjs +0 -13
- package/esm2020/lib/toolbar/toolbar.module.mjs +0 -40
- package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -100
- package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
- package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +0 -646
- package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +0 -35
- package/esm2020/lib/tree-view/tree-view.component.mjs +0 -775
- package/esm2020/lib/tree-view/tree-view.module.mjs +0 -22
- package/esm2020/lib/upload-file/upload-file.component.mjs +0 -208
- package/esm2020/lib/upload-file/upload-file.events.mjs +0 -2
- package/esm2020/lib/upload-file/upload-file.module.mjs +0 -24
- package/esm2020/lib/validation/validation-form.component.mjs +0 -65
- package/esm2020/lib/validation/validation-rule.widget.mjs +0 -111
- package/esm2020/lib/validation/validation.class.mjs +0 -2
- package/esm2020/lib/validation/validation.component.mjs +0 -89
- package/esm2020/lib/validation/validation.module.mjs +0 -34
- package/esm2020/public-api.mjs +0 -158
- package/fesm2015/acorex-components.mjs +0 -16013
- package/fesm2015/acorex-components.mjs.map +0 -1
- package/fesm2020/acorex-components.mjs.map +0 -1
@@ -0,0 +1,49 @@
|
|
1
|
+
import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
|
2
|
+
import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
|
3
|
+
import { AXDateTime, AXDateTimeRange } from '@acorex/core';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
import * as i2 from "@angular/cdk/drag-drop";
|
7
|
+
import * as i3 from "@acorex/core";
|
8
|
+
export class AXSchedulerAgendaViewComponent extends AXSchedulerBaseViewComponent {
|
9
|
+
elm;
|
10
|
+
cdr;
|
11
|
+
constructor(elm, cdr) {
|
12
|
+
super();
|
13
|
+
this.elm = elm;
|
14
|
+
this.cdr = cdr;
|
15
|
+
}
|
16
|
+
hideEmptyDays = true;
|
17
|
+
updateSize() {
|
18
|
+
}
|
19
|
+
navigate(date = new AXDateTime()) {
|
20
|
+
this.slots = [];
|
21
|
+
for (let i = 0; i < this.interval; i++) {
|
22
|
+
let d = date.addDay(i);
|
23
|
+
const range = new AXDateTimeRange(d, d);
|
24
|
+
const slot = {
|
25
|
+
range,
|
26
|
+
events: this.getEvents(range, 'day')
|
27
|
+
};
|
28
|
+
if (this.hideEmptyDays && slot.events.length === 0) {
|
29
|
+
continue;
|
30
|
+
}
|
31
|
+
this.slots.push(slot);
|
32
|
+
}
|
33
|
+
this.navigatorDate = date;
|
34
|
+
this.cdr.detectChanges();
|
35
|
+
}
|
36
|
+
next() {
|
37
|
+
this.navigate(this.navigatorDate.addDay(this.interval));
|
38
|
+
}
|
39
|
+
prev() {
|
40
|
+
this.navigate(this.navigatorDate.addDay(-this.interval));
|
41
|
+
}
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXSchedulerAgendaViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXSchedulerAgendaViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-agenda-view\">\n <table class=\"body\" cdkDropListGroup>\n <tbody *ngIf=\"slots.length; else elseTemplate\">\n <tr *ngFor=\"let slot of slots\" cdkDropList [cdkDropListData]=\"slot\" [attr.data-uid]=\"slot.uid\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\">\n <td class=\"day-column\">\n <div class=\"day-num\">{{slot.range.startTime | dt:\"DD\"}}</div>\n <div class=\"day-name\">{{slot.range.startTime | dt:\"ddd\"}}</div>\n </td>\n <td class=\"day-border\">\n <ul *ngIf=\"slot.events.length\">\n <li *ngFor=\"let e of slot.events\" [style.border-color]=\"e.color\" cdkDrag [cdkDragData]=\"e\"\n [attr.data-uid]=\"e.uid\">\n <div class=\"event-title\">{{e.title}}</div>\n <div class=\"event-time\">{{e.range.startTime | dt:\"HH:mm\"}} - <span\n *ngIf=\"e.range.duration('days')!=0 then a else b\"></span></div>\n <ng-template #a>\n {{e.range.endTime | dt:\"HH:mm\"}}\n </ng-template>\n <ng-template #b>\n {{e.range.endTime | dt:\"YYYY-MM-DD HH:mm\"}}\n </ng-template>\n\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n </li>\n </ul>\n <div *ngIf=\"!slot.events.length\" class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n <ng-template #elseTemplate>\n <tbody>\n <tr>\n <td colspan=\"2\">\n <div class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n </ng-template>\n </table>\n</div>", styles: [".ax-scheduler-agenda-view{height:100%;overflow-y:auto}.ax-scheduler-agenda-view table{border-top:1px solid var(--border-color)}.ax-scheduler-agenda-view .event-title{color:var(--gray-fore-color)}.ax-scheduler-agenda-view td{padding-top:5px;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;border:none}.ax-scheduler-agenda-view td.day-border{border-bottom:1px solid var(--border-color);padding:5px;vertical-align:middle}.ax-scheduler-agenda-view .day-column{width:80px;text-align:center}.ax-scheduler-agenda-view .day-column .day-num{font-weight:600}.ax-scheduler-agenda-view .day-column .day-name{font-size:smaller}.ax-scheduler-agenda-view ul{list-style:none;padding:0;margin:0}.ax-scheduler-agenda-view ul li{border-left:4px solid var(--primary-color);margin-bottom:var(--sp-sm-size);padding:0 8px}.ax-scheduler-agenda-view ul li:hover{background-color:var(--primary-lighter-color);cursor:pointer}.ax-scheduler-agenda-view ul li .event-time,.ax-scheduler-agenda-view ul li .event-empty{color:var(--gray-fore-color);font-size:smaller}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "pipe", type: i3.AXDateTimePipe, name: "dt" }], encapsulation: i0.ViewEncapsulation.None });
|
44
|
+
}
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXSchedulerAgendaViewComponent, decorators: [{
|
46
|
+
type: Component,
|
47
|
+
args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], template: "<div class=\"view ax-scheduler-agenda-view\">\n <table class=\"body\" cdkDropListGroup>\n <tbody *ngIf=\"slots.length; else elseTemplate\">\n <tr *ngFor=\"let slot of slots\" cdkDropList [cdkDropListData]=\"slot\" [attr.data-uid]=\"slot.uid\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\">\n <td class=\"day-column\">\n <div class=\"day-num\">{{slot.range.startTime | dt:\"DD\"}}</div>\n <div class=\"day-name\">{{slot.range.startTime | dt:\"ddd\"}}</div>\n </td>\n <td class=\"day-border\">\n <ul *ngIf=\"slot.events.length\">\n <li *ngFor=\"let e of slot.events\" [style.border-color]=\"e.color\" cdkDrag [cdkDragData]=\"e\"\n [attr.data-uid]=\"e.uid\">\n <div class=\"event-title\">{{e.title}}</div>\n <div class=\"event-time\">{{e.range.startTime | dt:\"HH:mm\"}} - <span\n *ngIf=\"e.range.duration('days')!=0 then a else b\"></span></div>\n <ng-template #a>\n {{e.range.endTime | dt:\"HH:mm\"}}\n </ng-template>\n <ng-template #b>\n {{e.range.endTime | dt:\"YYYY-MM-DD HH:mm\"}}\n </ng-template>\n\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n </li>\n </ul>\n <div *ngIf=\"!slot.events.length\" class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n <ng-template #elseTemplate>\n <tbody>\n <tr>\n <td colspan=\"2\">\n <div class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n </ng-template>\n </table>\n</div>", styles: [".ax-scheduler-agenda-view{height:100%;overflow-y:auto}.ax-scheduler-agenda-view table{border-top:1px solid var(--border-color)}.ax-scheduler-agenda-view .event-title{color:var(--gray-fore-color)}.ax-scheduler-agenda-view td{padding-top:5px;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;border:none}.ax-scheduler-agenda-view td.day-border{border-bottom:1px solid var(--border-color);padding:5px;vertical-align:middle}.ax-scheduler-agenda-view .day-column{width:80px;text-align:center}.ax-scheduler-agenda-view .day-column .day-num{font-weight:600}.ax-scheduler-agenda-view .day-column .day-name{font-size:smaller}.ax-scheduler-agenda-view ul{list-style:none;padding:0;margin:0}.ax-scheduler-agenda-view ul li{border-left:4px solid var(--primary-color);margin-bottom:var(--sp-sm-size);padding:0 8px}.ax-scheduler-agenda-view ul li:hover{background-color:var(--primary-lighter-color);cursor:pointer}.ax-scheduler-agenda-view ul li .event-time,.ax-scheduler-agenda-view ul li .event-empty{color:var(--gray-fore-color);font-size:smaller}\n"] }]
|
48
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9hZ2VuZGEvc2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9hZ2VuZGEvc2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQVEzRCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsNEJBQTRCO0lBRWhFO0lBQ0E7SUFGWixZQUNZLEdBQStCLEVBQy9CLEdBQXNCO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBSEEsUUFBRyxHQUFILEdBQUcsQ0FBNEI7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFHbEMsQ0FBQztJQUVELGFBQWEsR0FBWSxJQUFJLENBQUM7SUFFOUIsVUFBVTtJQUNWLENBQUM7SUFHRCxRQUFRLENBQUMsT0FBbUIsSUFBSSxVQUFVLEVBQUU7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQW9CO2dCQUMxQixLQUFLO2dCQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7YUFDdkMsQ0FBQTtZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ2hELFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQzt3R0FyQ1EsOEJBQThCOzRGQUE5Qiw4QkFBOEIsdUNBRjVCLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLDhCQUE4QixFQUFFLENBQUMsaURDVHZHLDRuRUEwQ007OzRGRC9CTyw4QkFBOEI7a0JBTjFDLFNBQVM7b0NBR1MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZWR1bGVyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYU2NoZWR1bGVyU2xvdCB9IGZyb20gJy4uLy4uL3NjaGVkdWxlci5jbGFzcyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lLCBBWERhdGVUaW1lUmFuZ2UgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zY2hlZHVsZXItYWdlbmRhLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2NoZWR1bGVyQWdlbmRhVmlld0NvbXBvbmVudCB9XVxufSlcbmV4cG9ydCBjbGFzcyBBWFNjaGVkdWxlckFnZW5kYVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbG06IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBoaWRlRW1wdHlEYXlzOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIHVwZGF0ZVNpemUoKSB7XG4gICAgfVxuXG5cbiAgICBuYXZpZ2F0ZShkYXRlOiBBWERhdGVUaW1lID0gbmV3IEFYRGF0ZVRpbWUoKSkge1xuICAgICAgICB0aGlzLnNsb3RzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pbnRlcnZhbDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZCA9IGRhdGUuYWRkRGF5KGkpO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgQVhEYXRlVGltZVJhbmdlKGQsIGQpO1xuICAgICAgICAgICAgY29uc3Qgc2xvdDogQVhTY2hlZHVsZXJTbG90ID0ge1xuICAgICAgICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgICAgICAgIGV2ZW50czogdGhpcy5nZXRFdmVudHMocmFuZ2UsICdkYXknKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZUVtcHR5RGF5cyAmJiBzbG90LmV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2xvdHMucHVzaChzbG90KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5hdmlnYXRvckRhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkRGF5KHRoaXMuaW50ZXJ2YWwpKTtcbiAgICB9XG4gICAgcHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkRGF5KC10aGlzLmludGVydmFsKSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInZpZXcgYXgtc2NoZWR1bGVyLWFnZW5kYS12aWV3XCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiYm9keVwiIGNka0Ryb3BMaXN0R3JvdXA+XG4gICAgICAgIDx0Ym9keSAqbmdJZj1cInNsb3RzLmxlbmd0aDsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgc2xvdCBvZiBzbG90c1wiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwic2xvdFwiIFthdHRyLmRhdGEtdWlkXT1cInNsb3QudWlkXCJcbiAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJhZ0Ryb3BPbkRheSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZGF5LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LW51bVwiPnt7c2xvdC5yYW5nZS5zdGFydFRpbWUgfCBkdDpcIkREXCJ9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LW5hbWVcIj57e3Nsb3QucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6XCJkZGRcIn19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJkYXktYm9yZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDx1bCAqbmdJZj1cInNsb3QuZXZlbnRzLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBlIG9mIHNsb3QuZXZlbnRzXCIgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJlLmNvbG9yXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS11aWRdPVwiZS51aWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtdGl0bGVcIj57e2UudGl0bGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC10aW1lXCI+e3tlLnJhbmdlLnN0YXJ0VGltZSB8IGR0OlwiSEg6bW1cIn19IC0gPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZS5yYW5nZS5kdXJhdGlvbignZGF5cycpIT0wIHRoZW4gYSBlbHNlIGJcIj48L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2UucmFuZ2UuZW5kVGltZSB8IGR0OlwiSEg6bW1cIn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZS5yYW5nZS5lbmRUaW1lIHwgZHQ6XCJZWVlZLU1NLUREIEhIOm1tXCJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpjZGtEcmFnUHJldmlldyBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJlLmNvbG9yXCIgY2xhc3M9XCJldmVudC1kcmFnLXByZXZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlLnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2xvdC5ldmVudHMubGVuZ3RoXCIgY2xhc3M9XCJldmVudC1lbXB0eVwiPk5vIGV2ZW50czwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWVtcHR5XCI+Tm8gZXZlbnRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC90YWJsZT5cbjwvZGl2PiJdfQ==
|
@@ -0,0 +1,102 @@
|
|
1
|
+
import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
|
2
|
+
import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
|
3
|
+
import { AXDateTime, AXDateTimeRange } from '@acorex/core';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
import * as i2 from "@angular/cdk/drag-drop";
|
7
|
+
import * as i3 from "@acorex/core";
|
8
|
+
export class AXSchedulerDayTimeViewComponent extends AXSchedulerBaseViewComponent {
|
9
|
+
elm;
|
10
|
+
cdr;
|
11
|
+
constructor(elm, cdr) {
|
12
|
+
super();
|
13
|
+
this.elm = elm;
|
14
|
+
this.cdr = cdr;
|
15
|
+
}
|
16
|
+
times = [];
|
17
|
+
vScroll;
|
18
|
+
container;
|
19
|
+
view;
|
20
|
+
header;
|
21
|
+
body;
|
22
|
+
ngOnInit() {
|
23
|
+
}
|
24
|
+
ngAfterViewInit() {
|
25
|
+
this.vScroll = this.elm.nativeElement.querySelector('.v-scroll');
|
26
|
+
this.header = this.elm.nativeElement.querySelector('.header');
|
27
|
+
this.body = this.elm.nativeElement.querySelector('.body');
|
28
|
+
this.view = this.elm.nativeElement.querySelector('.view');
|
29
|
+
this.container = this.elm.nativeElement.closest('.view-container');
|
30
|
+
}
|
31
|
+
updateSize() {
|
32
|
+
const firstTr = this.body.querySelector('tr');
|
33
|
+
if (firstTr) {
|
34
|
+
let index = 0;
|
35
|
+
this.header.querySelectorAll('th').forEach(c => {
|
36
|
+
const td = firstTr.children.item(index++);
|
37
|
+
td.style.width = `${c.offsetWidth}px`;
|
38
|
+
});
|
39
|
+
this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;
|
40
|
+
if (this.container) {
|
41
|
+
this.view.style.height = `${this.container.clientHeight}px`;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
this.arrangeEvents();
|
45
|
+
}
|
46
|
+
navigate(date = new AXDateTime()) {
|
47
|
+
this.times = [];
|
48
|
+
this.slots = [];
|
49
|
+
for (let i = 0; i < this.interval; i++) {
|
50
|
+
const d = date.addDay(i);
|
51
|
+
const range = new AXDateTimeRange(d, d);
|
52
|
+
const slot = {
|
53
|
+
range,
|
54
|
+
events: this.getEvents(range, 'day')
|
55
|
+
};
|
56
|
+
this.slots.push(slot);
|
57
|
+
}
|
58
|
+
for (let i = 0; i < 24; i++) {
|
59
|
+
this.times.push({
|
60
|
+
display: ('0' + i).slice(-2) + ':00',
|
61
|
+
value: i
|
62
|
+
});
|
63
|
+
}
|
64
|
+
this.navigatorDate = date;
|
65
|
+
this.cdr.detectChanges();
|
66
|
+
}
|
67
|
+
next() {
|
68
|
+
this.navigate(this.navigatorDate.addDay(this.interval));
|
69
|
+
}
|
70
|
+
prev() {
|
71
|
+
this.navigate(this.navigatorDate.addDay(-this.interval));
|
72
|
+
}
|
73
|
+
arrangeEvents() {
|
74
|
+
const events = this.elm.nativeElement.querySelectorAll('.event');
|
75
|
+
if (events.length) {
|
76
|
+
const height = events[0].closest('td').offsetHeight;
|
77
|
+
events.forEach(e => {
|
78
|
+
const uid = e.attributes.getNamedItem('data-uid').value;
|
79
|
+
const event = this.events.find(c => c.uid === uid);
|
80
|
+
const dur = Math.ceil(Math.abs(event.range.duration('hours')));
|
81
|
+
let total = dur + 1;
|
82
|
+
if (event.range.startTime.hour + total > 23) {
|
83
|
+
total = 24 - event.range.startTime.hour;
|
84
|
+
}
|
85
|
+
e.style.height = (total * height) + 'px';
|
86
|
+
});
|
87
|
+
}
|
88
|
+
}
|
89
|
+
findEventIndex(event) {
|
90
|
+
const a = this.events.filter(c => c.range.startTime.equal(event.range.startTime, 'day')).sort((d1, d2) => {
|
91
|
+
return d1.range.startTime.compaireNew(d2.range.startTime);
|
92
|
+
});
|
93
|
+
return a.indexOf(event);
|
94
|
+
}
|
95
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXSchedulerDayTimeViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
96
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXSchedulerDayTimeViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-day-time-view\">\n <table class=\"header\">\n <thead>\n <th class=\"time-column\"></th>\n <th *ngFor=\"let d of slots\" class=\"header-cell\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'ddd'}}<br>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n </th>\n </thead>\n </table>\n <div class=\"v-scroll\">\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event,t.value)\" [attr.data-uid]=\"d.uid\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.hour==t.value\" class=\"event\"\n role=\"button\" aria-readonly=\"false\" aria-selected=\"true\" aria-grabbed=\"false\"\n cdkDrag [cdkDragData]=\"e\" \n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\" [title]=\"e.title\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n <div class=\"event-drag-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>", styles: [".ax-scheduler-day-time-view .event-wrapper{position:absolute;top:0;left:0;display:inline-flex;flex:auto;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;width:100%}.ax-scheduler-day-time-view .event-wrapper .event{display:block;position:relative;flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "pipe", type: i3.AXDateTimePipe, name: "dt" }], encapsulation: i0.ViewEncapsulation.None });
|
97
|
+
}
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXSchedulerDayTimeViewComponent, decorators: [{
|
99
|
+
type: Component,
|
100
|
+
args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], template: "<div class=\"view ax-scheduler-day-time-view\">\n <table class=\"header\">\n <thead>\n <th class=\"time-column\"></th>\n <th *ngFor=\"let d of slots\" class=\"header-cell\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'ddd'}}<br>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n </th>\n </thead>\n </table>\n <div class=\"v-scroll\">\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event,t.value)\" [attr.data-uid]=\"d.uid\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.hour==t.value\" class=\"event\"\n role=\"button\" aria-readonly=\"false\" aria-selected=\"true\" aria-grabbed=\"false\"\n cdkDrag [cdkDragData]=\"e\" \n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\" [title]=\"e.title\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n <div class=\"event-drag-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>", styles: [".ax-scheduler-day-time-view .event-wrapper{position:absolute;top:0;left:0;display:inline-flex;flex:auto;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;width:100%}.ax-scheduler-day-time-view .event-wrapper .event{display:block;position:relative;flex:1}\n"] }]
|
101
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLWRheXRpbWUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9zY2hlZHVsZXIvdmlld3MvZGF5dGltZS9zY2hlZHVsZXItZGF5dGltZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9kYXl0aW1lL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBUTNELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSw0QkFBNEI7SUFDekQ7SUFBeUM7SUFBN0QsWUFBb0IsR0FBK0IsRUFBVSxHQUFzQjtRQUFJLEtBQUssRUFBRSxDQUFDO1FBQTNFLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBYSxDQUFDO0lBQ2pHLEtBQUssR0FBVSxFQUFFLENBQUM7SUFDVixPQUFPLENBQWM7SUFDckIsU0FBUyxDQUFjO0lBQ3ZCLElBQUksQ0FBYztJQUNsQixNQUFNLENBQWM7SUFDcEIsSUFBSSxDQUFjO0lBRTFCLFFBQVE7SUFDUixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFjLFdBQVcsQ0FBQyxD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S0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBdUI7UUFDbEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUN4RCxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzt3R0ExRlEsK0JBQStCOzRGQUEvQiwrQkFBK0IsdUNBRjdCLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLENBQUMsaURDVHhHLHl6RUE0Q007OzRGRGpDTywrQkFBK0I7a0JBTjNDLFNBQVM7b0NBR1MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFdBQVcsaUNBQWlDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZWR1bGVyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYU2NoZWR1bGVyU2xvdCwgQVhTY2hlZHVsZXJFdmVudCB9IGZyb20gJy4uLy4uL3NjaGVkdWxlci5jbGFzcyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lLCBBWERhdGVUaW1lUmFuZ2UgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGVyLWRheXRpbWUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2NoZWR1bGVyLWRheXRpbWUtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTY2hlZHVsZXJEYXlUaW1lVmlld0NvbXBvbmVudCB9XVxufSlcbmV4cG9ydCBjbGFzcyBBWFNjaGVkdWxlckRheVRpbWVWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbG06IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgc3VwZXIoKTsgfVxuICAgIHRpbWVzOiBhbnlbXSA9IFtdO1xuICAgIHByaXZhdGUgdlNjcm9sbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBjb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgdmlldzogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBoZWFkZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgYm9keTogSFRNTEVsZW1lbnQ7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudlNjcm9sbCA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy52LXNjcm9sbCcpO1xuICAgICAgICB0aGlzLmhlYWRlciA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5oZWFkZXInKTtcbiAgICAgICAgdGhpcy5ib2R5ID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmJvZHknKTtcbiAgICAgICAgdGhpcy52aWV3ID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLnZpZXcnKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy52aWV3LWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIHVwZGF0ZVNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpcnN0VHIgPSB0aGlzLmJvZHkucXVlcnlTZWxlY3RvcigndHInKTtcbiAgICAgICAgaWYgKGZpcnN0VHIpIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgICAgICB0aGlzLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCd0aCcpLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGQgPSBmaXJzdFRyLmNoaWxkcmVuLml0ZW0oaW5kZXgrKykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGQuc3R5bGUud2lkdGggPSBgJHtjLm9mZnNldFdpZHRofXB4YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy52U2Nyb2xsLnN0eWxlLmhlaWdodCA9IGBjYWxjKDEwMCUgLSAke3RoaXMuaGVhZGVyLmNsaWVudEhlaWdodH1weClgO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuY29udGFpbmVyLmNsaWVudEhlaWdodH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcnJhbmdlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGUoZGF0ZTogQVhEYXRlVGltZSA9IG5ldyBBWERhdGVUaW1lKCkpIHtcbiAgICAgICAgdGhpcy50aW1lcyA9IFtdO1xuICAgICAgICB0aGlzLnNsb3RzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pbnRlcnZhbDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBkID0gZGF0ZS5hZGREYXkoaSk7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2UoZCwgZCk7XG4gICAgICAgICAgICBjb25zdCBzbG90OiBBWFNjaGVkdWxlclNsb3QgPSB7XG4gICAgICAgICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgICAgICAgZXZlbnRzOiB0aGlzLmdldEV2ZW50cyhyYW5nZSwgJ2RheScpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5zbG90cy5wdXNoKHNsb3QpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy50aW1lcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAoJzAnICsgaSkuc2xpY2UoLTIpICsgJzowMCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmF2aWdhdG9yRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZXh0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGREYXkodGhpcy5pbnRlcnZhbCkpO1xuICAgIH1cbiAgICBwcmV2KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGREYXkoLXRoaXMuaW50ZXJ2YWwpKTtcbiAgICB9XG5cbiAgICBhcnJhbmdlRXZlbnRzKCkge1xuICAgICAgICBjb25zdCBldmVudHMgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcuZXZlbnQnKTtcbiAgICAgICAgaWYgKGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGV2ZW50c1swXS5jbG9zZXN0KCd0ZCcpLm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgIGV2ZW50cy5mb3JFYWNoKGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVpZCA9IGUuYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oJ2RhdGEtdWlkJykudmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSB0aGlzLmV2ZW50cy5maW5kKGMgPT4gYy51aWQgPT09IHVpZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZHVyID0gTWF0aC5jZWlsKE1hdGguYWJzKGV2ZW50LnJhbmdlLmR1cmF0aW9uKCdob3VycycpKSk7XG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsID0gZHVyICsgMTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLmhvdXIgKyB0b3RhbCA+IDIzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsID0gMjQgLSBldmVudC5yYW5nZS5zdGFydFRpbWUuaG91cjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZS5zdHlsZS5oZWlnaHQgPSAodG90YWwgKiBoZWlnaHQpICsgJ3B4JztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmluZEV2ZW50SW5kZXgoZXZlbnQ6IEFYU2NoZWR1bGVyRXZlbnQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBhID0gdGhpcy5ldmVudHMuZmlsdGVyKGMgPT5cbiAgICAgICAgICAgIGMucmFuZ2Uuc3RhcnRUaW1lLmVxdWFsKGV2ZW50LnJhbmdlLnN0YXJ0VGltZSwgJ2RheScpXG4gICAgICAgICkuc29ydCgoZDEsIGQyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZDEucmFuZ2Uuc3RhcnRUaW1lLmNvbXBhaXJlTmV3KGQyLnJhbmdlLnN0YXJ0VGltZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhLmluZGV4T2YoZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3IGF4LXNjaGVkdWxlci1kYXktdGltZS12aWV3XCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInRpbWUtY29sdW1uXCI+PC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgZCBvZiBzbG90c1wiIGNsYXNzPVwiaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy5zYW1lLXdlZWstZGF5XT1cImQucmFuZ2Uuc3RhcnRUaW1lLmVxdWFsKHRvZGF5KVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2QucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdkZGQnfX08YnI+XG4gICAgICAgICAgICAgICAgICAgIHt7ZC5yYW5nZS5zdGFydFRpbWUgfCBkdDogJ0REJ319XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICA8L3RoZWFkPlxuICAgIDwvdGFibGU+XG4gICAgPGRpdiBjbGFzcz1cInYtc2Nyb2xsXCI+XG4gICAgICAgIDx0YWJsZSBjbGFzcz1cImJvZHlcIiBjZGtEcm9wTGlzdEdyb3VwPlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgdCBvZiB0aW1lc1wiPlxuICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3QuZGlzcGxheX19XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZCBvZiBzbG90c1wiIGNsYXNzPVwic2xvdC1jZWxsXCIgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyYWdEcm9wT25EYXkoJGV2ZW50LHQudmFsdWUpXCIgW2F0dHIuZGF0YS11aWRdPVwiZC51aWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZSBvZiBkLmV2ZW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZS5yYW5nZS5zdGFydFRpbWUuaG91cj09dC52YWx1ZVwiIGNsYXNzPVwiZXZlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiIGFyaWEtcmVhZG9ubHk9XCJmYWxzZVwiIGFyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCIgYXJpYS1ncmFiYmVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS11aWRdPVwiZS51aWRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJlLmNvbG9yXCIgW3RpdGxlXT1cImUudGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC10aXRsZVwiPnt7ZS50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZS5yYW5nZS5zdGFydFRpbWUgfCBkdDogJ0hIOm1tJ319PC9zcGFuPiAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tlLnJhbmdlLmVuZFRpbWUgfCBkdDogJ0hIOm1tJ319PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpjZGtEcmFnUHJldmlldyBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJlLmNvbG9yXCIgY2xhc3M9XCJldmVudC1kcmFnLXByZXZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2UudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtZHJhZy1wbGFjZWhvbGRlclwiICpjZGtEcmFnUGxhY2Vob2xkZXI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
@@ -0,0 +1,214 @@
|
|
1
|
+
import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation, HostListener, NgZone } from '@angular/core';
|
2
|
+
import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
|
3
|
+
import { AXSchedulerEventChangeArgs } from '../../scheduler.class';
|
4
|
+
import { AXDateTime, AXDateTimeRange } from '@acorex/core';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/common";
|
7
|
+
import * as i2 from "@angular/cdk/drag-drop";
|
8
|
+
import * as i3 from "@acorex/core";
|
9
|
+
export class AXSchedulerMonthViewComponent extends AXSchedulerBaseViewComponent {
|
10
|
+
elm;
|
11
|
+
zone;
|
12
|
+
cdr;
|
13
|
+
constructor(elm, zone, cdr) {
|
14
|
+
super();
|
15
|
+
this.elm = elm;
|
16
|
+
this.zone = zone;
|
17
|
+
this.cdr = cdr;
|
18
|
+
}
|
19
|
+
onKeydownHandler(e) {
|
20
|
+
if (e.deltaY > 0) {
|
21
|
+
this.navigate(this.navigatorDate.addMonth(1));
|
22
|
+
}
|
23
|
+
else if (e.deltaY < 0) {
|
24
|
+
this.navigate(this.navigatorDate.addMonth(-1));
|
25
|
+
}
|
26
|
+
}
|
27
|
+
weekDays = [
|
28
|
+
{
|
29
|
+
index: 0, title: 'Sunday'
|
30
|
+
},
|
31
|
+
{
|
32
|
+
index: 1, title: 'Moday'
|
33
|
+
},
|
34
|
+
{
|
35
|
+
index: 2, title: 'Tuesday'
|
36
|
+
},
|
37
|
+
{
|
38
|
+
index: 3, title: 'Wednesday'
|
39
|
+
},
|
40
|
+
{
|
41
|
+
index: 4, title: 'Thursday'
|
42
|
+
},
|
43
|
+
{
|
44
|
+
index: 5, title: 'Friday'
|
45
|
+
},
|
46
|
+
{
|
47
|
+
index: 6, title: 'Saturday'
|
48
|
+
}
|
49
|
+
];
|
50
|
+
startDayOfWeek = 'Moday';
|
51
|
+
container;
|
52
|
+
view;
|
53
|
+
header;
|
54
|
+
body;
|
55
|
+
ngAfterViewInit() {
|
56
|
+
this.header = this.elm.nativeElement.querySelector('.header');
|
57
|
+
this.body = this.elm.nativeElement.querySelector('.body');
|
58
|
+
this.view = this.elm.nativeElement.querySelector('.view');
|
59
|
+
this.container = this.elm.nativeElement.closest('.view-container');
|
60
|
+
}
|
61
|
+
updateSize() {
|
62
|
+
const firstTr = this.body.querySelector('tr');
|
63
|
+
if (firstTr) {
|
64
|
+
let index = 0;
|
65
|
+
this.header.querySelectorAll('th').forEach(c => {
|
66
|
+
const td = firstTr.children.item(index++);
|
67
|
+
td.style.width = `${c.offsetWidth}px`;
|
68
|
+
});
|
69
|
+
this.body.style.height = `calc(100% - ${this.header.clientHeight}px)`;
|
70
|
+
if (this.container) {
|
71
|
+
this.view.style.height = `${this.container.clientHeight}px`;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
this.arrangeEvents();
|
75
|
+
}
|
76
|
+
matrixify(arr, rows, cols) {
|
77
|
+
const matrix = [];
|
78
|
+
if (rows * cols === arr.length) {
|
79
|
+
for (let i = 0; i < arr.length; i += cols) {
|
80
|
+
matrix.push(arr.slice(i, cols + i));
|
81
|
+
}
|
82
|
+
}
|
83
|
+
return matrix;
|
84
|
+
}
|
85
|
+
matrixSlots;
|
86
|
+
navigate(date = new AXDateTime()) {
|
87
|
+
const start = date.month.range.startTime.firstDayOfWeek;
|
88
|
+
const end = date.month.range.startTime.endDayOfWeek;
|
89
|
+
const dur = end.duration(start);
|
90
|
+
this.slots = [];
|
91
|
+
for (let i = 0; i < dur; i++) {
|
92
|
+
const d = start.addDay(i);
|
93
|
+
const range = new AXDateTimeRange(d, d);
|
94
|
+
this.slots.push({
|
95
|
+
range,
|
96
|
+
events: this.getEvents(range, 'day'),
|
97
|
+
uid: range.startTime.date.getTime().toString()
|
98
|
+
});
|
99
|
+
}
|
100
|
+
const dayInWeek = 7;
|
101
|
+
const rows = Math.floor(dur / dayInWeek);
|
102
|
+
this.matrixSlots = this.matrixify(this.slots, rows, dayInWeek);
|
103
|
+
this.navigatorDate = date;
|
104
|
+
this.cdr.detectChanges();
|
105
|
+
}
|
106
|
+
next() {
|
107
|
+
this.navigate(this.navigatorDate.addMonth(this.interval));
|
108
|
+
}
|
109
|
+
prev() {
|
110
|
+
this.navigate(this.navigatorDate.addMonth(-this.interval));
|
111
|
+
}
|
112
|
+
arrangeEvents() {
|
113
|
+
this.slots.forEach(slot => {
|
114
|
+
const slotTd = this.elm.nativeElement.querySelector(`[data-uid='` + slot.uid + `']`);
|
115
|
+
const viewMoreDiv = slotTd.querySelector('.view-more');
|
116
|
+
let viewMore = 0;
|
117
|
+
viewMoreDiv.style.display = 'none';
|
118
|
+
const width = slotTd.offsetWidth;
|
119
|
+
slot.events.forEach(event => {
|
120
|
+
const e = slotTd.querySelector(`[data-uid='` + event.uid + `']`);
|
121
|
+
if (e) {
|
122
|
+
const dur = Math.ceil(Math.abs(event.range.duration()));
|
123
|
+
e.style.visibility = 'unset';
|
124
|
+
e.style.width = (dur * width) + 'px';
|
125
|
+
e.style.top = ((this.findEventIndex(event)) * 25) + 'px';
|
126
|
+
if (e.getBoundingClientRect().bottom >= slotTd.getBoundingClientRect().bottom) {
|
127
|
+
viewMore++;
|
128
|
+
e.style.visibility = 'hidden';
|
129
|
+
viewMoreDiv.style.display = 'unset';
|
130
|
+
viewMoreDiv.innerHTML = `+${viewMore} more`;
|
131
|
+
}
|
132
|
+
}
|
133
|
+
});
|
134
|
+
});
|
135
|
+
}
|
136
|
+
findEventIndex(event) {
|
137
|
+
const a = this.events.filter(c => c.range.startTime.equal(event.range.startTime, 'days')).sort((d1, d2) => {
|
138
|
+
const v = d1.range.startTime.compaireNew(d2.range.startTime, 'YMDhm');
|
139
|
+
return v;
|
140
|
+
});
|
141
|
+
return a.indexOf(event);
|
142
|
+
}
|
143
|
+
dragEnterSlot;
|
144
|
+
dragPreview;
|
145
|
+
dragHour = null;
|
146
|
+
onDragStarted(event) {
|
147
|
+
this.zone.runOutsideAngular(() => {
|
148
|
+
this.dragEnterSlot = event.source.dropContainer.element.nativeElement;
|
149
|
+
this.elm.nativeElement.addEventListener('mousemove', this.drageMouseMove.bind(this));
|
150
|
+
});
|
151
|
+
}
|
152
|
+
onDragEntered(event) {
|
153
|
+
this.dragPreview = document.querySelector('.cdk-drag-preview');
|
154
|
+
this.dragEnterSlot = event.container.element.nativeElement;
|
155
|
+
}
|
156
|
+
onDragEnded(event) {
|
157
|
+
this.dragEnterSlot = null;
|
158
|
+
this.dragPreview = null;
|
159
|
+
this.zone.runOutsideAngular(() => {
|
160
|
+
this.elm.nativeElement.removeEventListener('mousemove', this.drageMouseMove.bind(this));
|
161
|
+
});
|
162
|
+
}
|
163
|
+
drageMouseMove(e) {
|
164
|
+
this.zone.runOutsideAngular(() => {
|
165
|
+
if (!this.dragPreview) {
|
166
|
+
this.dragPreview = document.querySelector('.cdk-drag-preview');
|
167
|
+
}
|
168
|
+
if (this.dragEnterSlot && this.dragPreview) {
|
169
|
+
const diff = this.dragPreview.getBoundingClientRect().top - this.dragEnterSlot.getBoundingClientRect().top;
|
170
|
+
const hour = Math.round((diff / this.dragEnterSlot.getBoundingClientRect().height) * 24);
|
171
|
+
this.dragPreview.querySelector('.ax-sch-str').innerHTML = `${hour > 0 ? hour : 0}:00`;
|
172
|
+
this.dragHour = hour;
|
173
|
+
}
|
174
|
+
});
|
175
|
+
}
|
176
|
+
onDragDropOnDay(e) {
|
177
|
+
const el = e.item.element.nativeElement;
|
178
|
+
if (e.previousContainer !== e.container) {
|
179
|
+
el.style.opacity = '0';
|
180
|
+
const r = new AXSchedulerEventChangeArgs();
|
181
|
+
r.event = e.item.data;
|
182
|
+
r.oldSlot = e.previousContainer.data;
|
183
|
+
r.newSlot = e.container.data;
|
184
|
+
//
|
185
|
+
r.onComplete.subscribe((er) => {
|
186
|
+
el.style.opacity = '1';
|
187
|
+
if (!er.canceled) {
|
188
|
+
const slotTime = er.newSlot.range.startTime.startOf();
|
189
|
+
const z = er.event.range.startTime.clone();
|
190
|
+
const durDay = slotTime.duration(z.startOf(), 'days');
|
191
|
+
er.event.range.startTime = er.event.range.startTime.add('day', durDay);
|
192
|
+
if (this.dragHour != null) {
|
193
|
+
er.event.range.startTime = er.event.range.startTime.set('hour', this.dragHour);
|
194
|
+
er.event.range.startTime = er.event.range.startTime.set('minute', 0);
|
195
|
+
}
|
196
|
+
er.event.range.endTime = er.event.range.endTime.add('day', durDay);
|
197
|
+
er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);
|
198
|
+
er.newSlot.events.push(er.event);
|
199
|
+
}
|
200
|
+
});
|
201
|
+
this.onEventChanged.emit(r);
|
202
|
+
}
|
203
|
+
}
|
204
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXSchedulerMonthViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
205
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXSchedulerMonthViewComponent, selector: "ng-component", host: { listeners: { "wheel": "onKeydownHandler($event)" } }, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerMonthViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-sheduler-month-view\">\n <table class=\"header\">\n <thead>\n <th *ngFor=\"let d of weekDays\" class=\"header-cell\">\n <span [class.same-week-day]=\"d.index==today.dayInWeek\"> {{d.title}}</span>\n </th>\n </thead>\n </table>\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let r of matrixSlots\">\n <td *ngFor=\"let d of r\" class=\"cell-slot\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\" \n [attr.data-uid]=\"d.uid\">\n <div class=\"day-num\" [class.first-day-month]=\"d.range.startTime.dayInMonth==1\"\n [class.today]=\"d.range.startTime.equal(today)\">\n <ng-container *ngIf=\"d.range.startTime.dayInMonth==1\">\n {{d.range.startTime | dt: 'MMM'}}\n </ng-container>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div class=\"event ax-scheduler-event\" cdkDrag [cdkDragData]=\"e\" [attr.data-uid]=\"e.uid\"\n [style.background-color]=\"e.color\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragEntered)=\"onDragEntered($event)\">\n <span class=\"ax-sch-str\">{{e.range.startTime | dt: 'HH:mm'}}</span><span\n class=\"event-title\">{{e.title}}</span><span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n </ng-container>\n </div>\n <div class=\"view-more\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".ax-sheduler-month-view .day-num{position:absolute;left:5px;top:5px;font-size:smaller;padding:1px 5px;display:flex;border-radius:10%;align-items:center;justify-content:center}.ax-sheduler-month-view .day-num.first-day-month{color:var(--primary-color);font-weight:700}.ax-sheduler-month-view .day-num:hover{text-decoration:underline;cursor:pointer}.ax-sheduler-month-view .day-num.today{background-color:var(--primary-light-color);color:var(--danger-fore-color)}.ax-sheduler-month-view .view-more{position:absolute;bottom:0;font-size:x-small;right:0;padding:0 5px;width:100%;cursor:pointer;text-align:center;background-color:var(--gray-dark-color)}.ax-sheduler-month-view .view-more:hover{box-shadow:0 6px 10px #00000024,0 1px 18px #0000001f,0 3px 5px -1px #0003}.ax-sheduler-month-view .event-wrapper{position:absolute;top:30px;left:0}.ax-sheduler-month-view .event-wrapper .event{position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: i3.AXDateTimePipe, name: "dt" }], encapsulation: i0.ViewEncapsulation.None });
|
206
|
+
}
|
207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXSchedulerMonthViewComponent, decorators: [{
|
208
|
+
type: Component,
|
209
|
+
args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerMonthViewComponent }], template: "<div class=\"view ax-sheduler-month-view\">\n <table class=\"header\">\n <thead>\n <th *ngFor=\"let d of weekDays\" class=\"header-cell\">\n <span [class.same-week-day]=\"d.index==today.dayInWeek\"> {{d.title}}</span>\n </th>\n </thead>\n </table>\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let r of matrixSlots\">\n <td *ngFor=\"let d of r\" class=\"cell-slot\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\" \n [attr.data-uid]=\"d.uid\">\n <div class=\"day-num\" [class.first-day-month]=\"d.range.startTime.dayInMonth==1\"\n [class.today]=\"d.range.startTime.equal(today)\">\n <ng-container *ngIf=\"d.range.startTime.dayInMonth==1\">\n {{d.range.startTime | dt: 'MMM'}}\n </ng-container>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div class=\"event ax-scheduler-event\" cdkDrag [cdkDragData]=\"e\" [attr.data-uid]=\"e.uid\"\n [style.background-color]=\"e.color\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragEntered)=\"onDragEntered($event)\">\n <span class=\"ax-sch-str\">{{e.range.startTime | dt: 'HH:mm'}}</span><span\n class=\"event-title\">{{e.title}}</span><span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n </ng-container>\n </div>\n <div class=\"view-more\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".ax-sheduler-month-view .day-num{position:absolute;left:5px;top:5px;font-size:smaller;padding:1px 5px;display:flex;border-radius:10%;align-items:center;justify-content:center}.ax-sheduler-month-view .day-num.first-day-month{color:var(--primary-color);font-weight:700}.ax-sheduler-month-view .day-num:hover{text-decoration:underline;cursor:pointer}.ax-sheduler-month-view .day-num.today{background-color:var(--primary-light-color);color:var(--danger-fore-color)}.ax-sheduler-month-view .view-more{position:absolute;bottom:0;font-size:x-small;right:0;padding:0 5px;width:100%;cursor:pointer;text-align:center;background-color:var(--gray-dark-color)}.ax-sheduler-month-view .view-more:hover{box-shadow:0 6px 10px #00000024,0 1px 18px #0000001f,0 3px 5px -1px #0003}.ax-sheduler-month-view .event-wrapper{position:absolute;top:30px;left:0}.ax-sheduler-month-view .event-wrapper .event{position:absolute}\n"] }]
|
210
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onKeydownHandler: [{
|
211
|
+
type: HostListener,
|
212
|
+
args: ['wheel', ['$event']]
|
213
|
+
}] } });
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLW1vbnRoLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2FsZW5kYXIvc2NoZWR1bGVyL3ZpZXdzL21vbnRoL3NjaGVkdWxlci1tb250aC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9tb250aC9zY2hlZHVsZXItbW9udGgtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNFLE9BQU8sRUFBb0IsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFRM0QsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDRCQUE0QjtJQUkvRDtJQUNBO0lBQ0E7SUFIWixZQUNZLEdBQStCLEVBQy9CLElBQVksRUFDWixHQUFzQjtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQUhBLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUVsQyxDQUFDO0lBR0QsZ0JBQWdCLENBQUMsQ0FBTTtRQUNuQixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FB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YW5nZURldGVjdG9yUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiwgSG9zdExpc3RlbmVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlZHVsZXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhTY2hlZHVsZXJFdmVudCwgQVhTY2hlZHVsZXJFdmVudENoYW5nZUFyZ3MgfSBmcm9tICcuLi8uLi9zY2hlZHVsZXIuY2xhc3MnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlci1tb250aC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zY2hlZHVsZXItbW9udGgtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTY2hlZHVsZXJNb250aFZpZXdDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhTY2hlZHVsZXJNb250aFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50IHtcblxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxtOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3doZWVsJywgWyckZXZlbnQnXSlcbiAgICBvbktleWRvd25IYW5kbGVyKGU6IGFueSkge1xuICAgICAgICBpZiAoZS5kZWx0YVkgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGRNb250aCgxKSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChlLmRlbHRhWSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGUodGhpcy5uYXZpZ2F0b3JEYXRlLmFkZE1vbnRoKC0xKSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdlZWtEYXlzOiBhbnlbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgaW5kZXg6IDAsIHRpdGxlOiAnU3VuZGF5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpbmRleDogMSwgdGl0bGU6ICdNb2RheSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaW5kZXg6IDIsIHRpdGxlOiAnVHVlc2RheSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaW5kZXg6IDMsIHRpdGxlOiAnV2VkbmVzZGF5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpbmRleDogNCwgdGl0bGU6ICdUaHVyc2RheSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaW5kZXg6IDUsIHRpdGxlOiAnRnJpZGF5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpbmRleDogNiwgdGl0bGU6ICdTYXR1cmRheSdcbiAgICAgICAgfV07XG4gICAgc3RhcnREYXlPZldlZWsgPSAnTW9kYXknO1xuXG5cblxuICAgIHByaXZhdGUgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIHZpZXc6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaGVhZGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGJvZHk6IEhUTUxFbGVtZW50O1xuXG5cblxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhlYWRlciA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5oZWFkZXInKTtcbiAgICAgICAgdGhpcy5ib2R5ID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmJvZHknKTtcbiAgICAgICAgdGhpcy52aWV3ID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLnZpZXcnKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy52aWV3LWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgfVxuXG5cbiAgICB1cGRhdGVTaXplKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaXJzdFRyID0gdGhpcy5ib2R5LnF1ZXJ5U2VsZWN0b3IoJ3RyJyk7XG4gICAgICAgIGlmIChmaXJzdFRyKSB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICAgICAgdGhpcy5oZWFkZXIucXVlcnlTZWxlY3RvckFsbCgndGgnKS5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRkID0gZmlyc3RUci5jaGlsZHJlbi5pdGVtKGluZGV4KyspIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIHRkLnN0eWxlLndpZHRoID0gYCR7Yy5vZmZzZXRXaWR0aH1weGA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYm9keS5zdHlsZS5oZWlnaHQgPSBgY2FsYygxMDAlIC0gJHt0aGlzLmhlYWRlci5jbGllbnRIZWlnaHR9cHgpYDtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMudmlldy5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLmNvbnRhaW5lci5jbGllbnRIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJyYW5nZUV2ZW50cygpO1xuICAgIH1cblxuICAgIG1hdHJpeGlmeShhcnIsIHJvd3MsIGNvbHMpIHtcbiAgICAgICAgY29uc3QgbWF0cml4ID0gW107XG4gICAgICAgIGlmIChyb3dzICogY29scyA9PT0gYXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IGNvbHMpIHtcbiAgICAgICAgICAgICAgICBtYXRyaXgucHVzaChhcnIuc2xpY2UoaSwgY29scyArIGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF0cml4O1xuICAgIH1cblxuICAgIG1hdHJpeFNsb3RzOiBhbnk7XG5cbiAgICBuYXZpZ2F0ZShkYXRlOiBBWERhdGVUaW1lID0gbmV3IEFYRGF0ZVRpbWUoKSkge1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZGF0ZS5tb250aC5yYW5nZS5zdGFydFRpbWUuZmlyc3REYXlPZldlZWs7XG4gICAgICAgIGNvbnN0IGVuZCA9IGRhdGUubW9udGgucmFuZ2Uuc3RhcnRUaW1lLmVuZERheU9mV2VlaztcbiAgICAgICAgY29uc3QgZHVyID0gZW5kLmR1cmF0aW9uKHN0YXJ0KTtcbiAgICAgICAgdGhpcy5zbG90cyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGR1cjsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBkID0gc3RhcnQuYWRkRGF5KGkpO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2U6IEFYRGF0ZVRpbWVSYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2UoZCwgZCk7XG4gICAgICAgICAgICB0aGlzLnNsb3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgICAgICAgIGV2ZW50czogdGhpcy5nZXRFdmVudHMocmFuZ2UsICdkYXknKSxcbiAgICAgICAgICAgICAgICB1aWQ6IHJhbmdlLnN0YXJ0VGltZS5kYXRlLmdldFRpbWUoKS50b1N0cmluZygpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXlJbldlZWsgPSA3O1xuICAgICAgICBjb25zdCByb3dzID0gTWF0aC5mbG9vcihkdXIgLyBkYXlJbldlZWspO1xuICAgICAgICB0aGlzLm1hdHJpeFNsb3RzID0gdGhpcy5tYXRyaXhpZnkodGhpcy5zbG90cywgcm93cywgZGF5SW5XZWVrKTtcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JEYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkTW9udGgodGhpcy5pbnRlcnZhbCkpO1xuICAgIH1cbiAgICBwcmV2KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGRNb250aCgtdGhpcy5pbnRlcnZhbCkpO1xuICAgIH1cblxuICAgIGFycmFuZ2VFdmVudHMoKSB7XG4gICAgICAgIHRoaXMuc2xvdHMuZm9yRWFjaChzbG90ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNsb3RUZCA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oYFtkYXRhLXVpZD0nYCArIHNsb3QudWlkICsgYCddYCk7XG4gICAgICAgICAgICBjb25zdCB2aWV3TW9yZURpdiA9IHNsb3RUZC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLnZpZXctbW9yZScpO1xuICAgICAgICAgICAgbGV0IHZpZXdNb3JlID0gMDtcbiAgICAgICAgICAgIHZpZXdNb3JlRGl2LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IHNsb3RUZC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIHNsb3QuZXZlbnRzLmZvckVhY2goZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBzbG90VGQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oYFtkYXRhLXVpZD0nYCArIGV2ZW50LnVpZCArIGAnXWApO1xuICAgICAgICAgICAgICAgIGlmIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGR1ciA9IE1hdGguY2VpbChNYXRoLmFicyhldmVudC5yYW5nZS5kdXJhdGlvbigpKSk7XG4gICAgICAgICAgICAgICAgICAgIGUuc3R5bGUudmlzaWJpbGl0eSA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgICAgIGUuc3R5bGUud2lkdGggPSAoZHVyICogd2lkdGgpICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgZS5zdHlsZS50b3AgPSAoKHRoaXMuZmluZEV2ZW50SW5kZXgoZXZlbnQpKSAqIDI1KSArICdweCc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSA+PSBzbG90VGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3TW9yZSsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3TW9yZURpdi5zdHlsZS5kaXNwbGF5ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb3JlRGl2LmlubmVySFRNTCA9IGArJHt2aWV3TW9yZX0gbW9yZWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmluZEV2ZW50SW5kZXgoZXZlbnQ6IEFYU2NoZWR1bGVyRXZlbnQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBhID0gdGhpcy5ldmVudHMuZmlsdGVyKGMgPT5cbiAgICAgICAgICAgIGMucmFuZ2Uuc3RhcnRUaW1lLmVxdWFsKGV2ZW50LnJhbmdlLnN0YXJ0VGltZSwgJ2RheXMnKVxuICAgICAgICApLnNvcnQoKGQxLCBkMikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdiA9IGQxLnJhbmdlLnN0YXJ0VGltZS5jb21wYWlyZU5ldyhkMi5yYW5nZS5zdGFydFRpbWUsICdZTURobScpO1xuICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYS5pbmRleE9mKGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRyYWdFbnRlclNsb3Q6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgZHJhZ1ByZXZpZXc6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgZHJhZ0hvdXI6IG51bWJlciA9IG51bGw7XG4gICAgb25EcmFnU3RhcnRlZChldmVudCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kcmFnRW50ZXJTbG90ID0gZXZlbnQuc291cmNlLmRyb3BDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmRyYWdlTW91c2VNb3ZlLmJpbmQodGhpcykpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25EcmFnRW50ZXJlZChldmVudCkge1xuICAgICAgICB0aGlzLmRyYWdQcmV2aWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5jZGstZHJhZy1wcmV2aWV3Jyk7XG4gICAgICAgIHRoaXMuZHJhZ0VudGVyU2xvdCA9IGV2ZW50LmNvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICAgIG9uRHJhZ0VuZGVkKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJhZ0VudGVyU2xvdCA9IG51bGw7XG4gICAgICAgIHRoaXMuZHJhZ1ByZXZpZXcgPSBudWxsO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmRyYWdlTW91c2VNb3ZlLmJpbmQodGhpcykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRyYWdlTW91c2VNb3ZlKGU6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kcmFnUHJldmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1ByZXZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmNkay1kcmFnLXByZXZpZXcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdFbnRlclNsb3QgJiYgdGhpcy5kcmFnUHJldmlldykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpZmYgPSB0aGlzLmRyYWdQcmV2aWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtIHRoaXMuZHJhZ0VudGVyU2xvdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgICAgICAgICAgICAgY29uc3QgaG91ciA9IE1hdGgucm91bmQoKGRpZmYgLyB0aGlzLmRyYWdFbnRlclNsb3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KSAqIDI0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdQcmV2aWV3LnF1ZXJ5U2VsZWN0b3IoJy5heC1zY2gtc3RyJykuaW5uZXJIVE1MID0gYCR7aG91ciA+IDAgPyBob3VyIDogMH06MDBgO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ0hvdXIgPSBob3VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRyYWdEcm9wT25EYXkoZSkge1xuICAgICAgICBjb25zdCBlbCA9IGUuaXRlbS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChlLnByZXZpb3VzQ29udGFpbmVyICE9PSBlLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgZWwuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICAgICAgICAgIGNvbnN0IHI6IEFYU2NoZWR1bGVyRXZlbnRDaGFuZ2VBcmdzID0gbmV3IEFYU2NoZWR1bGVyRXZlbnRDaGFuZ2VBcmdzKCk7XG4gICAgICAgICAgICByLmV2ZW50ID0gZS5pdGVtLmRhdGE7XG4gICAgICAgICAgICByLm9sZFNsb3QgPSBlLnByZXZpb3VzQ29udGFpbmVyLmRhdGE7XG4gICAgICAgICAgICByLm5ld1Nsb3QgPSBlLmNvbnRhaW5lci5kYXRhO1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHIub25Db21wbGV0ZS5zdWJzY3JpYmUoKGVyOiBBWFNjaGVkdWxlckV2ZW50Q2hhbmdlQXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGVsLnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgICAgICAgICAgICAgaWYgKCFlci5jYW5jZWxlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzbG90VGltZSA9IGVyLm5ld1Nsb3QucmFuZ2Uuc3RhcnRUaW1lLnN0YXJ0T2YoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeiA9IGVyLmV2ZW50LnJhbmdlLnN0YXJ0VGltZS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkdXJEYXkgPSBzbG90VGltZS5kdXJhdGlvbih6LnN0YXJ0T2YoKSwgJ2RheXMnKTtcbiAgICAgICAgICAgICAgICAgICAgZXIuZXZlbnQucmFuZ2Uuc3RhcnRUaW1lID0gZXIuZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgZHVyRGF5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ0hvdXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXIuZXZlbnQucmFuZ2Uuc3RhcnRUaW1lID0gZXIuZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLnNldCgnaG91cicsIHRoaXMuZHJhZ0hvdXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXIuZXZlbnQucmFuZ2Uuc3RhcnRUaW1lID0gZXIuZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLnNldCgnbWludXRlJywgMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXIuZXZlbnQucmFuZ2UuZW5kVGltZSA9IGVyLmV2ZW50LnJhbmdlLmVuZFRpbWUuYWRkKCdkYXknLCBkdXJEYXkpO1xuICAgICAgICAgICAgICAgICAgICBlci5vbGRTbG90LmV2ZW50cyA9IGVyLm9sZFNsb3QuZXZlbnRzLmZpbHRlcihjID0+IGMudWlkICE9PSBlci5ldmVudC51aWQpO1xuICAgICAgICAgICAgICAgICAgICBlci5uZXdTbG90LmV2ZW50cy5wdXNoKGVyLmV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub25FdmVudENoYW5nZWQuZW1pdChyKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidmlldyBheC1zaGVkdWxlci1tb250aC12aWV3XCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgZCBvZiB3ZWVrRGF5c1wiIGNsYXNzPVwiaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3Muc2FtZS13ZWVrLWRheV09XCJkLmluZGV4PT10b2RheS5kYXlJbldlZWtcIj4ge3tkLnRpdGxlfX08L3NwYW4+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICA8L3RoZWFkPlxuICAgIDwvdGFibGU+XG4gICAgPHRhYmxlIGNsYXNzPVwiYm9keVwiIGNka0Ryb3BMaXN0R3JvdXA+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgciBvZiBtYXRyaXhTbG90c1wiPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZCBvZiByXCIgY2xhc3M9XCJjZWxsLXNsb3RcIiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImRcIlxuICAgICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJhZ0Ryb3BPbkRheSgkZXZlbnQpXCIgXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdWlkXT1cImQudWlkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbnVtXCIgW2NsYXNzLmZpcnN0LWRheS1tb250aF09XCJkLnJhbmdlLnN0YXJ0VGltZS5kYXlJbk1vbnRoPT0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50b2RheV09XCJkLnJhbmdlLnN0YXJ0VGltZS5lcXVhbCh0b2RheSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkLnJhbmdlLnN0YXJ0VGltZS5kYXlJbk1vbnRoPT0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkLnJhbmdlLnN0YXJ0VGltZSB8IGR0OiAnTU1NJ319XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZC5yYW5nZS5zdGFydFRpbWUgfCBkdDogJ0REJ319XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZSBvZiBkLmV2ZW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudCBheC1zY2hlZHVsZXItZXZlbnRcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJlXCIgW2F0dHIuZGF0YS11aWRdPVwiZS51aWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJlLmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cIm9uRHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZGtEcmFnRW5kZWQpPVwib25EcmFnRW5kZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZGtEcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlcmVkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1zY2gtc3RyXCI+e3tlLnJhbmdlLnN0YXJ0VGltZSB8IGR0OiAnSEg6bW0nfX08L3NwYW4+PHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXZlbnQtdGl0bGVcIj57e2UudGl0bGV9fTwvc3Bhbj48c3Bhbj57e2UucmFuZ2UuZW5kVGltZSB8IGR0OiAnSEg6bW0nfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3LW1vcmVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuPC9kaXY+Il19
|