@likable-hair/svelte 3.1.10 → 3.1.12

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.
@@ -11,7 +11,7 @@ import Dialog from "../../simple/dialogs/Dialog.svelte";
11
11
  let clazz = {};
12
12
  export { clazz as class };
13
13
  let dispatch = createEventDispatcher();
14
- export let menuOpened = false, openingId = "date-picker-text-field", pattern = "dd/MM/yyyy", selectedMonth = void 0, selectedYear = void 0, visibleMonth = void 0, visibleYear = void 0, selectedDate = void 0, placeholder = void 0, mobileDialog = true, maxYearInRange = 2100, minYearInRange = 1970;
14
+ export let menuOpened = false, openingId = "date-picker-text-field", pattern = "dd/MM/yyyy", selectedMonth = void 0, selectedYear = void 0, visibleMonth = void 0, visibleYear = void 0, selectedDate = void 0, placeholder = void 0, mobileDialog = true, maxYearInRange = 2100, minYearInRange = 1970, disabled = false;
15
15
  let activator, refreshPosition = false, menuElement, inputElement, mask = {
16
16
  value: void 0
17
17
  }, maskFactoryArgs = {
@@ -139,6 +139,7 @@ $:
139
139
  {handleInputChange}
140
140
  {inputElement}
141
141
  {placeholder}
142
+ {disabled}
142
143
  >
143
144
  <SimpleTextField
144
145
  bind:value={mask.value}
@@ -147,6 +148,7 @@ $:
147
148
  bind:input={inputElement}
148
149
  bind:placeholder
149
150
  class={clazz.textfield}
151
+ {disabled}
150
152
  >
151
153
  <svelte:fragment slot="prepend-inner" let:prependInnerIcon let:iconSize>
152
154
  <slot name="prepend-inner" {prependInnerIcon} {iconSize}>
@@ -193,6 +195,7 @@ $:
193
195
  on:year-click={handleYearSelect}
194
196
  on:month-click={handleMonthSelect}
195
197
  skipTabs
198
+ {disabled}
196
199
  ></DatePicker>
197
200
  </div>
198
201
  </Dialog>
@@ -222,6 +225,7 @@ $:
222
225
  on:year-click={handleYearSelect}
223
226
  on:month-click={handleMonthSelect}
224
227
  skipTabs
228
+ {disabled}
225
229
  ></DatePicker>
226
230
  </div>
227
231
  </Menu>
@@ -20,6 +20,7 @@ declare const __propDef: {
20
20
  mobileDialog?: boolean | undefined;
21
21
  maxYearInRange?: number | undefined;
22
22
  minYearInRange?: number | undefined;
23
+ disabled?: boolean | undefined;
23
24
  };
24
25
  events: {
25
26
  'day-click': CustomEvent<{
@@ -40,6 +41,7 @@ declare const __propDef: {
40
41
  handleInputChange: (event: any) => void;
41
42
  inputElement: HTMLElement;
42
43
  placeholder: string | undefined;
44
+ disabled: boolean;
43
45
  };
44
46
  'prepend-inner': {
45
47
  prependInnerIcon: string | undefined;
@@ -4,10 +4,12 @@ import { fly } from "svelte/transition";
4
4
  import { getDateRowsStats, getDaysNames } from "./utils";
5
5
  let clazz = {};
6
6
  export { clazz as class };
7
- export let selectedDate = void 0, visibleMonth = (/* @__PURE__ */ new Date()).getMonth(), visibleYear = (/* @__PURE__ */ new Date()).getFullYear(), locale = "it", showExtraMonthDays = true, showHeader = true, animationDuration = 200;
7
+ export let selectedDate = void 0, visibleMonth = (/* @__PURE__ */ new Date()).getMonth(), visibleYear = (/* @__PURE__ */ new Date()).getFullYear(), locale = "it", showExtraMonthDays = true, showHeader = true, animationDuration = 200, disabled = false;
8
8
  import { createEventDispatcher } from "svelte";
9
9
  const dispatch = createEventDispatcher();
10
10
  function handleDayClick(dateStat, extraMonth) {
11
+ if (disabled)
12
+ return;
11
13
  if (!extraMonth) {
12
14
  selectedDate = new Date(
13
15
  dateStat.year,
@@ -58,6 +60,7 @@ function handleDayClick(dateStat, extraMonth) {
58
60
  class:not-selected={!selected}
59
61
  on:click={() => handleDayClick(day, extraMonth)}
60
62
  on:keydown={() => handleDayClick(day, extraMonth)}
63
+ role="presentation"
61
64
  >
62
65
  {day.dayOfMonth}
63
66
  </div>
@@ -16,6 +16,7 @@ declare const __propDef: {
16
16
  showExtraMonthDays?: boolean | undefined;
17
17
  showHeader?: boolean | undefined;
18
18
  animationDuration?: number | undefined;
19
+ disabled?: boolean | undefined;
19
20
  };
20
21
  events: {
21
22
  "day-click": CustomEvent<{
@@ -10,7 +10,7 @@ let clazz = {};
10
10
  export { clazz as class };
11
11
  export let selectedYear = (/* @__PURE__ */ new Date()).getFullYear(), selectedMonth = (/* @__PURE__ */ new Date()).getMonth(), selectedDate = void 0, visibleMonth = selectedMonth, visibleYear = selectedYear, view = "day", locale = "it", selectableYears = [...Array(150).keys()].map(
12
12
  (i) => i + ((/* @__PURE__ */ new Date()).getFullYear() - 75)
13
- ), skipTabs = false;
13
+ ), skipTabs = false, disabled = false;
14
14
  let dispatch = createEventDispatcher();
15
15
  let selectorText = void 0;
16
16
  let elementDisabled = "date";
@@ -160,6 +160,7 @@ function handleMonthChange() {
160
160
  bind:visibleYear={visibleYear}
161
161
  bind:selectedDate
162
162
  {locale}
163
+ disabled={disabled}
163
164
  on:day-click
164
165
  />
165
166
  {/if}
@@ -18,6 +18,7 @@ declare const __propDef: {
18
18
  locale?: Locale | undefined;
19
19
  selectableYears?: number[] | undefined;
20
20
  skipTabs?: boolean | undefined;
21
+ disabled?: boolean | undefined;
21
22
  };
22
23
  events: {
23
24
  'day-click': CustomEvent<{
@@ -15,4 +15,5 @@
15
15
  --chip-default-outlined-focus-color: rgb(var(--global-color-primary-400));
16
16
  --chip-default-text-max-width: 200px;
17
17
  --chip-default-outlined-focus-box-shadow: 0px 0px 4px 2px rgba(var(--global-color-primary-400),0.1);
18
+ --chip-default-gap: 5px;
18
19
  }
@@ -155,7 +155,9 @@ function handleCloseClick(e) {
155
155
  margin-left: 10px;
156
156
  }
157
157
  .text {
158
- display: inline-block;
158
+ display: flex;
159
+ align-items: center;
160
+ gap: var(--chip-gap, var(--chip-default-gap));
159
161
  vertical-align: middle;
160
162
  user-select: none;
161
163
  font-size: var(
@@ -1,6 +1,8 @@
1
1
  import type { JoinModifier } from "./modifiers/join";
2
2
  import type { WhereModifier, WhereFilterValue } from "./modifiers/where";
3
- export type Modifier = WhereModifier | JoinModifier;
3
+ import type { SelectModifier } from "./modifiers/select";
4
+ import type { FromModifier } from "./modifiers/from";
5
+ export type Modifier = WhereModifier | JoinModifier | SelectModifier | FromModifier;
4
6
  export type JsonQuery = {
5
7
  modifiers: Modifier[];
6
8
  };
@@ -29,6 +31,20 @@ export default class Builder {
29
31
  orWhereColumn(key: string, operator: string, compareColumn: string): Builder;
30
32
  whereJsonSuperset(key: string, object: Object): Builder;
31
33
  orWhereJsonSuperset(key: string, object: Object): Builder;
34
+ whereIn(key: string, callback: (builder: Builder) => void): Builder;
35
+ whereIn(key: string, values: WhereFilterValue[]): Builder;
36
+ orWhereIn(key: string, callback: (builder: Builder) => void): Builder;
37
+ orWhereIn(key: string, values: WhereFilterValue[]): Builder;
38
+ notWhereIn(key: string, callback: (builder: Builder) => void): Builder;
39
+ notWhereIn(key: string, values: WhereFilterValue[]): Builder;
40
+ orNotWhereIn(key: string, callback: (builder: Builder) => void): Builder;
41
+ orNotWhereIn(key: string, values: WhereFilterValue[]): Builder;
42
+ private applyWhereInClause;
43
+ whereNull(key: string): Builder;
44
+ orWhereNull(key: string): Builder;
45
+ notWhereNull(key: string): Builder;
46
+ orNotWhereNull(key: string): Builder;
47
+ private applyWhereNullClause;
32
48
  private applyWhereClause;
33
49
  private applyWhereColumnClause;
34
50
  private applyWhereJsonSupersetClause;
@@ -37,6 +53,8 @@ export default class Builder {
37
53
  rightJoin(table: string, onCallback: (onBuilder: OnClauseBuilder) => void): this;
38
54
  private applyJoinClause;
39
55
  toJson(): JsonQuery;
56
+ select(fields: string | string[]): this;
57
+ from(from: string): this;
40
58
  }
41
59
  import type { JoinModifierOnClause } from "./modifiers/join";
42
60
  declare class OnClauseBuilder {
@@ -27,6 +27,62 @@ export default class Builder {
27
27
  orWhereJsonSuperset(first, second) {
28
28
  return this.applyWhereJsonSupersetClause('or', first, second);
29
29
  }
30
+ whereIn(key, second) {
31
+ return this.applyWhereInClause('and', key, second);
32
+ }
33
+ orWhereIn(key, second) {
34
+ return this.applyWhereInClause('or', key, second);
35
+ }
36
+ notWhereIn(key, second) {
37
+ return this.applyWhereInClause('andNot', key, second);
38
+ }
39
+ orNotWhereIn(key, second) {
40
+ return this.applyWhereInClause('orNot', key, second);
41
+ }
42
+ applyWhereInClause(logicalOperator, key, second) {
43
+ if (typeof second == 'function') {
44
+ let inBuilder = new Builder();
45
+ second(inBuilder);
46
+ this.modifiers.push({
47
+ method: 'where',
48
+ kind: 'inBuilder',
49
+ logicalOperator: logicalOperator,
50
+ key: key,
51
+ modifiers: inBuilder.modifiers
52
+ });
53
+ }
54
+ else {
55
+ this.modifiers.push({
56
+ method: 'where',
57
+ kind: 'in',
58
+ logicalOperator: logicalOperator,
59
+ key: key,
60
+ value: second
61
+ });
62
+ }
63
+ return this;
64
+ }
65
+ whereNull(key) {
66
+ return this.applyWhereNullClause('and', key);
67
+ }
68
+ orWhereNull(key) {
69
+ return this.applyWhereNullClause('or', key);
70
+ }
71
+ notWhereNull(key) {
72
+ return this.applyWhereNullClause('andNot', key);
73
+ }
74
+ orNotWhereNull(key) {
75
+ return this.applyWhereNullClause('orNot', key);
76
+ }
77
+ applyWhereNullClause(logicalOperator, key) {
78
+ this.modifiers.push({
79
+ method: 'where',
80
+ kind: 'null',
81
+ logicalOperator: logicalOperator,
82
+ key: key
83
+ });
84
+ return this;
85
+ }
30
86
  applyWhereClause(logicalOperator, first, second, third) {
31
87
  if (third !== undefined) {
32
88
  if (!!second && typeof first == 'string' && typeof second == 'string') {
@@ -48,7 +104,7 @@ export default class Builder {
48
104
  });
49
105
  }
50
106
  }
51
- else if (typeof first == 'string' && !!second) {
107
+ else if (typeof first == 'string' && second !== undefined) {
52
108
  this.modifiers.push({
53
109
  method: 'where',
54
110
  kind: 'simple',
@@ -135,6 +191,20 @@ export default class Builder {
135
191
  modifiers: this.modifiers
136
192
  };
137
193
  }
194
+ select(fields) {
195
+ this.modifiers.push({
196
+ method: 'select',
197
+ fields: fields
198
+ });
199
+ return this;
200
+ }
201
+ from(from) {
202
+ this.modifiers.push({
203
+ method: 'from',
204
+ from: from
205
+ });
206
+ return this;
207
+ }
138
208
  }
139
209
  class OnClauseBuilder {
140
210
  onClauses;
@@ -0,0 +1,4 @@
1
+ export type FromModifier = {
2
+ method: 'from';
3
+ from: string;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -16,11 +16,11 @@ type InnerJoinModifier = {
16
16
  table: string;
17
17
  on: JoinModifierOnClause[];
18
18
  };
19
- type LeftJoinJsonModifier = {
19
+ type LeftJoinModifier = {
20
20
  method: 'join';
21
21
  kind: 'left';
22
22
  table: string;
23
23
  on: JoinModifierOnClause[];
24
24
  };
25
- export type JoinModifier = LeftJoinJsonModifier | InnerJoinModifier | RightJoinModifier;
25
+ export type JoinModifier = LeftJoinModifier | InnerJoinModifier | RightJoinModifier;
26
26
  export {};
@@ -0,0 +1,4 @@
1
+ export type SelectModifier = {
2
+ method: 'select';
3
+ fields: string | string[];
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,10 @@
1
+ import type { Modifier } from "../builder";
1
2
  export type WhereFilterValue = string | number | Date | boolean;
2
3
  type GroupedWhere = {
3
4
  method: 'where';
4
5
  kind: 'grouped';
5
6
  logicalOperator?: 'and' | 'or' | 'andNot' | 'orNot';
6
- children: (ObjectWhere | SimpleWhere | GroupedWhere | InWhere | ColumnWhere | WhereJsonSuperset)[];
7
+ children: (ObjectWhere | SimpleWhere | GroupedWhere | InWhere | ColumnWhere | JsonSupersetWhere | InBuilderWhere | NullWhere)[];
7
8
  };
8
9
  type ObjectWhere = {
9
10
  method: 'where';
@@ -17,7 +18,7 @@ type SimpleWhere = {
17
18
  logicalOperator?: 'and' | 'or' | 'andNot' | 'orNot';
18
19
  key: string;
19
20
  operator?: string;
20
- value: WhereFilterValue | boolean;
21
+ value: WhereFilterValue;
21
22
  };
22
23
  type ColumnWhere = {
23
24
  method: 'where';
@@ -34,12 +35,25 @@ type InWhere = {
34
35
  key: string;
35
36
  value: (WhereFilterValue)[];
36
37
  };
37
- type WhereJsonSuperset = {
38
+ type InBuilderWhere = {
39
+ method: 'where';
40
+ kind: 'inBuilder';
41
+ logicalOperator?: 'and' | 'or' | 'andNot' | 'orNot';
42
+ key: string;
43
+ modifiers: Modifier[];
44
+ };
45
+ type JsonSupersetWhere = {
38
46
  method: 'where';
39
47
  kind: 'jsonSuperset';
40
48
  logicalOperator?: 'and' | 'or' | 'andNot' | 'orNot';
41
49
  key: string;
42
50
  value: Object;
43
51
  };
44
- export type WhereModifier = SimpleWhere | ObjectWhere | GroupedWhere | InWhere | ColumnWhere | WhereJsonSuperset;
52
+ type NullWhere = {
53
+ method: 'where';
54
+ kind: 'null';
55
+ logicalOperator?: 'and' | 'or' | 'andNot' | 'orNot';
56
+ key: string;
57
+ };
58
+ export type WhereModifier = SimpleWhere | ObjectWhere | GroupedWhere | InWhere | ColumnWhere | JsonSupersetWhere | InBuilderWhere | NullWhere;
45
59
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@likable-hair/svelte",
3
3
  "description": "A Svelte component for likablehair and others",
4
- "version": "3.1.10",
4
+ "version": "3.1.12",
5
5
  "scripts": {
6
6
  "host": "vite --host",
7
7
  "dev": "vite dev",