xt-plugin-agenda 0.6.0 → 0.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 +3 -3
- package/fesm2022/xt-plugin-agenda.mjs +287 -0
- package/fesm2022/xt-plugin-agenda.mjs.map +1 -0
- package/index.d.ts +21 -0
- package/package.json +28 -57
- package/.editorconfig +0 -16
- package/.postcssrc.json +0 -1
- package/.rush/temp/chunked-rush-logs/xt-plugin-agenda.build-deploy-latest.chunks.jsonl +0 -92
- package/.rush/temp/chunked-rush-logs/xt-plugin-agenda.build.chunks.jsonl +0 -24
- package/.rush/temp/chunked-rush-logs/xt-plugin-agenda.test.chunks.jsonl +0 -50
- package/.rush/temp/chunked-rush-logs/xt-plugin-finance.build-deploy-latest.chunks.jsonl +0 -45
- package/.rush/temp/chunked-rush-logs/xt-plugin-finance.build-deploy-next.chunks.jsonl +0 -29
- package/.rush/temp/chunked-rush-logs/xt-plugin-finance.build.chunks.jsonl +0 -24
- package/.rush/temp/chunked-rush-logs/xt-plugin-finance.test.chunks.jsonl +0 -36
- package/.rush/temp/package-deps_test.json +0 -62
- package/.rush/temp/shrinkwrap-deps.json +0 -1083
- package/CHANGELOG.md +0 -15
- package/angular.json +0 -164
- package/projects/agenda/README.md +0 -17
- package/projects/agenda/ng-package.json +0 -7
- package/projects/agenda/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
- package/projects/agenda/package.json +0 -22
- package/projects/agenda/src/lib/date-interval/agenda-date-interval.component.css +0 -0
- package/projects/agenda/src/lib/date-interval/agenda-date-interval.component.html +0 -19
- package/projects/agenda/src/lib/date-interval/agenda-date-interval.component.spec.ts +0 -73
- package/projects/agenda/src/lib/date-interval/agenda-date-interval.component.ts +0 -30
- package/projects/agenda/src/lib/register.ts +0 -63
- package/projects/agenda/src/lib/task-complete/agenda-task-complete.component.css +0 -0
- package/projects/agenda/src/lib/task-complete/agenda-task-complete.component.html +0 -13
- package/projects/agenda/src/lib/task-complete/agenda-task-complete.component.spec.ts +0 -28
- package/projects/agenda/src/lib/task-complete/agenda-task-complete.component.ts +0 -35
- package/projects/agenda/src/lib/type-handlers/date-interval.ts +0 -27
- package/projects/agenda/src/lib/type-handlers/recurring-task.ts +0 -14
- package/projects/agenda/src/lib/type-handlers/task-complete-handler.spec.ts +0 -202
- package/projects/agenda/src/lib/type-handlers/task-complete-handler.ts +0 -146
- package/projects/agenda/src/public-api.ts +0 -6
- package/projects/agenda/src/test-setup.ts +0 -18
- package/projects/agenda/tsconfig.lib.json +0 -15
- package/projects/agenda/tsconfig.lib.prod.json +0 -11
- package/projects/agenda/tsconfig.spec.json +0 -18
- package/projects/agenda/vitest.config.ts +0 -19
- package/projects/agenda-plugin/federation.config.js +0 -43
- package/projects/agenda-plugin/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
- package/projects/agenda-plugin/public/favicon.ico +0 -0
- package/projects/agenda-plugin/public/pluginicon.png +0 -0
- package/projects/agenda-plugin/src/app/app.component.css +0 -0
- package/projects/agenda-plugin/src/app/app.component.html +0 -5
- package/projects/agenda-plugin/src/app/app.component.spec.ts +0 -42
- package/projects/agenda-plugin/src/app/app.component.ts +0 -26
- package/projects/agenda-plugin/src/app/app.config.ts +0 -21
- package/projects/agenda-plugin/src/app/app.routes.ts +0 -6
- package/projects/agenda-plugin/src/app/dummy-currency/dummy-currency.component.css +0 -0
- package/projects/agenda-plugin/src/app/dummy-currency/dummy-currency.component.html +0 -7
- package/projects/agenda-plugin/src/app/dummy-currency/dummy-currency.component.ts +0 -36
- package/projects/agenda-plugin/src/app/test-component/agenda-test.component.css +0 -0
- package/projects/agenda-plugin/src/app/test-component/agenda-test.component.html +0 -23
- package/projects/agenda-plugin/src/app/test-component/agenda-test.component.spec.ts +0 -34
- package/projects/agenda-plugin/src/app/test-component/agenda-test.component.ts +0 -136
- package/projects/agenda-plugin/src/bootstrap.ts +0 -6
- package/projects/agenda-plugin/src/index.html +0 -13
- package/projects/agenda-plugin/src/main.ts +0 -6
- package/projects/agenda-plugin/src/styles.css +0 -12
- package/projects/agenda-plugin/src/test-setup.ts +0 -18
- package/projects/agenda-plugin/tsconfig.app.json +0 -15
- package/projects/agenda-plugin/tsconfig.federation.json +0 -13
- package/projects/agenda-plugin/tsconfig.spec.json +0 -18
- package/projects/agenda-plugin/vitest.config.ts +0 -19
- package/rush-logs/xt-plugin-agenda.build-deploy-latest.error.log +0 -55
- package/rush-logs/xt-plugin-agenda.build-deploy-latest.log +0 -92
- package/rush-logs/xt-plugin-agenda.build.error.log +0 -9
- package/rush-logs/xt-plugin-agenda.build.log +0 -24
- package/rush-logs/xt-plugin-agenda.test.log +0 -50
- package/study.txt +0 -27
- package/tsconfig.json +0 -36
package/README.md
CHANGED
|
@@ -7,11 +7,11 @@ This plugin is part of the [ng-xtend framework](https://github.com/dont-code/ng-
|
|
|
7
7
|
It enable [xt-components](https://github.com/dont-code/ng-xtend/tree/main/libs/xt-components) to
|
|
8
8
|
|
|
9
9
|
- Display and edit any primitive value
|
|
10
|
-

|
|
10
|
+

|
|
11
11
|
- or complex object
|
|
12
|
-

|
|
12
|
+

|
|
13
13
|
- or list of objects
|
|
14
|
-

|
|
14
|
+

|
|
15
15
|
|
|
16
16
|
With it you are sure you can display / edit any type within any xt-components application like [xt-host](https://github.com/dont-code/ng-xtend/tree/main/libs/xt-host).
|
|
17
17
|
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
3
|
+
import { XtSimpleComponent, XtMessageHandler, XtResolverService } from 'xt-components';
|
|
4
|
+
import { InputNumber } from 'primeng/inputnumber';
|
|
5
|
+
import * as i1 from '@angular/forms';
|
|
6
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
7
|
+
import { Select } from 'primeng/select';
|
|
8
|
+
import { AbstractTypeHandler } from 'xt-type';
|
|
9
|
+
import { addYears, addMonths, addWeeks, addDays } from 'date-fns';
|
|
10
|
+
import { Checkbox } from 'primeng/checkbox';
|
|
11
|
+
import { XtStoreManagerService } from 'xt-store';
|
|
12
|
+
|
|
13
|
+
class AgendaDateIntervalComponent extends XtSimpleComponent {
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
super.ngOnInit();
|
|
16
|
+
this.manageFormControl('every', true);
|
|
17
|
+
this.manageFormControl('item', true);
|
|
18
|
+
}
|
|
19
|
+
allIntervalItems() {
|
|
20
|
+
return ['Day', 'Week', 'Month', 'Year'];
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AgendaDateIntervalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: AgendaDateIntervalComponent, isStandalone: true, selector: "xt-agenda-date-interval", usesInheritance: true, ngImport: i0, template: "@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n <div class=\"flex flex-row flex-nowrap items-center gap-2\">\n <div class=\"flex-none\"><span>Occurs every</span></div>\n <div class=\"flex-none\"><p-inputnumber [showButtons]=\"true\" formControlName=\"every\" [min]=\"0\" [inputSize]=\"3\"></p-inputnumber></div>\n <div class=\"flex-none\"><p-select formControlName=\"item\" [options]=\"allIntervalItems()\" placeholder=\"Select interval\"></p-select></div>\n </div>\n </ng-container>\n} @else {\n @let interval = displayValue();\n @if (interval) {\n <span>Occurs every \n @if ((interval.every!=null)&&(interval.every!=1)) {\n {{ interval.every }} \n }\n {{ interval.item}}\n </span>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AgendaDateIntervalComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'xt-agenda-date-interval', imports: [
|
|
28
|
+
InputNumber,
|
|
29
|
+
ReactiveFormsModule,
|
|
30
|
+
Select
|
|
31
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n <div class=\"flex flex-row flex-nowrap items-center gap-2\">\n <div class=\"flex-none\"><span>Occurs every</span></div>\n <div class=\"flex-none\"><p-inputnumber [showButtons]=\"true\" formControlName=\"every\" [min]=\"0\" [inputSize]=\"3\"></p-inputnumber></div>\n <div class=\"flex-none\"><p-select formControlName=\"item\" [options]=\"allIntervalItems()\" placeholder=\"Select interval\"></p-select></div>\n </div>\n </ng-container>\n} @else {\n @let interval = displayValue();\n @if (interval) {\n <span>Occurs every \n @if ((interval.every!=null)&&(interval.every!=1)) {\n {{ interval.every }} \n }\n {{ interval.item}}\n </span>\n }\n}\n" }]
|
|
32
|
+
}] });
|
|
33
|
+
|
|
34
|
+
function addInterval(start, interval) {
|
|
35
|
+
if (start == null)
|
|
36
|
+
return start;
|
|
37
|
+
if ((interval == null) || (interval.item == null) || (interval.every == null)) {
|
|
38
|
+
return new Date(start);
|
|
39
|
+
}
|
|
40
|
+
switch (interval.item) {
|
|
41
|
+
case 'Day':
|
|
42
|
+
return addDays(start, interval.every);
|
|
43
|
+
case 'Week':
|
|
44
|
+
return addWeeks(start, interval.every);
|
|
45
|
+
case 'Month':
|
|
46
|
+
return addMonths(start, interval.every);
|
|
47
|
+
case 'Year':
|
|
48
|
+
return addYears(start, interval.every);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
class TaskCompleteHandler extends AbstractTypeHandler {
|
|
53
|
+
async runAction(context, actionName, resolver, storeMgr) {
|
|
54
|
+
switch (actionName) {
|
|
55
|
+
case 'next-task':
|
|
56
|
+
return await this.nextTaskAction(context, resolver, storeMgr);
|
|
57
|
+
case 'remove-next-task':
|
|
58
|
+
return await this.removeNextTaskAction(context, resolver, storeMgr);
|
|
59
|
+
default:
|
|
60
|
+
return Promise.reject({ status: 'error', errors: ['Unrecognized action ' + actionName] });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Let's create the next iteration of the task that holds the recurrent task complete button
|
|
65
|
+
* @param context
|
|
66
|
+
* @param resolver
|
|
67
|
+
* @param storeMgr
|
|
68
|
+
*/
|
|
69
|
+
async nextTaskAction(context, resolver, storeMgr) {
|
|
70
|
+
// Lets pickup the parent item, that's the task we need to duplicate
|
|
71
|
+
const parentContext = context.parentContext;
|
|
72
|
+
if (parentContext == null) {
|
|
73
|
+
return Promise.reject('Cannot duplicate null or undefined parent element.');
|
|
74
|
+
}
|
|
75
|
+
else if (parentContext.valueType == null) {
|
|
76
|
+
return Promise.reject('Cannot handle task with no defined type.');
|
|
77
|
+
}
|
|
78
|
+
// We don't know the type of the parent, so we have to map it to a task and use it through the mapping
|
|
79
|
+
const parentTask = parentContext.value();
|
|
80
|
+
if (parentTask != null) {
|
|
81
|
+
// Can we consider the parent type as a task ?
|
|
82
|
+
const taskMapping = resolver.resolveMappingOf(parentContext, 'task');
|
|
83
|
+
if (taskMapping == null) {
|
|
84
|
+
return Promise.reject('Type ' + parentContext.valueType + ' cannot be mapped to Task');
|
|
85
|
+
}
|
|
86
|
+
// Yes then convert it to a task
|
|
87
|
+
const parentAsTask = taskMapping.to(parentTask);
|
|
88
|
+
if (parentAsTask?.repetition.occurs == null) {
|
|
89
|
+
return { status: 'none', warnings: ['No repetition defined for Task'] };
|
|
90
|
+
}
|
|
91
|
+
// We copy the underlying parent without knowing its type
|
|
92
|
+
const nextTask = resolver.safeDuplicate(parentContext, parentTask);
|
|
93
|
+
const nextAsTask = taskMapping.to(nextTask);
|
|
94
|
+
if (nextAsTask == null) {
|
|
95
|
+
return Promise.reject('Duplicate task is not mappable to Task');
|
|
96
|
+
}
|
|
97
|
+
// Make any modification to the task
|
|
98
|
+
nextAsTask.completed = false;
|
|
99
|
+
nextAsTask.date = addInterval(parentAsTask.date, parentAsTask.repetition.occurs);
|
|
100
|
+
// And apply the task modifications to it
|
|
101
|
+
taskMapping.from(nextAsTask, nextTask);
|
|
102
|
+
// Let's try to store the newly created item
|
|
103
|
+
const store = storeMgr?.getStoreFor(parentContext.valueType);
|
|
104
|
+
if (store != null) {
|
|
105
|
+
try {
|
|
106
|
+
const stored = await store.storeEntity(nextTask);
|
|
107
|
+
return { status: 'success', value: stored };
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
return { status: 'error', errors: [err.toString()] };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return { status: 'success', value: nextTask };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return Promise.reject('Cannot find the parent task to duplicate.');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Try to find and remove any task after the current one
|
|
123
|
+
* @param context
|
|
124
|
+
* @param resolver
|
|
125
|
+
* @param storeMgr
|
|
126
|
+
*/
|
|
127
|
+
async removeNextTaskAction(context, resolver, storeMgr) {
|
|
128
|
+
// Lets pickup the parent item, that's the task we need to duplicate
|
|
129
|
+
const parentContext = context.parentContext;
|
|
130
|
+
if (parentContext == null) {
|
|
131
|
+
return Promise.reject('Cannot find task in null or undefined parent element.');
|
|
132
|
+
}
|
|
133
|
+
else if (parentContext.valueType == null) {
|
|
134
|
+
return Promise.reject('Cannot handle task with no defined type.');
|
|
135
|
+
}
|
|
136
|
+
// We'll need a store to find the task
|
|
137
|
+
const store = storeMgr?.getStoreFor(parentContext.valueType);
|
|
138
|
+
if (store != null) {
|
|
139
|
+
// We don't know the type of the parent, so we have to map it to a task and use it through the mapping
|
|
140
|
+
const parentTask = parentContext.value();
|
|
141
|
+
if (parentTask != null) {
|
|
142
|
+
const warnings = [];
|
|
143
|
+
// Can we consider the parent type as a task ?
|
|
144
|
+
const taskMapping = resolver.resolveMappingOf(parentContext, 'task');
|
|
145
|
+
if (taskMapping == null) {
|
|
146
|
+
return Promise.reject('Type ' + parentContext.valueType + ' cannot be mapped to Task');
|
|
147
|
+
}
|
|
148
|
+
// Yes then convert it to a task
|
|
149
|
+
const parentAsTask = taskMapping.to(parentTask);
|
|
150
|
+
if (parentAsTask?.repetition.occurs == null) {
|
|
151
|
+
return { status: 'none', warnings: ['No repetition defined for Task'], value: 0 };
|
|
152
|
+
}
|
|
153
|
+
// Find the next tasks with the same repetition
|
|
154
|
+
const allTasks = store?.entities();
|
|
155
|
+
let countDeleted = 0;
|
|
156
|
+
for (const task of allTasks) {
|
|
157
|
+
const mappedTask = taskMapping.to(task);
|
|
158
|
+
if (mappedTask != null) {
|
|
159
|
+
// Search task with the same repetition
|
|
160
|
+
if (parentAsTask?.repetition.name == mappedTask?.repetition.name) {
|
|
161
|
+
if (parentAsTask?.date.getTime() < mappedTask.date.getTime()) {
|
|
162
|
+
if (task._id != null) {
|
|
163
|
+
const result = await store.deleteEntity(task._id);
|
|
164
|
+
if (!result) {
|
|
165
|
+
warnings.push("Cannot delete future task " + task._id);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
countDeleted++;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return { status: 'success', warnings: ['Future tasks removed'], value: countDeleted };
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
return Promise.reject('Cannot find the parent task to duplicate.');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
// Not store exist, so nothing to do
|
|
183
|
+
return { status: 'none', warnings: ['No store defined for the task to remove'], value: 0 };
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
createNew() {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
class AgendaTaskCompleteComponent extends XtSimpleComponent {
|
|
192
|
+
constructor() {
|
|
193
|
+
super(...arguments);
|
|
194
|
+
this.msgHandler = inject(XtMessageHandler);
|
|
195
|
+
this.resolver = inject(XtResolverService);
|
|
196
|
+
this.storeMgr = inject(XtStoreManagerService);
|
|
197
|
+
}
|
|
198
|
+
taskCompleted($event) {
|
|
199
|
+
if ($event.checked == true) {
|
|
200
|
+
this.resolver.runAction(this.context(), 'next-task', this.storeMgr).catch((error) => {
|
|
201
|
+
this.msgHandler.errorOccurred(error, "Cannot create next task");
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
this.resolver.runAction(this.context(), 'remove-next-task', this.storeMgr).catch((error) => {
|
|
206
|
+
this.msgHandler.errorOccurred(error, "Cannot remove next task");
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AgendaTaskCompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
211
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: AgendaTaskCompleteComponent, isStandalone: true, selector: "xt-agenda-task-complete", usesInheritance: true, ngImport: i0, template: "@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n <div class=\"flex flex-row flex-nowrap items-center gap-2\">\n <div class=\"flex-none\"><span>Done</span></div>\n <div class=\"flex-none\"><p-checkbox [formControlName]=\"formControlName()\" [binary]=\"true\" (onChange)=\"taskCompleted ($event)\"></p-checkbox></div>\n </div>\n </ng-container>\n} @else {\n @let done = displayValue();\n @if (done!=null) {\n <span>Done </span><p-checkbox [ngModel]=\"done\" [binary]=\"true\" [disabled]=\"true\"></p-checkbox>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
212
|
+
}
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AgendaTaskCompleteComponent, decorators: [{
|
|
214
|
+
type: Component,
|
|
215
|
+
args: [{ selector: 'xt-agenda-task-complete', imports: [
|
|
216
|
+
Checkbox,
|
|
217
|
+
ReactiveFormsModule, FormsModule
|
|
218
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n <div class=\"flex flex-row flex-nowrap items-center gap-2\">\n <div class=\"flex-none\"><span>Done</span></div>\n <div class=\"flex-none\"><p-checkbox [formControlName]=\"formControlName()\" [binary]=\"true\" (onChange)=\"taskCompleted ($event)\"></p-checkbox></div>\n </div>\n </ng-container>\n} @else {\n @let done = displayValue();\n @if (done!=null) {\n <span>Done </span><p-checkbox [ngModel]=\"done\" [binary]=\"true\" [disabled]=\"true\"></p-checkbox>\n }\n}\n" }]
|
|
219
|
+
}] });
|
|
220
|
+
|
|
221
|
+
function registerAgendaPlugin(resolverService) {
|
|
222
|
+
const pluginName = "Plugin Agenda";
|
|
223
|
+
console.info('Registering ' + pluginName);
|
|
224
|
+
resolverService.registerPlugin({
|
|
225
|
+
name: pluginName,
|
|
226
|
+
uriLogo: 'pluginicon.png',
|
|
227
|
+
components: [
|
|
228
|
+
{
|
|
229
|
+
componentName: 'AgendaDateIntervalComponent',
|
|
230
|
+
componentClass: AgendaDateIntervalComponent,
|
|
231
|
+
typesHandled: ['date-interval']
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
componentName: 'AgendaTaskCompleteComponent',
|
|
235
|
+
componentClass: AgendaTaskCompleteComponent,
|
|
236
|
+
typesHandled: ['task-complete']
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
types: {
|
|
240
|
+
'task-complete': 'boolean',
|
|
241
|
+
'date-interval': {
|
|
242
|
+
every: 'number',
|
|
243
|
+
item: 'string'
|
|
244
|
+
},
|
|
245
|
+
'recurring-task': {
|
|
246
|
+
name: 'string',
|
|
247
|
+
picture: 'image',
|
|
248
|
+
occurs: 'date-interval'
|
|
249
|
+
},
|
|
250
|
+
'task': {
|
|
251
|
+
date: 'date',
|
|
252
|
+
repetition: 'recurring-task',
|
|
253
|
+
completed: 'task-complete'
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
actionHandlers: [{
|
|
257
|
+
types: ['task-complete'],
|
|
258
|
+
actions: {
|
|
259
|
+
'next-task': {
|
|
260
|
+
description: 'Create next task occurrence',
|
|
261
|
+
visible: false,
|
|
262
|
+
handlerClass: TaskCompleteHandler
|
|
263
|
+
},
|
|
264
|
+
'remove-next-task': {
|
|
265
|
+
description: 'Remove any next task occurrence',
|
|
266
|
+
visible: false,
|
|
267
|
+
handlerClass: TaskCompleteHandler
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}]
|
|
271
|
+
});
|
|
272
|
+
return pluginName;
|
|
273
|
+
}
|
|
274
|
+
function registerPlugin(resolverService) {
|
|
275
|
+
return registerAgendaPlugin(resolverService);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/*
|
|
279
|
+
* Public API Surface of web plugin
|
|
280
|
+
*/
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Generated bundle index. Do not edit.
|
|
284
|
+
*/
|
|
285
|
+
|
|
286
|
+
export { AgendaDateIntervalComponent, registerAgendaPlugin, registerPlugin };
|
|
287
|
+
//# sourceMappingURL=xt-plugin-agenda.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xt-plugin-agenda.mjs","sources":["../../../projects/agenda/src/lib/date-interval/agenda-date-interval.component.ts","../../../projects/agenda/src/lib/date-interval/agenda-date-interval.component.html","../../../projects/agenda/src/lib/type-handlers/date-interval.ts","../../../projects/agenda/src/lib/type-handlers/task-complete-handler.ts","../../../projects/agenda/src/lib/task-complete/agenda-task-complete.component.ts","../../../projects/agenda/src/lib/task-complete/agenda-task-complete.component.html","../../../projects/agenda/src/lib/register.ts","../../../projects/agenda/src/public-api.ts","../../../projects/agenda/src/xt-plugin-agenda.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { XtRenderSubComponent, XtSimpleComponent } from 'xt-components';\nimport { InputNumber } from 'primeng/inputnumber';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DateInterval } from '../type-handlers/date-interval';\nimport { Select } from 'primeng/select';\n\n@Component({\n selector: 'xt-agenda-date-interval',\n imports: [\n InputNumber,\n ReactiveFormsModule,\n Select\n ],\n templateUrl: './agenda-date-interval.component.html',\n styleUrl: './agenda-date-interval.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AgendaDateIntervalComponent extends XtSimpleComponent<DateInterval> implements OnInit {\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.manageFormControl('every', true);\n this.manageFormControl('item', true);\n }\n\n allIntervalItems() {\n return ['Day', 'Week', 'Month', 'Year'];\n }\n}\n","@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n <div class=\"flex flex-row flex-nowrap items-center gap-2\">\n <div class=\"flex-none\"><span>Occurs every</span></div>\n <div class=\"flex-none\"><p-inputnumber [showButtons]=\"true\" formControlName=\"every\" [min]=\"0\" [inputSize]=\"3\"></p-inputnumber></div>\n <div class=\"flex-none\"><p-select formControlName=\"item\" [options]=\"allIntervalItems()\" placeholder=\"Select interval\"></p-select></div>\n </div>\n </ng-container>\n} @else {\n @let interval = displayValue();\n @if (interval) {\n <span>Occurs every \n @if ((interval.every!=null)&&(interval.every!=1)) {\n {{ interval.every }} \n }\n {{ interval.item}}\n </span>\n }\n}\n","import { addDays, addMonths, addWeeks, addYears } from 'date-fns';\n\nexport type DateInterval = {\n every: number;\n item: DateIntervalItem;\n}\n\nexport type DateIntervalItem= 'Day'|'Week'|'Month'|'Year';\n\nexport function addInterval (start:Date, interval:DateInterval|null|undefined): Date {\n if (start == null) return start;\n if ((interval==null) || (interval.item==null) || (interval.every==null)){\n return new Date(start);\n }\n\n switch (interval.item) {\n case 'Day':\n return addDays(start, interval.every);\n case 'Week':\n return addWeeks(start, interval.every);\n case 'Month':\n return addMonths(start, interval.every);\n case 'Year':\n return addYears(start, interval.every);\n }\n\n}\n","import { XtActionHandler, XtActionResult, XtContext, XtResolverService } from 'xt-components';\nimport { AbstractTypeHandler, ManagedData } from 'xt-type';\nimport { Task } from './recurring-task';\nimport { addInterval } from './date-interval';\nimport { XtStoreManagerService } from 'xt-store';\n\nexport class TaskCompleteHandler extends AbstractTypeHandler<any> implements XtActionHandler<any> {\n\n async runAction(context: XtContext<any>, actionName: string, resolver:XtResolverService, storeMgr?:XtStoreManagerService): Promise<XtActionResult<any>> {\n switch (actionName) {\n case 'next-task':\n return await this.nextTaskAction(context, resolver, storeMgr);\n case 'remove-next-task':\n return await this.removeNextTaskAction(context, resolver, storeMgr);\n default:\n return Promise.reject({ status: 'error', errors: ['Unrecognized action '+actionName] });\n }\n }\n\n /**\n * Let's create the next iteration of the task that holds the recurrent task complete button\n * @param context\n * @param resolver\n * @param storeMgr\n */\n async nextTaskAction<T extends ManagedData>(context: XtContext<boolean>, resolver: XtResolverService, storeMgr?:XtStoreManagerService): Promise<XtActionResult<T>> {\n // Lets pickup the parent item, that's the task we need to duplicate\n const parentContext = context.parentContext;\n if (parentContext == null) {\n return Promise.reject('Cannot duplicate null or undefined parent element.');\n } else if (parentContext.valueType == null) {\n return Promise.reject('Cannot handle task with no defined type.');\n }\n\n // We don't know the type of the parent, so we have to map it to a task and use it through the mapping\n const parentTask = parentContext.value();\n if (parentTask != null) {\n // Can we consider the parent type as a task ?\n const taskMapping = resolver.resolveMappingOf<T, Task>(parentContext, 'task');\n if (taskMapping == null) {\n return Promise.reject('Type ' + parentContext.valueType + ' cannot be mapped to Task');\n }\n // Yes then convert it to a task\n const parentAsTask = taskMapping.to(parentTask)!;\n if (parentAsTask?.repetition.occurs == null) {\n return {status: 'none', warnings:['No repetition defined for Task']};\n }\n // We copy the underlying parent without knowing its type\n const nextTask = resolver.safeDuplicate<T>(parentContext, parentTask);\n const nextAsTask = taskMapping.to(nextTask);\n if (nextAsTask == null) {\n return Promise.reject('Duplicate task is not mappable to Task');\n }\n // Make any modification to the task\n nextAsTask.completed = false;\n nextAsTask.date = addInterval(parentAsTask.date, parentAsTask.repetition.occurs);\n // And apply the task modifications to it\n taskMapping.from(nextAsTask, nextTask);\n\n // Let's try to store the newly created item\n const store = storeMgr?.getStoreFor<T>(parentContext.valueType);\n if (store != null) {\n try {\n const stored = await store.storeEntity(nextTask);\n return { status: 'success', value: stored };\n } catch (err) {\n return { status: 'error', errors: [(err as any).toString()] };\n }\n } else {\n return { status: 'success', value: nextTask };\n }\n } else {\n return Promise.reject('Cannot find the parent task to duplicate.');\n }\n }\n\n /**\n * Try to find and remove any task after the current one\n * @param context\n * @param resolver\n * @param storeMgr\n */\n async removeNextTaskAction<T extends ManagedData>(context: XtContext<boolean>, resolver: XtResolverService, storeMgr?:XtStoreManagerService): Promise<XtActionResult<number>> {\n // Lets pickup the parent item, that's the task we need to duplicate\n const parentContext = context.parentContext;\n if (parentContext == null) {\n return Promise.reject('Cannot find task in null or undefined parent element.');\n } else if (parentContext.valueType == null) {\n return Promise.reject('Cannot handle task with no defined type.');\n }\n\n // We'll need a store to find the task\n const store = storeMgr?.getStoreFor<T>(parentContext.valueType);\n if (store != null) {\n\n // We don't know the type of the parent, so we have to map it to a task and use it through the mapping\n const parentTask = parentContext.value();\n if (parentTask != null) {\n const warnings = [];\n // Can we consider the parent type as a task ?\n const taskMapping = resolver.resolveMappingOf<T, Task>(parentContext, 'task');\n if (taskMapping == null) {\n return Promise.reject('Type ' + parentContext.valueType + ' cannot be mapped to Task');\n }\n // Yes then convert it to a task\n const parentAsTask = taskMapping.to(parentTask)!;\n if (parentAsTask?.repetition.occurs == null) {\n return { status: 'none', warnings: ['No repetition defined for Task'], value:0 };\n }\n\n // Find the next tasks with the same repetition\n const allTasks = store?.entities();\n let countDeleted=0;\n for (const task of allTasks) {\n const mappedTask = taskMapping.to(task);\n if (mappedTask!=null) {\n // Search task with the same repetition\n if (parentAsTask?.repetition.name == mappedTask?.repetition.name) {\n if (parentAsTask?.date.getTime() < mappedTask.date.getTime()) {\n if (task._id!=null) {\n const result = await store.deleteEntity(task._id);\n if (!result) {\n warnings.push(\"Cannot delete future task \" + task._id);\n } else {\n countDeleted++;\n }\n }\n }\n }\n }\n }\n return { status: 'success', warnings: ['Future tasks removed'], value:countDeleted}\n\n } else {\n return Promise.reject('Cannot find the parent task to duplicate.');\n }\n } else {\n // Not store exist, so nothing to do\n return { status: 'none', warnings: ['No store defined for the task to remove'], value:0}\n }\n }\n\n override createNew(): boolean {\n return false;\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { XtMessageHandler, XtResolverService, XtSimpleComponent } from 'xt-components';\nimport { Checkbox, CheckboxChangeEvent } from 'primeng/checkbox';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { XtStoreManagerService } from 'xt-store';\n\n@Component({\n selector: 'xt-agenda-task-complete',\n imports: [\n Checkbox,\n ReactiveFormsModule, FormsModule\n ],\n templateUrl: './agenda-task-complete.component.html',\n styleUrl: './agenda-task-complete.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AgendaTaskCompleteComponent extends XtSimpleComponent<boolean> {\n msgHandler = inject(XtMessageHandler);\n resolver = inject(XtResolverService);\n storeMgr = inject(XtStoreManagerService);\n\n taskCompleted($event: CheckboxChangeEvent) {\n if ($event.checked==true) {\n this.resolver.runAction(this.context(), 'next-task', this.storeMgr).catch((error:any) => {\n this.msgHandler.errorOccurred(error, \"Cannot create next task\");\n });\n } else {\n this.resolver.runAction(this.context(), 'remove-next-task', this.storeMgr).catch((error:any) => {\n this.msgHandler.errorOccurred(error, \"Cannot remove next task\");\n });\n\n }\n }\n\n}\n","@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n <div class=\"flex flex-row flex-nowrap items-center gap-2\">\n <div class=\"flex-none\"><span>Done</span></div>\n <div class=\"flex-none\"><p-checkbox [formControlName]=\"formControlName()\" [binary]=\"true\" (onChange)=\"taskCompleted ($event)\"></p-checkbox></div>\n </div>\n </ng-container>\n} @else {\n @let done = displayValue();\n @if (done!=null) {\n <span>Done </span><p-checkbox [ngModel]=\"done\" [binary]=\"true\" [disabled]=\"true\"></p-checkbox>\n }\n}\n","import { XtResolverService } from 'xt-components';\nimport { AgendaDateIntervalComponent } from './date-interval/agenda-date-interval.component';\nimport { TaskCompleteHandler } from './type-handlers/task-complete-handler';\nimport { AgendaTaskCompleteComponent } from './task-complete/agenda-task-complete.component';\n\nexport function registerAgendaPlugin (resolverService:XtResolverService):string {\n const pluginName = \"Plugin Agenda\";\n console.info ('Registering '+pluginName);\n resolverService.registerPlugin ({\n name: pluginName,\n uriLogo: 'pluginicon.png',\n components: [\n {\n componentName: 'AgendaDateIntervalComponent',\n componentClass: AgendaDateIntervalComponent,\n typesHandled: ['date-interval']\n },\n {\n componentName: 'AgendaTaskCompleteComponent',\n componentClass: AgendaTaskCompleteComponent,\n typesHandled: ['task-complete']\n }\n ],\n types: {\n 'task-complete': 'boolean',\n 'date-interval': {\n every: 'number',\n item: 'string'\n },\n 'recurring-task': {\n name: 'string',\n picture: 'image',\n occurs: 'date-interval'\n },\n 'task': {\n date: 'date',\n repetition: 'recurring-task',\n completed: 'task-complete'\n }\n },\n actionHandlers: [{\n types: ['task-complete'],\n actions: {\n 'next-task': {\n description:'Create next task occurrence',\n visible: false,\n handlerClass: TaskCompleteHandler\n },\n 'remove-next-task': {\n description:'Remove any next task occurrence',\n visible: false,\n handlerClass: TaskCompleteHandler\n }\n\n }\n }]\n });\n return pluginName;\n}\n\nexport function registerPlugin (resolverService:XtResolverService):string {\n return registerAgendaPlugin(resolverService);\n}\n","/*\n * Public API Surface of web plugin\n */\n\nexport * from './lib/date-interval/agenda-date-interval.component';\nexport * from './lib/register';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit } from '@angular/core';
|
|
3
|
+
import { XtSimpleComponent, XtResolverService } from 'xt-components';
|
|
4
|
+
|
|
5
|
+
type DateInterval = {
|
|
6
|
+
every: number;
|
|
7
|
+
item: DateIntervalItem;
|
|
8
|
+
};
|
|
9
|
+
type DateIntervalItem = 'Day' | 'Week' | 'Month' | 'Year';
|
|
10
|
+
|
|
11
|
+
declare class AgendaDateIntervalComponent extends XtSimpleComponent<DateInterval> implements OnInit {
|
|
12
|
+
ngOnInit(): void;
|
|
13
|
+
allIntervalItems(): string[];
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AgendaDateIntervalComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AgendaDateIntervalComponent, "xt-agenda-date-interval", never, {}, {}, never, never, true, never>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare function registerAgendaPlugin(resolverService: XtResolverService): string;
|
|
19
|
+
declare function registerPlugin(resolverService: XtResolverService): string;
|
|
20
|
+
|
|
21
|
+
export { AgendaDateIntervalComponent, registerAgendaPlugin, registerPlugin };
|
package/package.json
CHANGED
|
@@ -1,65 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xt-plugin-agenda",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"scripts": {
|
|
5
|
-
"ng": "ng",
|
|
6
|
-
"start": "ng serve",
|
|
7
|
-
"build": "ng build agenda",
|
|
8
|
-
"build-deploy": "APP=agenda-plugin && MAIN_LIB=agenda && ng build $MAIN_LIB --configuration=$BUILD && ng build $APP --configuration=$BUILD --output-path=\"../../dist/$STAGE/$APP\" --base-href=\"https://test.dont-code.net/apps/$STAGE/$APP/\"",
|
|
9
|
-
"watch": "ng build --watch --configuration development",
|
|
10
|
-
"test": "cd projects/agenda && ../../node_modules/.bin/vitest && cd ../agenda-plugin && ../../node_modules/.bin/vitest"
|
|
11
|
-
},
|
|
12
|
-
"publishConfig": {
|
|
13
|
-
"directory": "dist/xt-plugin-agenda",
|
|
14
|
-
"linkDirectory": true
|
|
15
|
-
},
|
|
3
|
+
"version": "0.6.1",
|
|
16
4
|
"repository": {
|
|
17
5
|
"url": "https://github.com/dont-code/ng-xtend.git"
|
|
18
6
|
},
|
|
19
|
-
"
|
|
7
|
+
"peerDependencies": {
|
|
8
|
+
"@angular/animations": "^20.0.0",
|
|
9
|
+
"@angular/common": "^20.0.0",
|
|
10
|
+
"@angular/compiler": "^20.0.0",
|
|
11
|
+
"@angular/core": "^20.0.0",
|
|
12
|
+
"@angular/forms": "^20.0.0",
|
|
13
|
+
"@angular/platform-browser": "^20.0.0",
|
|
14
|
+
"@angular/platform-browser-dynamic": "^20.0.0",
|
|
15
|
+
"@angular/router": "^20.0.0",
|
|
16
|
+
"xt-components": "^0.6.0",
|
|
17
|
+
"rxjs": "^7.8.0",
|
|
18
|
+
"primeng": "^20.0.0",
|
|
19
|
+
"primeicons": "^7.0.0"
|
|
20
|
+
},
|
|
20
21
|
"dependencies": {
|
|
21
|
-
"
|
|
22
|
-
"@angular/common": "^20.3.9",
|
|
23
|
-
"@angular/compiler": "^20.3.9",
|
|
24
|
-
"@angular/core": "^20.3.9",
|
|
25
|
-
"@angular/forms": "^20.3.9",
|
|
26
|
-
"@angular/platform-browser": "^20.3.9",
|
|
27
|
-
"@angular/platform-browser-dynamic": "^20.3.9",
|
|
28
|
-
"@angular/router": "^20.3.9",
|
|
29
|
-
"@angular/cdk": "^20.2.4",
|
|
30
|
-
"xt-components": "workspace:^",
|
|
31
|
-
"xt-plugin-default": "workspace:^",
|
|
32
|
-
"xt-type": "workspace:^",
|
|
33
|
-
"xt-store": "workspace:^",
|
|
34
|
-
"rxjs": "^7.8.2",
|
|
35
|
-
"primeng": "^20.3.0",
|
|
36
|
-
"primeicons": "^7.0.0",
|
|
37
|
-
"@primeuix/themes": "^1.2.5",
|
|
38
|
-
"tslib": "^2.8.1",
|
|
39
|
-
"tailwindcss": "~4.1.16",
|
|
40
|
-
"es-module-shims": "^2.6.2",
|
|
41
|
-
"@angular-architects/native-federation": "^20.1.7",
|
|
42
|
-
"@softarc/native-federation-runtime": "^3.3.6",
|
|
43
|
-
"date-fns": "~4.1.0"
|
|
22
|
+
"tslib": "^2.3.0"
|
|
44
23
|
},
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"jsdom": "^26.1.0",
|
|
57
|
-
"vite": "^7.1.12",
|
|
58
|
-
"vitest": "^3.2.4",
|
|
59
|
-
"vite-tsconfig-paths": "~5.1.4",
|
|
60
|
-
"happy-dom": "^18.0.1",
|
|
61
|
-
"@tailwindcss/postcss": "~4.1.16",
|
|
62
|
-
"postcss": "~8.5.6"
|
|
24
|
+
"sideEffects": false,
|
|
25
|
+
"module": "fesm2022/xt-plugin-agenda.mjs",
|
|
26
|
+
"typings": "index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
"./package.json": {
|
|
29
|
+
"default": "./package.json"
|
|
30
|
+
},
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./index.d.ts",
|
|
33
|
+
"default": "./fesm2022/xt-plugin-agenda.mjs"
|
|
34
|
+
}
|
|
63
35
|
}
|
|
64
|
-
}
|
|
65
|
-
|
|
36
|
+
}
|
package/.editorconfig
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Editor configuration, see https://editorconfig.org
|
|
2
|
-
root = true
|
|
3
|
-
|
|
4
|
-
[*]
|
|
5
|
-
charset = utf-8
|
|
6
|
-
indent_style = space
|
|
7
|
-
indent_size = 2
|
|
8
|
-
insert_final_newline = true
|
|
9
|
-
trim_trailing_whitespace = true
|
|
10
|
-
|
|
11
|
-
[*.ts]
|
|
12
|
-
quote_type = single
|
|
13
|
-
|
|
14
|
-
[*.md]
|
|
15
|
-
max_line_length = off
|
|
16
|
-
trim_trailing_whitespace = false
|
package/.postcssrc.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "plugins": { "@tailwindcss/postcss": {} }}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
{"kind":"O","text":"Invoking: BUILD=production STAGE=latest npm run build-deploy \n"}
|
|
2
|
-
{"kind":"O","text":"\n"}
|
|
3
|
-
{"kind":"O","text":"> xt-plugin-agenda@0.5.5 build-deploy\n"}
|
|
4
|
-
{"kind":"O","text":"> APP=agenda-plugin && MAIN_LIB=agenda && ng build $MAIN_LIB --configuration=$BUILD && ng build $APP --configuration=$BUILD --output-path=\"../../dist/$STAGE/$APP\" --base-href=\"https://test.dont-code.net/apps/$STAGE/$APP/\"\n"}
|
|
5
|
-
{"kind":"O","text":"\n"}
|
|
6
|
-
{"kind":"O","text":"Building Angular Package\n"}
|
|
7
|
-
{"kind":"O","text":"\n"}
|
|
8
|
-
{"kind":"O","text":"------------------------------------------------------------------------------\n"}
|
|
9
|
-
{"kind":"O","text":"Building entry point 'xt-plugin-agenda'\n"}
|
|
10
|
-
{"kind":"O","text":"------------------------------------------------------------------------------\n"}
|
|
11
|
-
{"kind":"E","text":"- Compiling with Angular sources in partial compilation mode.\n"}
|
|
12
|
-
{"kind":"E","text":"✔ Compiling with Angular sources in partial compilation mode.\n"}
|
|
13
|
-
{"kind":"E","text":"- Writing FESM and DTS bundles\n"}
|
|
14
|
-
{"kind":"E","text":"✔ Writing FESM and DTS bundles\n"}
|
|
15
|
-
{"kind":"E","text":"- Copying assets\n"}
|
|
16
|
-
{"kind":"E","text":"✔ Copying assets\n"}
|
|
17
|
-
{"kind":"E","text":"- Writing package manifest\n"}
|
|
18
|
-
{"kind":"E","text":"✔ Writing package manifest\n"}
|
|
19
|
-
{"kind":"E","text":"✔ Built xt-plugin-agenda\n"}
|
|
20
|
-
{"kind":"O","text":"\n"}
|
|
21
|
-
{"kind":"O","text":"------------------------------------------------------------------------------\n"}
|
|
22
|
-
{"kind":"O","text":"Built Angular Package\n"}
|
|
23
|
-
{"kind":"O","text":"- from: /home/gc-garunda/devs/dont-code/github/ng-xtend/plugins/xt-agenda/projects/agenda\n"}
|
|
24
|
-
{"kind":"O","text":"- to: /home/gc-garunda/devs/dont-code/github/ng-xtend/plugins/xt-agenda/dist/xt-plugin-agenda\n"}
|
|
25
|
-
{"kind":"O","text":"------------------------------------------------------------------------------\n"}
|
|
26
|
-
{"kind":"O","text":"\n"}
|
|
27
|
-
{"kind":"O","text":"Build at: 2026-01-07T09:09:39.861Z - Time: 6044ms\n"}
|
|
28
|
-
{"kind":"O","text":"\n"}
|
|
29
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/base\n"}
|
|
30
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/utils/eventbus\n"}
|
|
31
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
32
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/utils/eventbus\n"}
|
|
33
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/utils/object\n"}
|
|
34
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
35
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/utils/object\n"}
|
|
36
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/checkbox\n"}
|
|
37
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/utils/zindex\n"}
|
|
38
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
39
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/utils/zindex\n"}
|
|
40
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/utils/uuid\n"}
|
|
41
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
42
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/utils/uuid\n"}
|
|
43
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/utils/mergeprops\n"}
|
|
44
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
45
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/utils/mergeprops\n"}
|
|
46
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/utils/dom\n"}
|
|
47
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
48
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/utils/dom\n"}
|
|
49
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/utils/classnames\n"}
|
|
50
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
51
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/utils/classnames\n"}
|
|
52
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/select\n"}
|
|
53
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/tooltip\n"}
|
|
54
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/ripple\n"}
|
|
55
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/inputtext\n"}
|
|
56
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/iconfield\n"}
|
|
57
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/inputnumber\n"}
|
|
58
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/autocomplete\n"}
|
|
59
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/chip\n"}
|
|
60
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/datepicker\n"}
|
|
61
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/button\n"}
|
|
62
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/badge\n"}
|
|
63
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/selectbutton\n"}
|
|
64
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/togglebutton\n"}
|
|
65
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/radiobutton\n"}
|
|
66
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/paginator\n"}
|
|
67
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/datatable\n"}
|
|
68
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/styles/panel\n"}
|
|
69
|
-
{"kind":"E","text":" WARN No meta data found for shared lib eta/core\n"}
|
|
70
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @ngrx/signals/entities\n"}
|
|
71
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @ngrx/signals\n"}
|
|
72
|
-
{"kind":"E","text":" WARN No entry point found for @primeuix/themes/aura\n"}
|
|
73
|
-
{"kind":"E","text":" WARN If you don't need this package, skip it in your federation.config.js or consider moving it into depDependencies in your package.json\n"}
|
|
74
|
-
{"kind":"E","text":" WARN No meta data found for shared lib @primeuix/themes/aura\n"}
|
|
75
|
-
{"kind":"O","text":" INFO Building federation artefacts\n"}
|
|
76
|
-
{"kind":"O","text":"❯ Building...\n"}
|
|
77
|
-
{"kind":"O","text":"✔ Building...\n"}
|
|
78
|
-
{"kind":"O","text":"Initial chunk files | Names | Raw size | Estimated transfer size\n"}
|
|
79
|
-
{"kind":"O","text":"polyfills-XUYJO5JA.js | polyfills | 39.91 kB | 13.52 kB\n"}
|
|
80
|
-
{"kind":"O","text":"styles-WQCNDFMB.css | styles | 18.26 kB | 3.96 kB\n"}
|
|
81
|
-
{"kind":"O","text":"main-7RVBXITU.js | main | 2.74 kB | 1.15 kB\n"}
|
|
82
|
-
{"kind":"O","text":"chunk-2NFLSA4Y.js | - | 449 bytes | 449 bytes\n"}
|
|
83
|
-
{"kind":"O","text":"\n"}
|
|
84
|
-
{"kind":"O","text":" | Initial total | 61.36 kB | 19.08 kB\n"}
|
|
85
|
-
{"kind":"O","text":"\n"}
|
|
86
|
-
{"kind":"O","text":"Lazy chunk files | Names | Raw size | Estimated transfer size\n"}
|
|
87
|
-
{"kind":"O","text":"chunk-ZXJP62VC.js | bootstrap | 14.38 kB | 3.70 kB\n"}
|
|
88
|
-
{"kind":"O","text":"\n"}
|
|
89
|
-
{"kind":"O","text":"Application bundle generation complete. [4.082 seconds] - 2026-01-07T09:10:28.258Z\n"}
|
|
90
|
-
{"kind":"O","text":"\n"}
|
|
91
|
-
{"kind":"O","text":"Output location: /home/gc-garunda/devs/dont-code/github/ng-xtend/dist/latest/agenda-plugin\n"}
|
|
92
|
-
{"kind":"O","text":"\n"}
|