Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sarun Mungthanya
SpnPatch-Laravel
Compare Revisions
fb8995ec1f30a1a71560a769a058456f3e0590ac...3dca194a7d8516fa04bead32b7703bde482ef476
Hide whitespace changes
Inline
Side-by-side
Too many changes to show.
To preserve performance only
309 of 309+
files are displayed.
public/vendor/telescope/mix-manifest.json
0 → 100644
View file @
3dca194a
{
"/app.js"
:
"/app.js?id=99f84d421ae083196e0a45c3c310168b"
,
"/app-dark.css"
:
"/app-dark.css?id=1ea407db56c5163ae29311f1f38eb7b9"
,
"/app.css"
:
"/app.css?id=de4c978567bfd90b38d186937dee5ccf"
}
resources/css/app.css
View file @
3dca194a
...
...
@@ -12,3 +12,5 @@
@import
url('https://fonts.googleapis.com/css2?family=Sarabun:wght@500&display=swap')
;
/* @import "./components/prism.css";
@import "./components/prism-line-numbers.css"; */
\ No newline at end of file
resources/css/base.css
View file @
3dca194a
...
...
@@ -33,7 +33,7 @@ html.dark {
}
body
{
@apply
bg-slate-50
font-sans
text-sm
leading-5
text-
s
la
te-500
antialiased
[
text-rendering
:
optimizeLegibility
]
dark
:
bg-navy-900
dark
:
text-navy-200
dark
:[
color-scheme
:
dark
];
@apply
bg-slate-50
font-sans
text-sm
leading-5
text-
b
la
ck
antialiased
[
text-rendering
:
optimizeLegibility
]
dark
:
bg-navy-900
dark
:
text-navy-200
dark
:[
color-scheme
:
dark
];
}
body
.is-monochrome
::before
{
...
...
resources/css/components/prism-line-numbers.css
0 → 100644
View file @
3dca194a
pre
[
class
*=
"language-"
]
.line-numbers
{
position
:
relative
;
padding-left
:
3.8em
;
counter-reset
:
linenumber
;
}
pre
[
class
*=
"language-"
]
.line-numbers
>
code
{
position
:
relative
;
white-space
:
inherit
;
}
.line-numbers
.line-numbers-rows
{
position
:
absolute
;
pointer-events
:
none
;
top
:
0
;
font-size
:
100%
;
left
:
-3.8em
;
width
:
3em
;
/* works for line-numbers below 1000 lines */
letter-spacing
:
-1px
;
border-right
:
1px
solid
#999
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
}
.line-numbers-rows
>
span
{
display
:
block
;
counter-increment
:
linenumber
;
}
.line-numbers-rows
>
span
:before
{
content
:
counter
(
linenumber
);
color
:
#999
;
display
:
block
;
padding-right
:
0.8em
;
text-align
:
right
;
}
resources/css/components/prism.css
0 → 100644
View file @
3dca194a
/* PrismJS 1.29.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+agda+al+antlr4+apacheconf+apex+apl+applescript+aql+arduino+arff+armasm+arturo+asciidoc+aspnet+asm6502+asmatmel+autohotkey+autoit+avisynth+avro-idl+awk+bash+basic+batch+bbcode+bbj+bicep+birb+bison+bnf+bqn+brainfuck+brightscript+bro+bsl+c+csharp+cpp+cfscript+chaiscript+cil+cilkc+cilkcpp+clojure+cmake+cobol+coffeescript+concurnas+csp+cooklang+coq+crystal+css-extras+csv+cue+cypher+d+dart+dataweave+dax+dhall+diff+django+dns-zone-file+docker+dot+ebnf+editorconfig+eiffel+ejs+elixir+elm+etlua+erb+erlang+excel-formula+fsharp+factor+false+firestore-security-rules+flow+fortran+ftl+gml+gap+gcode+gdscript+gedcom+gettext+gherkin+git+glsl+gn+linker-script+go+go-module+gradle+graphql+groovy+haml+handlebars+haskell+haxe+hcl+hlsl+hoon+http+hpkp+hsts+ichigojam+icon+icu-message-format+idris+ignore+inform7+ini+io+j+java+javadoc+javadoclike+javastacktrace+jexl+jolie+jq+jsdoc+js-extras+json+json5+jsonp+jsstacktrace+js-templates+julia+keepalived+keyman+kotlin+kumir+kusto+latex+latte+less+lilypond+liquid+lisp+livescript+llvm+log+lolcode+lua+magma+makefile+markdown+markup-templating+mata+matlab+maxscript+mel+mermaid+metafont+mizar+mongodb+monkey+moonscript+n1ql+n4js+nand2tetris-hdl+naniscript+nasm+neon+nevod+nginx+nim+nix+nsis+objectivec+ocaml+odin+opencl+openqasm+oz+parigp+parser+pascal+pascaligo+psl+pcaxis+peoplecode+perl+php+phpdoc+php-extras+plant-uml+plsql+powerquery+powershell+processing+prolog+promql+properties+protobuf+pug+puppet+pure+purebasic+purescript+python+qsharp+q+qml+qore+r+racket+cshtml+jsx+tsx+reason+regex+rego+renpy+rescript+rest+rip+roboconf+robotframework+ruby+rust+sas+sass+scss+scala+scheme+shell-session+smali+smalltalk+smarty+sml+solidity+solution-file+soy+sparql+splunk-spl+sqf+sql+squirrel+stan+stata+iecst+stylus+supercollider+swift+systemd+t4-templating+t4-cs+t4-vb+tap+tcl+tt2+textile+toml+tremor+turtle+twig+typescript+typoscript+unrealscript+uorazor+uri+v+vala+vbnet+velocity+verilog+vhdl+vim+visual-basic+warpscript+wasm+web-idl+wgsl+wiki+wolfram+wren+xeora+xml-doc+xojo+xquery+yaml+yang+zig&plugins=line-highlight+diff-highlight+treeview */
code
[
class
*=
language-
],
pre
[
class
*=
language-
]
{
color
:
#000
;
background
:
0
0
;
text-shadow
:
0
1px
#fff
;
font-family
:
Consolas
,
Monaco
,
'Andale Mono'
,
'Ubuntu Mono'
,
monospace
;
font-size
:
1em
;
text-align
:
left
;
white-space
:
pre
;
word-spacing
:
normal
;
word-break
:
normal
;
word-wrap
:
normal
;
line-height
:
1.5
;
-moz-tab-size
:
4
;
-o-tab-size
:
4
;
tab-size
:
4
;
-webkit-hyphens
:
none
;
-moz-hyphens
:
none
;
-ms-hyphens
:
none
;
hyphens
:
none
}
code
[
class
*=
language-
]
::-moz-selection
,
code
[
class
*=
language-
]
::-moz-selection
,
pre
[
class
*=
language-
]
::-moz-selection
,
pre
[
class
*=
language-
]
::-moz-selection
{
text-shadow
:
none
;
background
:
#b3d4fc
}
code
[
class
*=
language-
]
::selection
,
code
[
class
*=
language-
]
::selection
,
pre
[
class
*=
language-
]
::selection
,
pre
[
class
*=
language-
]
::selection
{
text-shadow
:
none
;
background
:
#b3d4fc
}
@media
print
{
code
[
class
*=
language-
],
pre
[
class
*=
language-
]
{
text-shadow
:
none
}}
pre
[
class
*=
language-
]
{
padding
:
1em
;
margin
:
.5em
0
;
overflow
:
auto
}
:not
(
pre
)>
code
[
class
*=
language-
],
pre
[
class
*=
language-
]
{
background
:
#f5f2f0
}
:not
(
pre
)>
code
[
class
*=
language-
]
{
padding
:
.1em
;
border-radius
:
.3em
;
white-space
:
normal
}
.token.cdata
,
.token.comment
,
.token.doctype
,
.token.prolog
{
color
:
#708090
}
.token.punctuation
{
color
:
#999
}
.token.namespace
{
opacity
:
.7
}
.token.boolean
,
.token.constant
,
.token.deleted
,
.token.number
,
.token.property
,
.token.symbol
,
.token.tag
{
color
:
#905
}
.token.attr-name
,
.token.builtin
,
.token.char
,
.token.inserted
,
.token.selector
,
.token.string
{
color
:
#690
}
.language-css
.token.string
,
.style
.token.string
,
.token.entity
,
.token.operator
,
.token.url
{
color
:
#9a6e3a
;
background
:
hsla
(
0
,
0%
,
100%
,
.5
)}
.token.atrule
,
.token.attr-value
,
.token.keyword
{
color
:
#07a
}
.token.class-name
,
.token.function
{
color
:
#dd4a68
}
.token.important
,
.token.regex
,
.token.variable
{
color
:
#e90
}
.token.bold
,
.token.important
{
font-weight
:
700
}
.token.italic
{
font-style
:
italic
}
.token.entity
{
cursor
:
help
}
pre
[
data-line
]
{
position
:
relative
;
padding
:
1em
0
1em
3em
}
.line-highlight
{
position
:
absolute
;
left
:
0
;
right
:
0
;
padding
:
inherit
0
;
margin-top
:
1em
;
background
:
hsla
(
24
,
20%
,
50%
,
.08
);
background
:
linear-gradient
(
to
right
,
hsla
(
24
,
20%
,
50%
,
.1
)
70%
,
hsla
(
24
,
20%
,
50%
,
0
));
pointer-events
:
none
;
line-height
:
inherit
;
white-space
:
pre
}
@media
print
{
.line-highlight
{
-webkit-print-color-adjust
:
exact
;
color-adjust
:
exact
}}
.line-highlight
:before
,
.line-highlight
[
data-end
]
:after
{
content
:
attr
(
data-start
);
position
:
absolute
;
top
:
.4em
;
left
:
.6em
;
min-width
:
1em
;
padding
:
0
.5em
;
background-color
:
hsla
(
24
,
20%
,
50%
,
.4
);
color
:
#f4f1ef
;
font
:
bold
65%
/
1.5
sans-serif
;
text-align
:
center
;
vertical-align
:
.3em
;
border-radius
:
999px
;
text-shadow
:
none
;
box-shadow
:
0
1px
#fff
}
.line-highlight
[
data-end
]
:after
{
content
:
attr
(
data-end
);
top
:
auto
;
bottom
:
.4em
}
.line-numbers
.line-highlight
:after
,
.line-numbers
.line-highlight
:before
{
content
:
none
}
pre
[
id
]
.linkable-line-numbers
span
.line-numbers-rows
{
pointer-events
:
all
}
pre
[
id
]
.linkable-line-numbers
span
.line-numbers-rows
>
span
:before
{
cursor
:
pointer
}
pre
[
id
]
.linkable-line-numbers
span
.line-numbers-rows
>
span
:hover:before
{
background-color
:
rgba
(
128
,
128
,
128
,
.2
)}
pre
.diff-highlight
>
code
.token.deleted
:not
(
.prefix
),
pre
>
code
.diff-highlight
.token.deleted
:not
(
.prefix
)
{
background-color
:
rgba
(
255
,
0
,
0
,
.1
);
color
:
inherit
;
display
:
block
}
pre
.diff-highlight
>
code
.token.inserted
:not
(
.prefix
),
pre
>
code
.diff-highlight
.token.inserted
:not
(
.prefix
)
{
background-color
:
rgba
(
0
,
255
,
128
,
.1
);
color
:
inherit
;
display
:
block
}
.token.treeview-part
.entry-line
{
position
:
relative
;
text-indent
:
-99em
;
display
:
inline-block
;
vertical-align
:
top
;
width
:
1.2em
}
.token.treeview-part
.entry-line
:before
,
.token.treeview-part
.line-h
:after
{
content
:
""
;
position
:
absolute
;
top
:
0
;
left
:
50%
;
width
:
50%
;
height
:
100%
}
.token.treeview-part
.line-h
:before
,
.token.treeview-part
.line-v
:before
{
border-left
:
1px
solid
#ccc
}
.token.treeview-part
.line-v-last
:before
{
height
:
50%
;
border-left
:
1px
solid
#ccc
;
border-bottom
:
1px
solid
#ccc
}
.token.treeview-part
.line-h
:after
{
height
:
50%
;
border-bottom
:
1px
solid
#ccc
}
.token.treeview-part
.entry-name
{
position
:
relative
;
display
:
inline-block
;
vertical-align
:
top
}
.token.treeview-part
.entry-name.dotfile
{
opacity
:
.5
}
@font-face
{
font-family
:
PrismTreeview
;
src
:
url(data:application/font-woff;base64,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)
format
(
"woff"
)}
.token.treeview-part
.entry-name
:before
{
content
:
"\ea01"
;
font-family
:
PrismTreeview
;
font-size
:
inherit
;
font-style
:
normal
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
width
:
2.5ex
;
display
:
inline-block
}
.token.treeview-part
.entry-name.dir
:before
{
content
:
"\ea02"
}
.token.treeview-part
.entry-name.ext-bmp
:before
,
.token.treeview-part
.entry-name.ext-eps
:before
,
.token.treeview-part
.entry-name.ext-gif
:before
,
.token.treeview-part
.entry-name.ext-jpe
:before
,
.token.treeview-part
.entry-name.ext-jpeg
:before
,
.token.treeview-part
.entry-name.ext-jpg
:before
,
.token.treeview-part
.entry-name.ext-png
:before
,
.token.treeview-part
.entry-name.ext-svg
:before
,
.token.treeview-part
.entry-name.ext-tiff
:before
{
content
:
"\ea03"
}
.token.treeview-part
.entry-name.ext-cfg
:before
,
.token.treeview-part
.entry-name.ext-conf
:before
,
.token.treeview-part
.entry-name.ext-config
:before
,
.token.treeview-part
.entry-name.ext-csv
:before
,
.token.treeview-part
.entry-name.ext-ini
:before
,
.token.treeview-part
.entry-name.ext-log
:before
,
.token.treeview-part
.entry-name.ext-md
:before
,
.token.treeview-part
.entry-name.ext-nfo
:before
,
.token.treeview-part
.entry-name.ext-txt
:before
{
content
:
"\ea06"
}
.token.treeview-part
.entry-name.ext-asp
:before
,
.token.treeview-part
.entry-name.ext-aspx
:before
,
.token.treeview-part
.entry-name.ext-c
:before
,
.token.treeview-part
.entry-name.ext-cc
:before
,
.token.treeview-part
.entry-name.ext-cpp
:before
,
.token.treeview-part
.entry-name.ext-cs
:before
,
.token.treeview-part
.entry-name.ext-css
:before
,
.token.treeview-part
.entry-name.ext-h
:before
,
.token.treeview-part
.entry-name.ext-hh
:before
,
.token.treeview-part
.entry-name.ext-htm
:before
,
.token.treeview-part
.entry-name.ext-html
:before
,
.token.treeview-part
.entry-name.ext-jav
:before
,
.token.treeview-part
.entry-name.ext-java
:before
,
.token.treeview-part
.entry-name.ext-js
:before
,
.token.treeview-part
.entry-name.ext-php
:before
,
.token.treeview-part
.entry-name.ext-rb
:before
,
.token.treeview-part
.entry-name.ext-xml
:before
{
content
:
"\ea07"
}
.token.treeview-part
.entry-name.ext-7z
:before
,
.token.treeview-part
.entry-name.ext-bz2
:before
,
.token.treeview-part
.entry-name.ext-bz
:before
,
.token.treeview-part
.entry-name.ext-gz
:before
,
.token.treeview-part
.entry-name.ext-rar
:before
,
.token.treeview-part
.entry-name.ext-tar
:before
,
.token.treeview-part
.entry-name.ext-tgz
:before
,
.token.treeview-part
.entry-name.ext-zip
:before
{
content
:
"\ea08"
}
.token.treeview-part
.entry-name.ext-aac
:before
,
.token.treeview-part
.entry-name.ext-au
:before
,
.token.treeview-part
.entry-name.ext-cda
:before
,
.token.treeview-part
.entry-name.ext-flac
:before
,
.token.treeview-part
.entry-name.ext-mp3
:before
,
.token.treeview-part
.entry-name.ext-oga
:before
,
.token.treeview-part
.entry-name.ext-ogg
:before
,
.token.treeview-part
.entry-name.ext-wav
:before
,
.token.treeview-part
.entry-name.ext-wma
:before
{
content
:
"\ea04"
}
.token.treeview-part
.entry-name.ext-avi
:before
,
.token.treeview-part
.entry-name.ext-flv
:before
,
.token.treeview-part
.entry-name.ext-mkv
:before
,
.token.treeview-part
.entry-name.ext-mov
:before
,
.token.treeview-part
.entry-name.ext-mp4
:before
,
.token.treeview-part
.entry-name.ext-mpeg
:before
,
.token.treeview-part
.entry-name.ext-mpg
:before
,
.token.treeview-part
.entry-name.ext-ogv
:before
,
.token.treeview-part
.entry-name.ext-webm
:before
{
content
:
"\ea05"
}
.token.treeview-part
.entry-name.ext-pdf
:before
{
content
:
"\ea09"
}
.token.treeview-part
.entry-name.ext-xls
:before
,
.token.treeview-part
.entry-name.ext-xlsx
:before
{
content
:
"\ea0a"
}
.token.treeview-part
.entry-name.ext-doc
:before
,
.token.treeview-part
.entry-name.ext-docm
:before
,
.token.treeview-part
.entry-name.ext-docx
:before
{
content
:
"\ea0c"
}
.token.treeview-part
.entry-name.ext-pps
:before
,
.token.treeview-part
.entry-name.ext-ppt
:before
,
.token.treeview-part
.entry-name.ext-pptx
:before
{
content
:
"\ea0b"
}
resources/css/components/table.css
View file @
3dca194a
table
.is-hoverable
>
tbody
>
tr
:hover
>
td
,
table
.is-zebra
>
tbody
>
tr
:nth-child
(
even
)
>
td
{
@apply
bg-slate-100
dark
:
bg-navy-600
;
@apply
bg-slate-100
dark
:
bg-navy-600
text-white
;
}
resources/js/app.js
View file @
3dca194a
import
Alpine
from
"
alpinejs
"
;
import
$
from
'
jquery
'
;
import
Alpine
from
'
alpinejs
'
;
import
persist
from
'
@alpinejs/persist
'
;
import
collapse
from
'
@alpinejs/collapse
'
;
import
intersect
from
'
@alpinejs/intersect
'
;
// Alpine
JS
Plugins
import
persist
from
"
@alpinejs/persist
"
;
// @see https://alpinejs.dev/
plugin
s/
persist
import
collapse
from
"
@alpinejs/collapse
"
;
// @see https://alpinejs.dev/
plugin
s/
collapse
import
intersect
from
"
@alpinejs/intersect
"
;
// @see https://alpinejs.dev/
plugin
s/
intersect
// Alpine
.js
Plugins
Alpine
.
plugin
(
persist
);
Alpine
.
plugin
(
collapse
);
Alpine
.
plugin
(
intersect
);
// Third Party Libraries
/*
Scrollbar Library
@see https://github.com/Grsmto/simplebar
*/
import
SimpleBar
from
"
simplebar
"
;
/*
Code highlighting library
Just for demo purpose only for highlighting code
@see https://highlightjs.org/
*/
import
hljs
from
"
highlight.js/lib/core
"
;
import
xml
from
"
highlight.js/lib/languages/xml
"
;
/*
Date Utility Library
@see https://day.js.org/
*/
import
dayjs
from
"
dayjs
"
;
/*
Carousel Library
@see https://swiperjs.com/
*/
import
Swiper
from
"
swiper/bundle
"
;
/*
Drag & Drop Library
@see https://github.com/SortableJS/Sortable
*/
import
Sortable
from
"
sortablejs
"
;
/*
Charts Libraries
@see https://apexcharts.com/
*/
import
ApexCharts
from
"
apexcharts
"
;
/*
Tables Libraries
@see https://gridjs.io/
*/
import
*
as
Gridjs
from
"
gridjs
"
;
// Forms Libraries
import
"
@caneara/iodine
"
;
// @see https://github.com/caneara/iodine
import
*
as
FilePond
from
"
filepond
"
;
// @see https://pqina.nl/filepond/
import
FilePondPluginImagePreview
from
"
filepond-plugin-image-preview
"
;
// @see https://pqina.nl/filepond/docs/api/plugins/image-preview/
import
FilePondPluginFileEncode
from
"
filepond-plugin-file-encode
"
;
// @see https://pqina.nl/filepond/docs/api/plugins/image-preview/
import
Quill
from
"
quill/dist/quill.min
"
;
// @see https://quilljs.com/
import
flatpickr
from
"
flatpickr
"
;
// @see https://flatpickr.js.org/
import
Tom
from
"
tom-select/dist/js/tom-select.complete.min
"
;
// @see https://tom-select.js.org/
// Import Fortawesome icons
import
$
from
'
jquery
'
;
import
SimpleBar
from
'
simplebar
'
;
import
hljs
from
'
highlight.js/lib/core
'
;
import
sql
from
'
highlight.js/lib/languages/sql
'
;
import
xml
from
'
highlight.js/lib/languages/xml
'
;
import
dayjs
from
'
dayjs
'
;
import
Swiper
from
'
swiper/bundle
'
;
import
Sortable
from
'
sortablejs
'
;
import
ApexCharts
from
'
apexcharts
'
;
import
*
as
Gridjs
from
'
gridjs
'
;
import
"
@caneara/iodine
"
;
import
*
as
FilePond
from
'
filepond
'
;
import
FilePondPluginImagePreview
from
'
filepond-plugin-image-preview
'
;
import
FilePondPluginFileEncode
from
'
filepond-plugin-file-encode
'
;
//import Quill from 'quill/dist/quill.min';
import
Quill
from
'
quill/dist/quill.js
'
;
import
'
quill/dist/quill.snow.css
'
;
import
flatpickr
from
'
flatpickr
'
;
import
Tom
from
'
tom-select/dist/js/tom-select.complete.min
'
;
import
"
@fortawesome/fontawesome-free/css/all.css
"
;
// import Prism from 'prismjs';
// import 'prismjs/themes/prism.css';
// import 'prismjs/components/prism-diff.min.js';
// import 'prismjs/plugins/line-numbers/prism-line-numbers.css';
// import 'prismjs/plugins/line-numbers/prism-line-numbers.js';
import
ClassicEditor
from
'
@ckeditor/ckeditor5-build-classic
'
;
// Helper Functions
import
*
as
helpers
from
"
./utils/helpers
"
;
// Pages Scripts
import
*
as
pages
from
"
./pages
"
;
// Global Store
import
store
from
"
./store
"
;
// Breakpoints Store
import
breakpoints
from
"
./utils/breakpoints
"
;
// Alpine Components
import
usePopper
from
"
./components/usePopper
"
;
import
accordionItem
from
"
./components/accordionItem
"
;
// Alpine Directives
import
tooltip
from
"
./directives/tooltip
"
;
import
inputMask
from
"
./directives/inputMask
"
;
// Alpine Magic Functions
import
notification
from
"
./magics/notification
"
;
import
clipboard
from
"
./magics/clipboard
"
;
// Register HTML, XML language for highlight.js
// Just for demo purpose only for highlighting code
hljs
.
registerLanguage
(
"
xml
"
,
xml
);
import
*
as
helpers
from
'
./utils/helpers
'
;
import
*
as
pages
from
'
./pages
'
;
import
store
from
'
./store
'
;
import
breakpoints
from
'
./utils/breakpoints
'
;
import
usePopper
from
'
./components/usePopper
'
;
import
accordionItem
from
'
./components/accordionItem
'
;
import
tooltip
from
'
./directives/tooltip
'
;
import
inputMask
from
'
./directives/inputMask
'
;
import
notification
from
'
./magics/notification
'
;
import
clipboard
from
'
./magics/clipboard
'
;
// Register highlight.js languages
hljs
.
registerLanguage
(
'
xml
'
,
xml
);
hljs
.
registerLanguage
(
'
sql
'
,
sql
);
hljs
.
configure
({
ignoreUnescapedHTML
:
true
});
// Register
plugin image preview for filepond
// Register
FilePond plugins
FilePond
.
registerPlugin
(
FilePondPluginImagePreview
);
FilePond
.
registerPlugin
(
FilePondPluginFileEncode
);
...
...
@@ -108,24 +69,43 @@ window.FilePond = FilePond;
window
.
flatpickr
=
flatpickr
;
window
.
Quill
=
Quill
;
window
.
Tom
=
Tom
;
window
.
Alpine
=
Alpine
;
window
.
helpers
=
helpers
;
window
.
pages
=
pages
;
window
.
$
=
$
;
Alpine
.
plugin
(
persist
);
Alpine
.
plugin
(
collapse
);
Alpine
.
plugin
(
intersect
);
Alpine
.
directive
(
"
tooltip
"
,
tooltip
);
Alpine
.
directive
(
"
input-mask
"
,
inputMask
);
Alpine
.
magic
(
"
notification
"
,
()
=>
notification
);
Alpine
.
magic
(
"
clipboard
"
,
()
=>
clipboard
);
Alpine
.
store
(
"
breakpoints
"
,
breakpoints
);
Alpine
.
store
(
"
global
"
,
store
);
Alpine
.
data
(
"
usePopper
"
,
usePopper
);
Alpine
.
data
(
"
accordionItem
"
,
accordionItem
);
window
.
ClassicEditor
=
ClassicEditor
;
Alpine
.
directive
(
'
tooltip
'
,
tooltip
);
Alpine
.
directive
(
'
input-mask
'
,
inputMask
);
Alpine
.
magic
(
'
notification
'
,
()
=>
notification
);
Alpine
.
magic
(
'
clipboard
'
,
()
=>
clipboard
);
Alpine
.
store
(
'
breakpoints
'
,
breakpoints
);
Alpine
.
store
(
'
global
'
,
store
);
Alpine
.
data
(
'
usePopper
'
,
usePopper
);
Alpine
.
data
(
'
accordionItem
'
,
accordionItem
);
Alpine
.
start
();
document
.
addEventListener
(
'
DOMContentLoaded
'
,
async
(
event
)
=>
{
//Prism.highlightAll();
hljs
.
highlightAll
();
});
document
.
addEventListener
(
'
livewire:load
'
,
async
function
()
{
//Prism.highlightAll();
hljs
.
highlightAll
();
});
Livewire
.
hook
(
'
message.processed
'
,
(
message
,
component
)
=>
{
// Find all code blocks inside the component that was updated
component
.
el
.
querySelectorAll
(
'
pre
'
).
forEach
((
block
)
=>
{
hljs
.
highlightElement
(
block
);
// Apply syntax highlighting to the specific element
});
});
window
.
addEventListener
(
'
diffResultUpdated
'
,
async
function
()
{
//Prism.highlightAll();
hljs
.
highlightAll
();
});
\ No newline at end of file
resources/js/pages/groupSelect.js
0 → 100644
View file @
3dca194a
const
groupSelect
=
{
group
:
{
valueField
:
"
id
"
,
searchField
:
"
name
"
,
options
:
[],
// Initialize empty array for options
placeholder
:
""
,
placeholder
:
"
Select the group
"
,
plugins
:
[
'
remove_button
'
],
closeAfterSelect
:
true
,
onDelete
:
function
(
values
)
{
},
render
:
{
option
:
function
(
data
,
escape
)
{
if
(
!
data
.
name
)
{
console
.
error
(
"
Invalid data for option:
"
,
data
);
return
""
;
}
return
`<div class="flex space-x-3">
<div class="flex flex-col">
<span>
${
escape
(
data
.
name
)}
</span>
</div>
</div>`
;
},
item
:
function
(
data
,
escape
)
{
if
(
!
data
.
name
)
{
console
.
error
(
"
Invalid data for item:
"
,
data
);
return
""
;
}
return
`<span class="badge rounded-full bg-primary dark:bg-accent text-white px-2 py-2 mb-2 mr-2">
<span class="mx-2">
${
escape
(
data
.
name
)}
</span>
</span>`
;
},
},
},
};
const
fetchGroups
=
(
groupSelect
)
=>
{
return
fetch
(
'
/get-groups
'
)
.
then
(
response
=>
response
.
json
())
.
then
(
data
=>
{
if
(
!
data
.
groups
||
!
Array
.
isArray
(
data
.
groups
))
{
console
.
error
(
"
Invalid response format:
"
,
data
);
return
;
}
groupSelect
.
group
.
options
=
data
.
groups
;
})
.
catch
(
error
=>
console
.
error
(
'
Error fetching group data:
'
,
error
));
};
export
{
groupSelect
,
fetchGroups
};
\ No newline at end of file
resources/js/pages/index.js
View file @
3dca194a
...
...
@@ -2,6 +2,8 @@ export { charts } from "./apexchartDemo";
export
{
tomSelect
}
from
"
./tomselectDemo
"
;
export
{
userSelect
,
fetchUsers
}
from
"
./userSelect
"
;
export
{
roleSelect
,
fetchRoles
}
from
"
./roleSelect
"
;
export
{
groupSelect
,
fetchGroups
}
from
"
./groupSelect
"
;
export
{
serverLicenseSelect
,
fetchServerLicenses
}
from
"
./serverLicenseSelect
"
;
export
*
as
tables
from
"
./tablesDemo
"
;
export
*
as
formValidation
from
"
./formValidationDemo
"
;
...
...
resources/js/pages/roleSelect.js
View file @
3dca194a
...
...
@@ -4,7 +4,9 @@ const roleSelect = {
searchField
:
"
name
"
,
options
:
[],
// Initialize empty array for options
placeholder
:
""
,
placeholder
:
"
Select the role
"
,
plugins
:
[
'
remove_button
'
],
closeAfterSelect
:
true
,
onDelete
:
function
(
values
)
{
},
render
:
{
...
...
@@ -24,7 +26,7 @@ const roleSelect = {
console
.
error
(
"
Invalid data for item:
"
,
data
);
return
""
;
}
return
`<span class="badge rounded-full bg-primary dark:bg-accent text-white p
-px
mr-2">
return
`<span class="badge rounded-full bg-primary dark:bg-accent text-white p
x-2 py-2 mb-2
mr-2">
<span class="mx-2">
${
escape
(
data
.
name
)}
</span>
</span>`
;
},
...
...
resources/js/pages/serverLicenseSelect.js
0 → 100644
View file @
3dca194a
const
serverLicenseSelect
=
{
serverkey
:
{
valueField
:
"
id
"
,
searchField
:
"
name
"
,
options
:
[],
// Initialize empty array for options
placeholder
:
""
,
plugins
:
[
'
remove_button
'
],
onDelete
:
function
(
values
)
{
},
render
:
{
option
:
function
(
data
,
escape
)
{
if
(
!
data
.
name
)
{
console
.
error
(
"
Invalid data for option:
"
,
data
);
return
""
;
}
return
`<div class="flex space-x-3">
<div class="flex flex-col">
<span>
${
escape
(
data
.
name
)}
</span>
</div>
</div>`
;
},
item
:
function
(
data
,
escape
)
{
if
(
!
data
.
name
)
{
console
.
error
(
"
Invalid data for item:
"
,
data
);
return
""
;
}
return
`<span class="badge rounded-lg bg-primary dark:bg-accent text-white px-2 m-1 mr-2 py-2">
<span class="mx-2">
${
escape
(
data
.
name
)}
</span>
</span>`
;
},
},
},
};
const
fetchServerLicenses
=
(
serverLicenseSelect
)
=>
{
return
fetch
(
'
/get-serverlicense
'
)
.
then
(
response
=>
response
.
json
())
.
then
(
data
=>
{
if
(
!
data
.
serverLicenses
||
!
Array
.
isArray
(
data
.
serverLicenses
))
{
console
.
error
(
"
Invalid response format:
"
,
data
);
return
;
}
serverLicenseSelect
.
serverkey
.
options
=
data
.
serverLicenses
;
})
.
catch
(
error
=>
console
.
error
(
'
Error fetching serverkey data:
'
,
error
));
};
export
{
serverLicenseSelect
,
fetchServerLicenses
};
\ No newline at end of file
resources/js/pages/tablesDemo.js
View file @
3dca194a
...
...
@@ -101,10 +101,10 @@ export function initGridTableExapmle() {
formatter
:
()
=>
Gridjs
.
html
(
`<div class="flex justify-center space-x-2">
<button @click="editItem" class="btn h-8 w-8 p-0 text-info hover:bg-info/20 focus:bg-info/20 active:bg-info/25">
<i class="fa fa-edit"></i>
<i
aria-hidden="true"
class="fa fa-edit"></i>
</button>
<button @click="deleteItem" class="btn h-8 w-8 p-0 text-error hover:bg-error/20 focus:bg-error/20 active:bg-error/25">
<i class="fa fa-trash-alt"></i>
<i
aria-hidden="true"
class="fa fa-trash-alt"></i>
</button>
</div>`
),
},
...
...
resources/js/pages/userSelect copy.js
0 → 100644
View file @
3dca194a
const
userSelect
=
{
user
:
{
valueField
:
"
id
"
,
searchField
:
"
username
"
,
options
:
[],
// Initialize empty array for options
placeholder
:
"
Select the user
"
,
plugins
:
[
'
remove_button
'
],
closeAfterSelect
:
true
,
onDelete
:
function
(
values
)
{
},
render
:
{
option
:
function
(
data
,
escape
)
{
if
(
!
data
.
username
||
!
data
.
email
)
{
console
.
error
(
"
Invalid data for option:
"
,
data
);
return
""
;
}
return
`<div class="flex space-x-3">
<div class="flex flex-col">
<span>
${
escape
(
data
.
username
)}
</span>
<span class="text-xs opacity-80">
${
escape
(
data
.
email
)}
</span>
</div>
</div>`
;
},
item
:
function
(
data
,
escape
)
{
if
(
!
data
.
username
)
{
console
.
error
(
"
Invalid data for item:
"
,
data
);
return
""
;
}
return
`<span class="badge rounded-full bg-primary dark:bg-accent text-white px-2 py-2 mb-2 mr-2">
<span class="mx-2">
${
escape
(
data
.
username
)}
</span>
</span>`
;
},
},
},
};
const
fetchUsers
=
(
userSelect
)
=>
{
return
fetch
(
'
/get-users
'
)
.
then
(
response
=>
response
.
json
())
.
then
(
data
=>
{
if
(
!
data
.
users
||
!
Array
.
isArray
(
data
.
users
))
{
console
.
error
(
"
Invalid response format:
"
,
data
);
return
;
}
userSelect
.
user
.
options
=
data
.
users
;
})
.
catch
(
error
=>
console
.
error
(
'
Error fetching user data:
'
,
error
));
};
export
{
userSelect
,
fetchUsers
};
\ No newline at end of file
resources/js/pages/userSelect.js
View file @
3dca194a
...
...
@@ -9,7 +9,8 @@ const userSelect = {
},
render
:
{
option
:
function
(
data
,
escape
)
{
if
(
!
data
.
name
||
!
data
.
email
)
{
if
(
!
data
.
name
)
{
// console.log(data)
console
.
error
(
"
Invalid data for option:
"
,
data
);
return
""
;
}
...
...
@@ -25,7 +26,7 @@ const userSelect = {
console
.
error
(
"
Invalid data for item:
"
,
data
);
return
""
;
}
return
`<span class="badge rounded-
ful
l bg-primary dark:bg-accent text-white p
-px mr
-2">
return
`<span class="badge rounded-l
g
bg-primary dark:bg-accent text-white p
x-2 m-1 mr-2 py
-2">
<span class="mx-2">
${
escape
(
data
.
name
)}
</span>
</span>`
;
},
...
...
resources/js/pages/utilities/basicTable.js
View file @
3dca194a
...
...
@@ -25,7 +25,7 @@ export function initGridTable(column, data, paginate, url, permission) {
permission
.
includes
(
"
EDIT
"
)
?
`
<a href="
${
url
}
/
${
cell
}
/edit" @click="editItem" class="btn h-8 w-8 p-0 text-info hover:bg-info/20 focus:bg-info/20 active:bg-info/25">
<i class="fa fa-edit"></i>
<i
aria-hidden="true"
class="fa fa-edit"></i>
</a>
`
:
""
...
...
@@ -36,7 +36,7 @@ export function initGridTable(column, data, paginate, url, permission) {
?
`
<div x-data="{showModal:false}">
<a @click="showModal = true" class="btn h-8 w-8 p-0 text-error hover:bg-error/20 focus:bg-error/20 active:bg-error/25">
<i class="fa fa-trash-alt"></i>
<i
aria-hidden="true"
class="fa fa-trash-alt"></i>
</a>
<template x-teleport="#x-teleport-target">
...
...
resources/js/store.js
View file @
3dca194a
...
...
@@ -15,11 +15,6 @@ export default {
document
.
body
.
classList
.
contains
(
"
is-sidebar-open
"
)
&&
Alpine
.
store
(
"
breakpoints
"
).
xlAndUp
;
Alpine
.
effect
(()
=>
{
this
.
isDarkModeEnabled
?
document
.
documentElement
.
classList
.
add
(
"
dark
"
)
:
document
.
documentElement
.
classList
.
remove
(
"
dark
"
);
});
Alpine
.
effect
(()
=>
{
this
.
isMonochromeModeEnabled
...
...
resources/js/sweetalert.js
0 → 100644
View file @
3dca194a
import
Swal
from
'
sweetalert2
'
;
window
.
confirmDelete
=
function
(
pid
)
{
Swal
.
fire
({
title
:
'
Are you sure?
'
,
text
:
"
You won't be able to revert this!
"
,
icon
:
'
warning
'
,
showCancelButton
:
true
,
confirmButtonColor
:
'
#2D6A4F
'
,
cancelButtonColor
:
'
#d32424
'
,
confirmButtonText
:
'
Yes, delete it!
'
}).
then
((
result
)
=>
{
if
(
result
.
isConfirmed
)
{
Livewire
.
emit
(
'
deleteItem
'
,
pid
);
Swal
.
fire
(
'
Deleted!
'
,
'
Your item has been deleted.
'
,
'
success
'
);
}
});
}
window
.
confirmDeletePatchFile
=
function
(
pid
)
{
Swal
.
fire
({
title
:
'
Are you sure?
'
,
text
:
"
You won't be able to revert this!
"
,
icon
:
'
warning
'
,
showCancelButton
:
true
,
confirmButtonColor
:
'
#2D6A4F
'
,
cancelButtonColor
:
'
#d32424
'
,
confirmButtonText
:
'
Yes, delete it!
'
}).
then
((
result
)
=>
{
if
(
result
.
isConfirmed
)
{
Livewire
.
emit
(
'
deletePatchFile
'
,
pid
);
Swal
.
fire
(
'
Deleted!
'
,
'
Your patch file has been deleted.
'
,
'
success
'
);
}
});
}
window
.
confirmDelete2
=
function
(
currency
,
exdate
)
{
Swal
.
fire
({
title
:
'
Are you sure?
'
,
text
:
"
You won't be able to revert this!
"
,
icon
:
'
warning
'
,
showCancelButton
:
true
,
confirmButtonColor
:
'
#2D6A4F
'
,
cancelButtonColor
:
'
#d32424
'
,
confirmButtonText
:
'
Yes, delete it!
'
}).
then
((
result
)
=>
{
if
(
result
.
isConfirmed
)
{
Livewire
.
emit
(
'
deleteItem
'
,
currency
,
exdate
);
}
});
}
window
.
confirmDeleteSelected
=
function
()
{
Swal
.
fire
({
title
:
'
Are you sure?
'
,
text
:
"
You won't be able to revert this!
"
,
icon
:
'
warning
'
,
showCancelButton
:
true
,
confirmButtonColor
:
'
#2D6A4F
'
,
cancelButtonColor
:
'
#d32424
'
,
confirmButtonText
:
'
Yes, delete them!
'
}).
then
((
result
)
=>
{
if
(
result
.
isConfirmed
)
{
Livewire
.
emit
(
'
deleteSelected
'
);
}
});
}
resources/views/components/app-layout.blade.php
0 → 100644
View file @
3dca194a
<!doctype html>
<html
lang=
"{{ str_replace('_', '-', app()->getLocale()) }}"
>
<head>
<meta
charset=
"UTF-8"
>
<link
rel=
"icon"
type=
"image/png"
href=
"{{ asset('favicon.png') }}"
/>
<meta
name=
"csrf-token"
content=
"{{ csrf_token() }}"
>
<meta
name=
"viewport"
content=
"width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"ie=edge"
>
<title>
SPN Patch
</title>
<!-- CSS & JS Assets -->
@vite(['resources/css/app.css', 'resources/js/app.js', 'resources/js/sweetalert.js'])
<!-- Fonts -->
<link
rel=
"preconnect"
href=
"https://fonts.googleapis.com"
/>
<link
rel=
"preconnect"
href=
"https://fonts.gstatic.com"
crossorigin
/>
<link
href=
"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
rel=
"stylesheet"
/>
<script>
localStorage
.
getItem
(
"
_x_darkMode_on
"
)
===
"
true
"
&&
document
.
documentElement
.
classList
.
add
(
"
dark
"
);
</script>
<link
href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
rel=
"stylesheet"
>
@isset($head)
{{ $head }}
@endisset
@livewireStyles
<style>
html
,
body
{
margin
:
0
;
}
body
{
display
:
flex
;
flex-direction
:
column
;
}
main
{
flex
:
1
;
background-color
:
white
;
}
</style>
</head>
<body
class=
"h-full bg-main-container"
>
<main
class=
"flex-grow overflow-auto bg-main-container"
>
{{ $slot }}
@yield('content')
</main>
@livewireScripts
@isset($script)
{{ $script }}
@endisset
@yield('script')
<script>
Livewire
.
on
(
'
fileDownloaded
'
,
(
url
)
=>
{
window
.
location
.
href
=
url
;
});
</script>
</body>
</html>
resources/views/components/
base
-layout.blade.php
→
resources/views/components/
guest
-layout.blade.php
View file @
3dca194a
...
...
@@ -10,9 +10,7 @@
<meta
name=
"viewport"
content=
"width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"ie=edge"
>
<title>
{{ config('app.name') }} @isset($title)
- {{ $title }}
@endisset
<title>
SPN Patch
</title>
<!-- CSS & JS Assets -->
...
...
@@ -32,40 +30,21 @@
localStorage
.
getItem
(
"
_x_darkMode_on
"
)
===
"
true
"
&&
document
.
documentElement
.
classList
.
add
(
"
dark
"
);
</script>
<link
href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
rel=
"stylesheet"
>
<link
href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
rel=
"stylesheet"
>
@isset($head)
{{ $head }}
@endisset
@livewireStyles
</head>
<body
x-data
x-bind=
"$store.global.documentBody"
class=
"@isset($isSidebarOpen) {{ $isSidebarOpen === 'true' ? 'is-sidebar-open' : '' }} @endisset @isset($isHeaderBlur) {{ $isHeaderBlur === 'true' ? 'is-header-blur' : '' }} @endisset @isset($hasMinSidebar) {{ $hasMinSidebar === 'true' ? 'has-min-sidebar' : '' }} @endisset @isset($headerSticky) {{ $headerSticky === 'false' ? 'is-header-not-sticky' : '' }} @endisset"
>
<body
>
{{ $slot }}
<!-- App preloader-->
<x-app-preloader></x-app-preloader>
<!-- Page Wrapper -->
{{--
<div
id=
"root"
class=
"min-h-100vh flex grow bg-slate-50 dark:bg-navy-900"
x-cloak
>
--}}
{{ $slot }}
{{--
</div>
--}}
<!--
This is a place for Alpine.js Teleport feature
@see https://alpinejs.dev/directives/teleport
-->
<div
id=
"x-teleport-target"
></div>
<script>
window
.
addEventListener
(
"
DOMContentLoaded
"
,
()
=>
Alpine
.
start
());
</script>
@livewireScripts
@livewireScripts
@isset($script)
{{ $script }}
@endisset
</body>
</html>
resources/views/components/header-breadcrumb.blade.php
0 → 100644
View file @
3dca194a
<div
class=
"flex items-center space-x-4 py-5 lg:py-6"
>
<ul
class=
"hidden flex-wrap items-center space-x-2 sm:flex"
>
<li
class=
"flex items-center space-x-2"
>
<a
class=
"text-primary transition-colors hover:text-primary-focus dark:text-accent-light dark:hover:text-accent"
href=
"/"
>
Home
</a>
<svg
x-ignore
xmlns=
"http://www.w3.org/2000/svg"
class=
"h-4 w-4"
fill=
"none"
viewBox=
"0 0 24 24"
stroke=
"currentColor"
>
<path
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-width=
"2"
d=
"M9 5l7 7-7 7"
/>
</svg>
</li>
<li>
Configuration
</li>
<svg
x-ignore
xmlns=
"http://www.w3.org/2000/svg"
class=
"h-4 w-4"
fill=
"none"
viewBox=
"0 0 24 24"
stroke=
"currentColor"
>
<path
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-width=
"2"
d=
"M9 5l7 7-7 7"
/>
</svg>
<li
class=
"flex items-center space-x-2"
>
<a
class=
"text-primary transition-colors hover:text-primary-focus dark:text-accent-light dark:hover:text-accent"
href=
"{{ route('configurations.user.index') }}"
>
User Management
</a>
</li>
</ul>
</div>
Prev
1
…
6
7
8
9
10
11
12
13
14
…
16
Next